パフォーマンス オプションを使用してリレーションシップクエリを最適化する

パフォーマンス オプションは、リレーションシップ内の 2 つのテーブル間のカーディナリティ(一意性)と参照整合性(一致する記録)を定義するオプションの設定です。これらの設定は、Tableau での分析中にクエリを最適化するのに役立ちます。

  • 適切な選択肢がわからない場合は、Tableau で表示される既定の推奨設定を使用してください。既定値は安全に使用でき、分析中に正しい集計と結合が自動的に生成されます。基数や参照整合性がわからない場合は、これらの設定を変更する必要はありません。
  • データの形状がわかっている場合は、必要に応じてこれらの設定を変更し、2 つの表のレコード間の一意性と一致を表すことができます。

多くの分析シナリオでは、関係の既定の設定を使用すると、分析に必要なすべてのデータを得ることができます。シナリオによっては、パフォーマンス オプションの設定を調整してデータをより正確に記述できます。リレーションシップを使用してデータを組み合わせて分析する詳細については、「データの関連付け」(新しいウィンドウでリンクが開く)と Tableau ブログ記事「リレーションシップ、パート 1: Tableau に新しいデータ モデリングを導入する」(新しいウィンドウでリンクが開く)を参照してください。

カーディナリティと参照整合性の設定の意味

カーディナリティ オプション

カーディナリティの設定は、分析中にデータを自動的に結合する際の前後に表データを集計するかどうかを決定します。

  • フィールドの値が一意でない場合や一意かどうかわからない場合は、[Many (多)] を選択します。分析中に結合を形成する前に、関連データが集計されます。
  • フィールド値が一意の場合は、[One (1)] を選択します。分析中、集計前に関連データが結合されます。このオプションを設定すると、リレーションシップ内のフィールド値が一意の場合にワークブック内のクエリが適切に最適化されます。ただし、フィールド値が一意でない場合に [One (1)] を選択すると、ビューに重複する集計値が表示される場合があります。

: [1] を選択すると、各キー値が一意で、NULL 値を持つ行が 1 つだけの場合と同様にレコードが扱われます。

参照整合性オプション

参照整合性の設定では分析中にメジャーのディメンション値を取得するために使用する結合のタイプを決定できます。

  • フィールドの一部の値が他のテーブルの値と一致しない場合や、一致しているかどうかが不明な場合は、[一部のレコードが一致する] を選択します。分析中、Tableau では外部結合を使用してメジャーのディメンション値が取得されます。一致しないメジャーを含むすべてのメジャー値がビューに表示されます。
  • フィールドの値が他のテーブルの値と確実に一致する場合は、[すべてのレコードが一致する] を選択します。この設定により、分析時に生成される結合は少なく、またシンプルになり、クエリが最適化されます。この表に一致しない値がある場合、分析中に表示される結果が一貫しなくなる (一致しない値が削除されたりビューに表示されなかったりする) ことがあります。

: [すべてのレコードが一致する] を選択すると、リレーションシップに使用されるフィールドに NULL 値が存在しない場合と同様にレコードが処理されます。分析中には、Tableau は内部結合を使用してメジャーの値が取得されます。既定では、Tableau は NULL キーを結合しません。

カーディナリティと参照整合性の概念の詳細については、「カーディナリティと参照整合性」を参照してください。

結合について

データ ソースの物理レイヤー内のテーブル間では引き続き結合を指定できます。論理テーブルをダブルクリックして、結合キャンバスに移動します。

すべての最上位の論理テーブルには、少なくとも 1 つの物理テーブルが含まれています。論理テーブルを開くと、その物理テーブル間の結合を表示、編集、作成できます。論理テーブルを右クリックし、[開く] をクリックします。テーブルをダブルクリックしても開くことができます。

作成したデータ ソースには 2 つのレイヤーがあります。最上位のレイヤーは、データ ソースの論理レイヤーです。論理レイヤーでは、関係を使用して表間でデータを組み合わせます。

次のレイヤーは、データ ソースの物理レイヤーです。物理レイヤーでは、結合を使用してテーブル間でデータを組み合わせます。詳細については、「データ モデルの構造」(新しいウィンドウでリンクが開く)を参照してください。

パフォーマンス オプションの使用に関するヒント

データの形状がわかっている場合は、[パフォーマンス オプション] のオプション設定を使用して、テーブルのカーディナリティを互いに (1 対 1、1 対多、多対多など) 確立し、参照整合性を示すことができます (1 つのテーブルの値は常に他のテーブルに一致があります)。

[パフォーマンスオプション] の各設定の意味は、「はい」と「いいえ」ではなく、「はい」と「わからない」と考えることができます。テーブルの値が一意であることが確実である場合は、 [1]を選択します。 一方のテーブルの各レコードが、もう一方のテーブルの 1 つ以上のレコードと一致することを確認する場合は、[すべてのレコードが一致する] チェック ボックスをオンにします。 それ以外の場合は、既定の設定をそのまま使用します。

データの形状が不明な場合は、既定の設定を使用します。Tableau のデータ内でこれらの設定を検出できない場合の既定の設定は、次のとおりです。

  • カーディナリティ:多対多
  • 参照整合性: 一部のレコードが一致す

Tableau がデータ内の主要なリレーションシップや参照整合性を検出すると、それらの設定が使用され、「検出済み」として表示されます。

既定の設定を再適用するには、[既定値に戻す ] をクリックします。

用語の定義

カーディナリティとは、フィールド (列) やフィールドの組み合わせに含まれるデータの一意性を指します。分析する表に多くのデータ行が含まれる場合、クエリに時間がかかる場合があります (および全体的なデータソースのパフォーマンスが影響されます)。そのため、Tableau では、表間の関連列のカーディナリティに基づいてデータを組み合わせる方法を選択することをお勧めします。

  • 低カーディナリティー: 関連する列に多くの繰り返しデータがある場合。たとえば、[Products (製品)] というテーブルには、[Furniture (家具)]、[Office Supplies (オフィス用品)]、[Technology (テクノロジー)] という 3 つの値を含む [カテゴリ] 列が含まれる場合があります。
  • 高基数: 関連する列に非常に一意なデータがある場合。たとえば、[Orders (注文)] というテーブルには、商品の注文ごとに一意の値を含む [Order ID (注文 ID)] 列が含まれる場合があります。

参照整合性とは、一方のテーブルの行に一致する行が常に他方のテーブルにも存在することを意味します。たとえば、売上表の行には常に製品カタログの表に一致する行があります。

フィードバックをありがとうございます。フィードバックは正常に送信されました。ありがとうございます!