データの関連付け

関係は、複数のテーブルのデータを分析用に組み合わせる動的で柔軟な方法です。リレーションシップは、2 つのテーブルがお互いに関連する方法を説明しますが、テーブルがマージされることはありません。テーブル間でリレーションシップを作成しても、テーブルは独立したままで、詳細レベルやドメインはそれぞれ維持されます。

リレーションシップは、2 つのテーブル間の契約と考えることができます。これらのテーブルのフィールドを使って Viz を構築する場合、Tableau は、その契約を使用してこれらのテーブルからデータを取り込み、適切な結合を使用してクエリを作成します。

詳細: データの関連付けは、Tableau の新しいデータ モデリングの重要な機能です。詳細については、「データ ソースと分析で変更された内容」を参照してください。リレーションシップのしくみの詳細については、Tableau ブログ投稿を参照してください。

ビデオを視聴する: データ ソースの機能強化の概要と Tableau での関係の使用の概要については、この 5 分間のビデオを参照してください。

リレーションシップとは

リレーションシップとは、データ ソースの論理テーブル間で作成した柔軟な接続線のことです。親しみを込めてリレーションシップを「ヌードル」と呼ぶ人もいますが、通常、ヘルプ ドキュメントでは「リレーションシップ」と呼んでいます。

データの準備と分析をより簡単で直感的に行えるようになるため、データを結合する際の最初のアプローチとしてリレーションシップを使用することをお勧めします。結合は、必要不可欠な場合にのみ使用してください(Link opens in a new window)

複数テーブルのデータに結合を使用する場合と比べると、リレーションシップには次のような利点があります。

  • テーブル間で結合の種類を構成する必要はありません。必要なのはリレーションシップに必要なフィールドを選択することだけです。
  • 関連付けたテーブルは明確に分離したままで、単一テーブルにはマージされません。
  • 関係では結合が使用されますが、その処理は自動的に行われます。ビジュアライゼーションで使用されているフィールドに基づいて結合タイプが自動的に選択されます。分析中は、結合タイプがインテリジェントに調整され、ネイティブの詳細レベルがデータ内で保持されます。
  • ワークシートで使用されているフィールドの現在のコンテキストに基づいて、分析時に正しい集計と適切な結合が生成されます。
  • 単一のデータ ソースでさまざまな詳細レベルの複数テーブルが使用できます。多くのテーブルを含むデータ モデルを構築し、Viz の作成に必要なデータ ソースの数を減らすことができます。
  • 一致しないメジャー値は削除されません (データが誤って失われることはありません)。
  • 結合で発生する可能性のあるデータの複製やフィルターに関する問題が回避されます。
  • 現在のビューに関連するデータに対するクエリだけが生成されます。

リレーションシップの要件

  • テーブルを関連付ける際は、リレーションシップを定義するフィールドが同じデータ型である必要があります。
  • リレーションシップは地理的フィールドに基づいて定義することはできません。
  • データ モデルでは循環関係に対応していません。
  • パブリッシュされたデータ ソースのリレーションシップは編集できません。
  • パブリッシュされたデータ ソース間の関係を定義することはできません。
  • Tableau Online や Tableau Server の [データ ソース] ページで関係とパフォーマンス オプションを編集できるようにするには、ワークブックで埋め込みデータ ソースを使用する必要があります。

関連付けたテーブルを使用する利点には、次のような制約要因があります。

  • テーブル内にダーティ データがある (つまり、適切に構造化されたモデルを考慮して作成しておらず、メジャーとディメンションが複数のテーブルに混在している) 場合、複数テーブルの分析がさらに複雑になることがあります。
  • データ ソース フィルターを使用すると、データ内の結合選択を行う Tableau の機能が制限されます。結合選択とは、Tableau で不要な結合を削除してクエリを簡略化する方法のことです。
  • 関係全体を通じて一致しない値が多く含まれるテーブル。
  • 複数のファクト テーブルと複数のディメンション テーブルを相互に関連付けた場合 (共有ディメンションや適合ディメンションのモデル化を試みた場合)。

関連付けできないデータ

ほとんどのリレーショナル接続タイプは完全にサポートされています。キューブ、SAP HANA (OLAP 属性が設定されている)、JSON、Google アナリティクスは、Tableau 2020.2 で単一の論理テーブルに制限されています。ストアド プロシージャは、単一の論理テーブル内でのみ使用できます。

パブリッシュされたデータ ソースを相互に関連付けることはできません。パブリッシュされたデータ ソースを編集することもできません。

未対応

  • キューブ データベースは、新しい論理レイヤーをサポートしていません。キューブに接続すると、2020.2 より前のバージョンと同じ操作ができるようになります。
  • ストアド プロシージャ: フェデレーション、関係、結合に対応していません。これらは 1 つの論理テーブルで表され、結合/ユニオン キャンバス (物理レイヤー) を開くことは許可されていません。
  • Splunk: 左結合 (したがって論理テーブルに関連付ける) をサポートしていません。
  • JSON: フェデレーション、カスタム SQL、結合、関係 (ユニオンのみ) に対応していません。
  • LOD calcs に対応していないデータソース。詳細は、詳細レベルの式に対するデータ ソースの制約を参照してください。

限定サポート

  • Salesforce と WDC 標準接続: 論理テーブル内では結合テーブルとして示されます。現在、単一の論理テーブルのデータ ソースに対してのみ、これらの接続の追加がサポートされています。標準接続は既存のテーブルに結合できません。
  • SAP HANA: 接続に OLAP 属性が設定されている場合、関連する論理テーブルはサポートされません。

リレーションシップの作成と定義

最初のテーブルをデータ ソースの最上位キャンバスにドラッグした後は、新しいテーブルをキャンバスにドラッグするたびに、そのテーブルと既存のテーブルのリレーションシップを作成する必要があります。論理レイヤー内のテーブル間でリレーションシップを作成するときは、データ ソースのデータ モデルを構築します。

: パブリッシュされたデータ ソースのデータ モデルを編集することはできません。

リレーションシップの作成

データ ソースの論理レイヤーでリレーションシップを作成します。これは、[データ ソース] ページに表示されるキャンバスの既定のビューです。

  1. テーブルをキャンバスにドラッグします。

  2. 別のテーブルをキャンバスにドラッグします。2 つのテーブル間に「ヌードル」が表示されたら、そのテーブルをドロップします。

    [リレーションシップの編集] ダイアログ ボックスが開きます。Tableau では、既存のキー制約および一致するフィールドに基づいてリレーションシップを作成して定義することを自動的に試みます。一致するフィールドを判別できない場合は、ユーザーがそれらのフィールドを選択する必要があります。

    制約が検出されない場合は、多対多のリレーションシップが作成され、参照整合性が [Some records match (一部のレコードが一致)] に設定されます。これらの既定の設定は安全な選択肢であり、データ ソースに対して最大の柔軟性を提供します。既定の設定は、完全外部結合をサポートし、分析中に結合を形成する前に、テーブル データを集計してクエリを最適化します。分析には、各テーブルのすべての列データと行データを使用できます。

    : 多くの分析シナリオでは、リレーションシップの既定の設定を使用して、分析に必要なすべてのデータを取得できます。多対多のリレーションシップを使用すると、データが実際に多対 1 または 1 対 1 の場合でも機能します。データの特定のカーディナリティと参照整合性がわかっている場合は、パフォーマンス オプションの設定(Link opens in a new window)を調整して、データをより正確に記述し、Tableau がデータベースのクエリを行う方法を最適化できます。

    フィールドを変更するには、フィールド ペアを選択してから、下にあるフィールドのリストをクリックし、一致するフィールドの新しいペアを選択します。

    複数のフィールド ペアを追加するには、最初のペアを選択した後で [閉じる] をクリックし、[フィールドを追加] をクリックします。

  3. 必要に応じて、同じ手順に実行してテーブルを追加します。

複数テーブルの関連データ ソースを作成したら、そのデータを調査できます。詳細については、リレーションシップを使用する複数テーブルのデータ ソースに対する分析の動作方法複数テーブルの分析のトラブルシューティングを参照してください。

テーブルを移動して別のリレーションシップを作成

テーブルを移動するには、別のテーブルの横にドラッグします。または、テーブルにカーソルを合わせ、矢印をクリックして、[移動] を選択します。

ヒント: 別のテーブルの上にテーブルをドラッグして置き換えます。

リレーションシップからテーブルを削除

テーブルを移動するには、テーブにカーソルを合わせ、矢印をクリックして、[削除] を選択します。

リレーションシップの表示

  • リレーションシップの線 (ヌードル) にカーソルを合わせると、そのリレーションシップを定義する一致フィールドが表示されます。また、任意の論理テーブルにカーソルを合わせて、そのテーブルに含まれる内容を確認することもできます。


リレーションシップの編集

  • リレーションシップの線をクリックして、[リレーションシップの編集] ダイアログ ボックスを開きます。リレーションシップの定義に使用するフィールドを追加、変更、削除できます。フィールド ペアを追加すると、複合リレーションシップを作成できます。

    複数のフィールド ペアを追加するには、最初のペアを選択した後で [閉じる] をクリックし、[フィールドを追加] をクリックします。

リレーションシップの作成に関するヒント

  • キャンバスにドラッグした最初のテーブルは、データ ソース内のデータ モデルのルート テーブルになります。ルート テーブルをドラッグした後、任意の順序でさらに別のテーブルをドラッグできます。相互に関連付ける必要があるテーブルに加えて、各関係に対して定義する、一致したフィールド ペアを考慮する必要があります。
  • リレーションシップの作成を開始する前に、分析前または分析中にデータ ソースのデータを表示すると、各テーブルの範囲を把握するときに役立ちます。詳細については、参照元データの表示を参照してください。また、[データの表示] を使用すると、リレーションシップが無効な場合にテーブルの参照元データを表示することができます。
  • スター スキーマを作成する場合は、最初にファクト テーブルをドラッグしてから、ディメンション テーブルをそのテーブルに関連付けると便利です。
  • 各関係は、少なくとも 1 つの一致するフィールド ペアで構成する必要があります。複数のフィールド ペアを追加すると、複合リレーションシップを作成できます。一致するペアは同じデータ型である必要があります。[データ ソース] ページでデータ型を変更しても、この要件は変更されません。Tableau では、クエリの参照元データベースのデータ型が引き続き使用されます。
  • リレーションシップは計算フィールドに基づきます。リレーションシップを定義する際は、演算子を使用してフィールドの比較方法を指定することもできます。
  • キャンバス内のテーブルを削除すると、関連する子孫も自動的に削除されます。ルート テーブルを削除すると、モデル内の他のすべてのテーブルも削除されます。

データ ソース内のリレーションシップの検証

分析用のデータ モデルを検証するには、いくつかのオプションがあります。データ ソースのモデルを作成する際は、シートにアクセスしてそのデータ ソースを選択し、Viz を構築して、レコード数、一致しない値、NULL、またはメジャー値の重複を調べることをお勧めします。さまざまなテーブルでフィールドを使用して、すべてが想定したとおりに表示されることを確認してください。

検索対象:

  • データ モデル内のリレーションシップで、テーブルに合った適切なフィールドが使用されていますか?
  • 異なるディメンションとメジャーをビューにドラッグするとどうなりますか?
  • 予期される行数が表示されますか?
  • 複合リレーションシップはリレーションシップをより正確にしますか?
  • パフォーマンス オプションの設定の一部を既定の設定から変更した場合、想定したとおりの値が Viz に表示されますか? そうならない場合は、設定を確認するか既定値にリセットできます。

リレーションシップとデータ モデルを検証するためのオプションは次のとおりです。

  • すべてのテーブルにはレコードの数が、そのテーブルの詳細レベルに、TableName(Count) フィールドとして含まれています。テーブルのレコード数を表示するには、[カウント] フィールドをビューにドラッグします。すべてのテーブルの数を表示するには、[データ] ペインで各テーブルの [カウント] フィールドを選択し、[表示形式] の [テキスト テーブル] をクリックします。
  • [データ] ペインの [データの表示] をクリックして、テーブルごとの行数とデータ数を確認します。また、関係の作成を始める前に、分析前や分析中にデータ ソースからデータを表示すると、各テーブルの範囲を把握するのに役立ちます。詳細については、参照元データの表示を参照してください。
  • ディメンションを行にドラッグして、ステータス バーの行数を確認します。一致しない値を表示するには、[分析] メニューをクリックし、[テーブル レイアウト] < [空の行を表示] または [空の列を表示]を選択します。また、Viz で表されるテーブルの 1 つから <YourTable>(カウント) など、さまざまなメジャーをビューにドラッグすることもできます。これにより、そのテーブルのディメンションのすべての値が表示されます。

ヒント: 関係に対して生成されるクエリを表示する場合は、Tableau Desktop のパフォーマンス レコーダーを使用できます。

  1. [ヘルプ] メニューをクリックし、[設定とパフォーマンス] > [パフォーマンス記録の開始] を選択します。
  2. ビューにフィールドをドラッグして Viz を作成します。
  3. [ヘルプ] メニューをクリックし、[設定とパフォーマンス] > [パフォーマンス記録の停止] を選択します。
  4. パフォーマンスの概要ダッシュボードの [時間で並べ替えられたイベント] で、[クエリの実行] バーをクリックし、以下のクエリを表示します。

より高度なもう 1 つのオプションは、GitHub にある Tableau Log Viewer(Link opens in a new window) を使用することです。end-protocol.query を使用して、特定のキーワードにフィルターを適用できます。詳細については、まず GitHub にある Tableau Log Viewer Wiki ページ(Link opens in a new window)をご覧ください。

ディメンションのみの視覚化

関連テーブルを含む複数テーブル のデータ ソースを使用する場合: ディメンションのみの viz を作成すると、Tableau は内部結合を使用するため、一致しないドメイン全体は表示されません。

分析コード値の部分的な組み合わせを表示するには、次の方法があります。

  • [空の行/列を表示] を使用して、すべての可能な行を表示します。[分析] メニューをクリックし、[テーブル レイアウト] > [空の行を表示] または [空の列を表示] を選択します。
  • viz で表されているテーブルの 1 つから <YourTable>(カウント)などのメジャーをビューに追加します。これにより、そのテーブルのディメンションのすべての値が表示されます。

詳細については、リレーションシップを使用する複数テーブルのデータ ソースに対する分析の動作方法複数テーブルの分析のトラブルシューティングを参照してください。

リレーションシップ (論理テーブル) vs 結合 (物理テーブル)

結合とリレーションシップは類似していますが、Tableau では動作が異なり、データモデルの異なるレイヤーで定義します。リレーションシップは、データソースの最上位の論理レイヤーにある論理テーブルの間に存在します。結合は、データソースの物理レイヤーにある物理テーブルの間に存在します。

結合を使用すると、分析を始める前に 2 つのテーブルのデータが 1 つのテーブルにマージされます。テーブルのマージでは、一方のテーブルや両方のテーブルのデータが複製されたりフィルターされることがあります。また、左結合、右結合、または完全外部結合を使用すると、データに NULL 行が追加されることもあります。結合されたデータに対して分析を行う場合は、結合がデータに与える影響を正しく処理する必要があります。

: 結合の複製やフィルターが効果的な場合もあります (行レベルのセキュリティを実装するために資格テーブルを結合する場合など)。このような場合は、リレーションシップを使用する代わりに、結合を使用してテーブルをマージする必要があります。論理テーブルをダブルクリックして物理レイヤーを開き、結合テーブルを追加します。

リレーションシップでは、2 つの独立したテーブル間のリレーションシップが示されますが、テーブルがマージされることはありません。これにより、結合で発生する可能性のあるデータの複製やフィルターに関する問題が回避され、データの処理が容易になります。

リレーションシップ 結合
リレーションシップ キャンバス (論理レイヤー) の論理テーブル間で定義 結合/ユニオン キャンバス (物理レイヤー) の物理テーブル間で定義
結合タイプの定義は不要 結合計画と結合タイプを必須にする
結合またはユニオンされたテーブルのコンテナーのように動作する 論理テーブルにマージされます。
Viz に関連するデータだけが必要です。カーディナリティと参照整合性の設定を調整してクエリを最適化できます。 すべてのクエリの一部として実行
詳細レベルは viz の集計にあります 詳細レベルは、単一テーブルの行レベルにあります。
結合タイプは、分析のコンテキストに基づいて Tableau によって自動的に形成されます。Tableau では、Viz のメジャーとディメンションに基づいて、必要な結合を判定します。 結合タイプは、分析コンテキストに関係なく、データソース内で静的で固定されます。結合とユニオンは分析の前に確立され、変化しません。
行は複製されません マージしたテーブルでは、データの重複が発生する可能性があります。
明示的に除外されない限り、一致しないレコードが集計に含まれます 一致しないレコードはマージされたデータから除外されます
複数の詳細レベルで独立したドメインを作成します。 抽出フィルター、行レベルのセキュリティ、集計など、単一のデータ テーブルが必要なシナリオに対応できます

関係とブレンド

関係とブレンドでは異なる詳細レベルでの解析を使用できますが、それぞれ明確な違いがあります。リレーションシップにブレンドを使用する理由の 1 つは、分析にパブリッシュされたデータ ソースを組み合わせることです。

 

リレーションシップ ブレンド
データソースで定義される プライマリデータソースとセカンダリデータソースの間のワークシートで定義される
公開可能 公開できません
すべてのテーブルは意味的に等しい プライマリ データ ソースとセカンダリ データ ソースの選択と、その構造によって異なります。
完全外部結合をサポート 左結合のみをサポート
ローカルで計算 SQL クエリの一部として計算されます。
関連フィールドは固定されています 関連フィールドはシートによって異なります (シート単位でカスタマイズできます)。

データを組み合わせるさまざまなオプション機能: リレーションシップ、結合、ブレンド

データ テーブルの組み合わせには数多くの方法があり、それぞれに適したシナリオや微妙な違いがあります。

関連

異なる詳細レベルのデータを組み合わせる場合に使用します。

  • 2 つの論理テーブル間でフィールドを一致させる必要があります。複数の一致するフィールドペアで、リレーションシップを定義できます。
  • Viz でのフィールドの関連付けと使用方法に基づいて、正しい集計とコンテキスト結合を自動的に使用します。
  • 多対多結合と外部結合をサポートします。
  • リレーションシップはブック全体で一貫しており、パブリッシュできます。
  • パブリッシュはできますが、パブリッシュしたデータ ソースを関連付けたり、パブリッシュしたデータ ソースのリレーションシップを編集することはできません。
  • 計算フィールドまたは地理的フィールドに基づいてリレーションシップを定義することはできません。
  • データソースフィルターを使用すると、リレーションシップの結合のカリングの利点が制限されます。
結合

同じ行構造にデータの列を追加する場合に使用します。

  • 2 つの物理テーブル間に共通のフィールドが必要です。
  • 結合句と結合の種類を確立する必要があります。
  • 計算で結合できます。
  • 結合された物理テーブルは、固定データの組み合わせで単一の論理テーブルにマージされます。
  • すべてのテーブルにフィールドまたは値が存在しない場合は、データが失われる可能性があります (使用する結合タイプによって異なります)。
  • フィールドが異なる詳細レベルにある場合、データの重複が発生する可能性があります。
  • データソースフィルターを使用できます。
ユニオン

同じ列構造を持つデータの行を追加する場合に使用します。

  • 2 つのテーブル間で一致する列に基づいています。
  • ユニオン化された物理テーブルは、固定データの組み合わせを持つ単一の論理テーブルにマージされます。
ブレンド

異なる詳細レベルのデータを組み合わせる場合に使用します。

  • パブリッシュされたデータ ソースは、組み合わせるために使用することはできますが、パブリッシュすることはできません。
  • リレーショナルデータソースとキューブデータソースの間で使用できます。
  • データ ソースはシート単位でブレンドできます。
  • 常に効果的に残された結合 (セカンダリデータソースからのデータが失われる可能性があります)。

このセクションの他の記事

ありがとうございます! フィードバックの送信中にエラが発生しました。もう一度やり直すか、メッセージをお送りください