データの関連付け
関係は、複数のテーブルのデータを分析用に組み合わせる動的で柔軟な方法です。関係は、2 つのテーブルが相互にどのように関連しているかを表しますが、テーブルがマージされることはありません。テーブル間でリレーションシップを作成しても、テーブルは独立したままで、詳細レベルやドメインはそれぞれ維持されます。
関係は、2 つのテーブル間の契約と考えることができます。これらのテーブルのフィールドを使って Viz を構築する場合、Tableau は、その契約を使用してこれらのテーブルからデータを取り込み、適切な結合を使用してクエリを作成します。
詳細: 関係を使用してデータを組み合わせることは、Tableau の新しいデータ モデリングの重要な機能です。詳細については、「データ ソースと分析で変更された内容(新しいウィンドウでリンクが開く)」を参照してください。リレーションシップのしくみの詳細については、Tableau ブログ投稿を参照してください。
- 関係 (パート 1): Tableau に新しいデータ モデリングを導入する(新しいウィンドウでリンクが開く)
- 関係 (パート 2): ヒントとテクニック(新しいウィンドウでリンクが開く)
- 関係 (パート 3): 複数の関連するテーブルを横断して質問する(新しいウィンドウでリンクが開く)
ビデオを視聴する: Tableau で関係を使用する方法については、この 5 分間のビデオを参照してください。
注: このビデオで示されている関係を編集するためのインターフェースは、現在のリリースとは少し異なりますが、同じ機能を備えています。
Action Analytics(新しいウィンドウでリンクが開く) は、Tableau で関係を使用する際に役立つビデオ ポッドキャストも提供します。はじめに、「Tableau が関係を発明した理由(新しいウィンドウでリンクが開く)」を参照してください。他のポッドキャストを表示するには、Action Analytics の Web サイトライブラリ(新しいウィンドウでリンクが開く)で [ビデオ ポッドキャスト] をクリックします。
リレーションシップとは
リレーションシップとは、データ ソースの論理テーブル間で作成した柔軟な接続線のことです。親しみを込めて関係を「ヌードル」と呼ぶ人もいますが、通常、ヘルプ ドキュメントでは「関係」と呼んでいます。
関係によってデータの準備と分析がより簡単かつ直感的に行えるようになるため、データを結合する際の最初のアプローチとして関係を使用することをお勧めします。結合は、必要不可欠な場合にのみ使用してください(新しいウィンドウでリンクが開く)。
複数テーブルのデータに結合を使用する場合と比べると、リレーションシップには次のような利点があります。
- テーブル間で結合タイプ(新しいウィンドウでリンクが開く)を構成する必要はありません。必要なのはリレーションシップに必要なフィールドを選択することだけです。
- 関連付けたテーブルは明確に分離したままで、単一テーブルにはマージされません。
- 関係では結合が使用されますが、その処理は自動的に行われます。ビジュアライゼーションで使用されているフィールドに基づいて結合タイプが自動的に選択されます。分析中は、結合タイプがインテリジェントに調整され、ネイティブの詳細レベルがデータ内で保持されます。
- ワークシートで使用されているフィールドの現在のコンテキストに基づいて、分析時に正しい集計と適切な結合が生成されます。
- 単一のデータ ソースでさまざまな詳細レベルの複数テーブルが使用できます。多くのテーブルを含むデータ モデルを構築し、Viz の作成に必要なデータ ソースの数を減らすことができます。
- 一致しないメジャー値は削除されません (データが誤って失われることはありません)。
- 関係を使用すると、結合で発生する可能性のあるデータの複製やフィルタリングの問題を防ぐことができます。
- Tableau は、現在のビューに関連するデータに対するクエリのみを生成します。
関連情報については、以下を参照してください。
リレーションシップの要件
- テーブルを関連付ける際は、リレーションシップを定義するフィールドが同じデータ型である必要があります。
- リレーションシップは地理的フィールドに基づいて定義することはできません。
- データ モデルでは循環関係に対応していません。
- パブリッシュされたデータ ソース間の関係を定義することはできません。
関連テーブルを使うことの利点が制限される要因には、以下のようなものがあります。
- テーブル内にダーティ データがある (たとえば、適切に構造化されたモデルを考慮して作成しておらず、メジャーとディメンションが複数のテーブルに混在している) 場合、複数テーブルの分析がさらに複雑になることがあります。
- データ ソース フィルターを使用すると、データ内で結合選択を行う Tableau の機能が制限されます。結合選択とは、Tableau で不要な結合を削除してクエリを簡略化する方法のことです。
- 関係全体で一致しない値が多く含まれるテーブル。
- Tableau バージョン 2024.2 以降では、マルチファクト関係を使用して、共有ディメンションをモデル化し、複数の基底テーブルを利用することができます。詳細については、「マルチファクト関係データ モデルについて」(新しいウィンドウでリンクが開く)、「マルチファクト関係モデルを使用するとき」(新しいウィンドウでリンクが開く)、「マルチファクト関係データ モデルの構築」(新しいウィンドウでリンクが開く)を参照してください。
関連付けできないデータ
ほとんどのリレーショナル接続タイプは完全にサポートされています。キューブ、SAP HANA (OLAP 属性が設定されている)、JSON、Google アナリティクスは、Tableau 2020.2 で単一の論理テーブルに制限されています。ストアド プロシージャは、単一の論理テーブル内でのみ使用できます。
パブリッシュされたデータ ソースを相互に関連付けることはできません。
未対応
- キューブ データベースは、新しい論理レイヤーをサポートしていません。キューブに接続すると、2020.2 より前のバージョンと同じ操作ができるようになります。
- ストアド プロシージャ: フェデレーション、関係、結合に対応していません。これらは 1 つの論理テーブルで表され、結合/ユニオン キャンバス (物理レイヤー) を開くことは許可されていません。
- Splunk: 左結合 (したがって論理テーブルに関連付ける) をサポートしていません。
- JSON: フェデレーション、カスタム SQL、結合、関係 (ユニオンのみ) に対応していません。
- LOD calcs に対応していないデータ ソース。詳細については、「詳細レベルの式に関するデータ ソースの制約」(新しいウィンドウでリンクが開く)を参照してください。
限定サポート
- Salesforce と WDC 標準接続: 論理テーブル内では結合テーブルとして示されます。これらの接続の追加は、現在、単一の論理テーブルのデータ ソースでのみサポートされています。標準接続は既存のテーブルに結合できません。
- SAP HANA: 接続に OLAP 属性が設定されている場合、関連する論理テーブルはサポートされません。
リレーションシップの作成と定義
基底テーブルが 1 つしかないモデルでは、最初のテーブルをデータ ソースの最上位キャンバスにドラッグした後は、新しいテーブルをキャンバスにドラッグするたびに、そのテーブルと既存のテーブルの関係を作成する必要があります。論理レイヤー内のテーブル間で関係を作成するときは、データ ソースのデータ モデルを構築します。
バージョン 2024.2 以降: 基底テーブルが複数あるモデルの場合、モデルに追加する各新しいテーブルは、少なくとも 1 つの基底テーブル ツリーに関連付けられている必要があります。詳細については、「マルチファクト関係データ モデルの構築」(新しいウィンドウでリンクが開く)を参照してください。
リレーションシップの作成
データ ソースの論理レイヤーでリレーションシップを作成します。これは、[データ ソース] ページに表示されるキャンバスの既定のビューです。
このトピックの手順では、基底テーブルが 1 つしかないモデルの関係を設定する方法について具体的に説明します。
バージョン 2024.2 以降では、基底テーブルが 1 つしかないモデルまたは基底テーブルが複数あるモデルを構築できます。複数の基底テーブルを使用してマルチ ファクト関係を作成する方法については、「マルチファクト関係データ モデルの構築」(新しいウィンドウでリンクが開く)を参照してください。
- テーブルをキャンバスにドラッグします。
基底テーブルが 1 つしかないモデルの場合: キャンバスに追加する最初のテーブルが基底テーブルになります。追加する他のすべてのテーブルはそのテーブルに関連付けられます。
基底テーブルが複数あるモデルの場合: どのテーブルが基底テーブルであるかを決定する必要があります。別の基底テーブルを作成するには、左側のペインから [新しい基底テーブル] ドロップ領域にテーブルをドラッグします。詳細については、「マルチファクト関係データ モデルの構築」(新しいウィンドウでリンクが開く)を参照してください。
- 別のテーブルをキャンバスにドラッグします。関連付けたい 2 つのテーブル間に「ヌードル」が表示されたら、そのテーブルをドロップします。
関係の設定は、[テーブルの詳細] ペインのキャンバスの下に表示されます。Tableau では、既存のキー制約および一致するフィールドに基づいてリレーションシップを作成して定義することを自動的に試みます。一致するフィールドを判別できない場合は、ユーザーがそれらのフィールドを選択する必要があります。
フィールドを変更するには、フィールド ペアを選択してから、下にあるフィールドのリストからフィールドを選択し、一致するフィールドの新しいペアを設定します。
複数のフィールド ペアを追加するには、最初のペアを選択した後、[閉じる] を選択してから、[フィールドを追加] を選択します。
制約が検出されない場合は、多対多のリレーションシップが作成され、参照整合性が [Some records match (一部のレコードが一致)] に設定されます。これらの既定の設定は安全な選択肢であり、データ ソースに最大限の柔軟性を提供します。既定の設定では完全外部結合に対応しており、分析する際はテーブル データを集計してから結合を形成するとクエリを最適化できます。分析には、各テーブルのすべての列データと行データを使用できます。
多くの分析シナリオでは、関係の既定の設定を使用して、分析に必要なすべてのデータを得ることができます。多対多の関係を使用すると、データがに多対 1 または 1 対 1 の場合でも機能します。データの特定のカーディナリティと参照整合性がわかっている場合は、パフォーマンス オプションの設定(新しいウィンドウでリンクが開く)を調整して、データをより正確に記述し、Tableau がデータベースのクエリを行う方法を最適化できます。
必要に応じて、同じ手順に実行してテーブルを追加します。
複数テーブルの関連データ ソースを作成したら、そのデータを調査できます。詳細については、関係を使用する複数テーブルのデータ ソースでの分析動作と「複数テーブルの分析のトラブルシューティング」(新しいウィンドウでリンクが開く)を参照してください。
注: Salesforce コネクタは非等価演算子をサポートしていません。Google Big Query および MapR コネクタは、バージョン 2021.4 以降、非等価結合をサポートしています。MapR コネクタは、バージョン 2022.3 で非推奨になりました。
テーブルを移動して別のリレーションシップを作成
テーブルを移動するには、別のテーブルの横にドラッグします。または、テーブルにカーソルを合わせ、矢印を選択してから、[移動] を選択します。
ヒント: 別のテーブルの上にテーブルをドラッグして置き換えます。
データ モデルのルート テーブルまたは基底テーブルの変更
ルート テーブル (バージョン 2020.2 ~ 2024.1) または基底テーブル (バージョン 2024.2 以降) を別のダウンストリーム テーブルと交換できます。データ モデル内の別の論理テーブルを右クリックし、[ルートと交換] または [基底テーブルと交換 (テーブル名)] を選択して変更を加えます。
リレーションシップからテーブルを削除
テーブルを移動するには、テーブにカーソルを合わせ、矢印を選択してから、[削除] を選択します。
キャンバス内のテーブルを削除すると、関連する子孫も自動的に削除されます。
リレーションシップの表示
- リレーションシップの線 (ヌードル) にカーソルを合わせると、そのリレーションシップを定義する一致フィールドが表示されます。また、任意の論理テーブルにカーソルを合わせて、そのテーブルに含まれる内容を確認することもできます。
リレーションシップの編集
- 関係の行を選択すると、[テーブルの詳細] ペインで関係の設定が開きます。リレーションシップの定義に使用するフィールドを追加、変更、削除できます。フィールド ペアを追加すると、複合関係を作成できます。
- 複数のフィールド ペアを追加するには、最初のペアを選択した後、[閉じる] を選択してから、[フィールドを追加] を選択します。
リレーションシップの作成に関するヒント
- キャンバスにドラッグした最初のテーブルは、データ ソース内のデータ モデルのルート テーブルまたは基底テーブルになります。基底テーブルをドラッグした後、任意の順序でさらに別のテーブルをドラッグできます。相互に関連付ける必要があるテーブルに加えて、各関係に対して定義する、一致したフィールド ペアを考慮する必要があります。
- リレーションシップの作成を開始する前に、分析前または分析中にデータ ソースのデータを表示すると、各テーブルの範囲を把握するときに役立ちます。詳細については、参照元データの表示を参照してください。また、[データの表示] を使用すると、リレーションシップが無効な場合にテーブルの参照元データを表示することができます。
- スター スキーマのデータを操作している場合は、最初にファクト テーブルをドラッグして、それを基底テーブルにしてから、ディメンション テーブルをその基底テーブルに関連付けると便利です。
- 各関係は、少なくとも 1 つの一致するフィールド ペアで構成する必要があります。複数のフィールド ペアを追加すると、複合リレーションシップを作成できます。一致するペアは、参照元のデータベースの同じデータ型である必要があります。[データ ソース] ページでデータ型を変更しても、この要件は変更されません。Tableau では、クエリのデータベースのデータ型が使用されます。
- リレーションシップは計算フィールドに基づきます。リレーションシップを定義する際は、演算子を使用してフィールドの比較方法を指定することもできます。
- キャンバス内のテーブルを削除すると、関連する子孫も自動的に削除されます。
- ルート テーブル (バージョン 2020.2 ~ 2024.1) または基底テーブル (バージョン 2024.2 以降) を別のダウンストリーム テーブルと交換できます。データ モデル内の別の論理テーブルを右クリックし、[ルートと交換] または [基底テーブルと交換 (テーブル名)] を選択して変更を加えます。
データ ソース内のリレーションシップの検証
分析用のデータ モデルを検証するには、いくつかのオプションがあります。データ ソースのモデルを作成する際は、シートにアクセスしてそのデータ ソースを選択し、Viz を構築して、レコード数、一致しない値、NULL、またはメジャー値の重複を調べることをお勧めします。さまざまなテーブルのフィールドを使用して、すべてが想定したとおりに表示されることを確認してください。
検索対象:
- データ モデル内のリレーションシップで、テーブルに合った適切なフィールドが使用されていますか?
- 異なるディメンションやメジャーをビューにドラッグするとどうなりますか?
- 予期される行数が表示されますか?
- 複合リレーションシップはリレーションシップをより正確にしますか?
- パフォーマンス オプションの設定のいずれかを既定の設定から変更した場合、想定したとおりの値が Viz に表示されますか? そうでない場合は、設定を確認するか、既定の設定にリセットしてください。
関係とデータ モデルを検証するためのオプションは次のとおりです。
- すべてのテーブルにはレコードの数が、そのテーブルの詳細レベルに、TableName(Count) フィールドとして含まれています。テーブルのレコード数を表示するには、[カウント] フィールドをビューにドラッグします。すべてのテーブルの数を表示するには、[データ] ペインで各テーブルの [カウント] フィールドを選択し、[表示形式] の [テキスト テーブル] をクリックします。
- [データ] ペインの [データの表示] をクリックして、テーブルごとの行数とデータ数を確認します。また、関係の作成を始める前に、分析前や分析中にデータ ソースからデータを表示すると、各テーブルの範囲を把握するのに役立ちます。詳細については、「参照元データの表示」(新しいウィンドウでリンクが開く)を参照してください。
- ディメンションを行にドラッグして、ステータス バーの行数を確認します。一致しない値を表示するには、[分析] メニューをクリックし、[テーブル レイアウト] > [空の行を表示] または [空の列を表示]を選択します。また、Viz で表されているテーブルの 1 つから <YourTable>(カウント) などのさまざまなメジャーをビューにドラッグすることもできます。これにより、そのテーブルのディメンションのすべての値が表示されます。
ヒント: 関係に対して生成されるクエリを表示する場合は、Tableau Desktop のパフォーマンス レコーダーを使用できます。
- [ヘルプ] メニューをクリックし、[設定とパフォーマンス] > [パフォーマンス記録の開始] を選択します。
- ビューにフィールドをドラッグして Viz を作成します。
- [ヘルプ] メニューをクリックし、[設定とパフォーマンス] > [パフォーマンス記録の停止] を選択します。
- パフォーマンスの概要ダッシュボードの [時間で並べ替えられたイベント] で、[クエリの実行] バーをクリックし、以下のクエリを表示します。
より高度なもう 1 つのオプションは、GitHub にある Tableau Log Viewer(新しいウィンドウでリンクが開く) を使用することです。end-protocol.query
を使用して、特定のキーワードにフィルターを適用できます。詳細については、まず GitHub にある Tableau Log Viewer の Wiki ページ(新しいウィンドウでリンクが開く)をご覧ください。
ディメンションのみの視覚化
関連テーブルを含む複数テーブル のデータ ソースを使用する場合: ディメンションのみの viz を作成すると、Tableau は内部結合を使用するため、一致しないドメイン全体は表示されません。
ディメンション値の部分的な組み合わせを表示するには、次の方法を使用します。
- [空の行/列を表示] を使用して、すべての可能な行を表示します。[分析] メニューをクリックし、[テーブル レイアウト] > [空の行を表示] または [空の列を表示] を選択します。
- Viz で表されているテーブルの 1 つから <YourTable>(カウント) などのメジャーをビューに追加します。これにより、そのテーブルのディメンションのすべての値が表示されます。
詳細については、「複数テーブル対単一テーブルのデータ ソースの分析」(新しいウィンドウでリンクが開く)と「複数テーブルの分析のトラブルシューティング」(新しいウィンドウでリンクが開く)を参照してください。
リレーションシップ (論理テーブル) vs 結合 (物理テーブル)
結合と関係は類似していますが、Tableau では動作が異なり、データモデルの異なるレイヤーで定義します(新しいウィンドウでリンクが開く)。リレーションシップは、データソースの最上位の論理レイヤーにある論理テーブルの間に存在します。結合は、データソースの物理レイヤーにある物理テーブルの間に存在します。
結合を使用すると、分析を始める前に 2 つのテーブルのデータが 1 つのテーブルにマージされます。テーブルのマージでは、一方のテーブルや両方のテーブルのデータが複製されたりフィルターされることがあります。また、左結合、右結合、または完全外部結合を使用すると、データに NULL 行が追加されることもあります。結合されたデータを分析する場合は、結合がデータに与える影響を正しく処理する必要があります。
注: 結合の重複またはフィルターリングが効果的である場合は、結合を使用して、関係ではなくテーブルをマージします。論理テーブルをダブルクリックして物理レイヤーを開き、結合テーブルを追加します。
関係は、2 つの独立したテーブルが相互にどのように関連しているかを表しますが、テーブルがマージされることはありません。これにより、結合で発生する可能性のあるデータの複製やフィルターに関する問題が回避され、データの処理が容易になります。
リレーションシップ | 結合 |
---|---|
リレーションシップ キャンバス (論理レイヤー) の論理テーブル間で定義 | 結合/ユニオン キャンバス (物理レイヤー) の物理テーブル間で定義 |
結合タイプの定義は不要 | 結合計画と結合タイプを必須にする |
結合またはユニオンされたテーブルのコンテナーのように動作する | 論理テーブルにマージされます。 |
Viz に関連するデータだけが必要です。カーディナリティと参照整合性の設定を調整してクエリを最適化できます。 | すべてのクエリの一部として実行 |
詳細レベルは viz の集計にあります | 詳細レベルは、単一テーブルの行レベルにあります。 |
結合タイプは、分析のコンテキストに基づいて Tableau によって自動的に形成されます。Tableau では、Viz のメジャーとディメンションに基づいて、必要な結合を判定します。 | 結合タイプは、分析コンテキストに関係なく、データソース内で静的で固定されます。結合とユニオンは分析の前に確立され、変化しません。 |
行は複製されない | マージしたテーブルでは、データの重複が発生する可能性があります。 |
明示的に除外されない限り、一致しないレコードが集計に含まれます | 一致しないレコードはマージされたデータから除外されます |
複数の詳細レベルで独立したドメインを作成します | 抽出フィルターや集計など、データの単一テーブルが必要なシナリオに対応できます |
関係とブレンド
関係とブレンドでは異なる詳細レベルでの解析を使用できますが、それぞれ明確な違いがあります。リレーションシップにブレンドを使用する理由の 1 つは、分析にパブリッシュされたデータ ソースを組み合わせることです。
リレーションシップ | ブレンド |
---|---|
データソースで定義される | プライマリデータソースとセカンダリデータソースの間のワークシートで定義される |
公開可能 | 公開できません |
すべてのテーブルは意味的に等しい | プライマリ データ ソースとセカンダリ データ ソースの選択と、その構造によって異なります。 |
完全外部結合をサポート | 左結合のみをサポート |
ローカルで計算 | SQL クエリの一部として計算されます。 |
関連フィールドは固定されています | 関連フィールドはシートによって異なります (シート単位でカスタマイズできます)。 |
データを組み合わせるさまざまなオプション機能: リレーションシップ、結合、ブレンド
データ テーブルの組み合わせには数多くの方法があり、それぞれに適したシナリオや微妙な違いがあります。
関連 | 異なる詳細レベルのデータを組み合わせる場合に使用します。
|
結合 | 同じ行構造にデータの列を追加する場合に使用します。
|
ユニオン | 同じ列構造を持つデータの行を追加する場合に使用します。
|
ブレンド | 異なる詳細レベルのデータを組み合わせる場合に使用します。
|