データだけでは質問への回答に必要なすべての情報を確認できない場合は、分析に役立つ計算フィールドを作成できます。

計算フィールド内では、ハードコード化されたコンテンツ (税率など) の定義、引き算や掛け算などの非常にシンプルな数学的操作 (収益 - 経費など) を行い、より複雑な数学式を使用して論理テスト (IF/THEN, CASE) を実行、型変換、R などの外部サービスへの計算式の送信などを実行できます。

Tableau には、別の計算タイプがあります。

基本および集計計算: これらの種類の計算は参照元データ ソースに対するクエリの一部として生成され、データベース内で計算されます。一般的に、基本的な計算や集計計算では、パフォーマンスを改善できる多くのデータベース調節手法が多くあるため、拡張が非常にうまく行きます。

表計算:これらはクエリ結果セットを使用して Tableau によって計算されます。つまり、Tableau での作業が増えると、表計算は一般的に元のデータ ソース内よりも小さな記録のセットで行われます。表計算のパフォーマンスが問題の場合 (おそらく Tableau に返される結果セットが大きすぎる) 場合は、計算の一部の側面をデータ ソース レイヤーに戻すことを検討してください。これを実行する方法の 1 つとして、計算の集計を実行してから、集計されたデータで計算を実行します。

詳細レベル (LOD) の式: LOD 式は参照元データ ソースに対するクエリの一部として生成され、データベース内で計算されます。これらはネストされている選択項目としてあらわされるため、データベースのパフォーマンスに依存します。LOD 式よりも表計算やブレンドの方がうまく行く場合も、その逆の場合もあります。

LOD 式によるパフォーマンスの低下が疑われる場合は、表計算はデータ ブレンドに置き換え、パフォーマンスが改善するかどうか確認することができます。詳細については、Tableau の操作の順序の例 2 を参照してください。

LOD 式は結合選別の影響を受ける可能性があります。そのため、LOD 式の使用時にクエリ実行に時間がかかる場合は、結合の参照整合性を仮定するを確認してください。

詳細については、Tableau ホワイトペーパー「詳細レベル (LOD) の式について」を参照してください。

ブール値と整数はより速い

計算フィールドを作成すると、使用するデータ型が計算速度に大きな影響を与えます。整数およびブール値の処理速度は一般的に文字列よりも速くなります。計算によってバイナリ結果が生成される場合 (はい/いいえ、合格/不合格、上/下など)、文字列ではなくブール値を返すようにしてください。

条件付き計算式のパラメーターの使用

Tableau の一般的な手法は、計算の実行方法を決定する値をユーザーが選択できるよう、パラメーター値を表示することです。一般的に、わかりやすいオプションをユーザーに提供するため、パラメーターを文字列型として作成するのが合理的です。ただし、数値計算は文字列計算よりも高速です。そのため、パラメーターの [表示名] 機能の長所を活用し、テキスト ラベルを表示しながら、計算ロジックには参照元の整数値を使用します。詳細については、パラメーターの作成を参照してください。

日付フィールドの変換

ユーザーは、ネイティブのデータ形式で保存されていない日付データを持っていることがよくあります。たとえば、日付が文字列や数値タイムスタンプの場合があります。データでサポートされている場合は DATEPARSE 関数を使用できます。この関数は、非レガシーの Microsoft Excel およびテキスト ファイル接続、MySQL、Oracle、PostgreSQL、および Tableau データ抽出データ ソースで使用できます。そうでない場合、フィールドを「2012-01-01」などの日付文字列に解析します。ISO 文字列はロケール固有ではため、推奨されます。次に値を DATE 関数に渡します。元のデータが数値フィールドの場合は、最初に文字列に変換してから日付に変換するのでは不十分です。データを数値にし、DATEADD と日付のリテラル値を使用して計算を実行する方が優れています。大きなデータ セットでは、得られるパフォーマンスが顕著となる可能性があります。これらの関数の詳細については、日付関数を参照してください。

ELSEIF 論理ステートメントの使用

複雑な論理ステートメントを処理する場合、ELSEIF は ELSE IF よりも早く処理されることを覚えておいてください。これは、ネストされている IF は最初の一部としてではなく、2 回目の IF ステートメントを計算するためです。

メジャーの集計

作成しているビューの表示に時間がかかる場合、非集計メジャーではなく集計メジャーを使用していることを確認してください。非集計データでは、一度に多くのデータ行を表示しなければならない場合があります。データを集計することで、行数を減らすことができます。これを行うには、[分析] >[メジャーの集計] を選択します。

計算のヒント

さまざまな簡単な手順を実行することで、計算のパフォーマンスを改善できます。

  • 個別のカウント値はすべてのデータ ソースの中で最も時間のかかる集計タイプの 1 つです。COUNTD 集計の使用を控える。

  • 広い範囲に影響を与えるパラメーター (カスタム SQL ステートメントなど) を使用すると、キャッシュのパフォーマンスに影響を与える可能性があります。

  • 複雑な計算をフィルターリングすると、参照元データのインデックスに失敗する可能性があります。

  • 特に DBMS/R サーバーとやり取りする必要がある値が多数ある場合、外部サービスの統合用の RAWSQL や SCRIPT_* などのスクリプト関数には時間がかかる場合があります。

  • タイムスタンプの詳細レベルが必要な場合にのみ NOW を使用します。日付レベル計算で TODAY を使用します。

  • ラベル文字列などのリテラル計算であっても、すべての基本的な計算は参照元データに渡されます。ラベル (列見出しなど) を作成する必要があり、データが非常に大きい場合、大きなデータ ソースにオーバーヘッドが追加されないよう、1 つのレコードのみを保持するシンプルなテキスト/Excel ファイル データを作成できます。

ありがとうございます!