マルチファクト関係データ モデルの構築
分析では、互いに直接的な関係はないものの、日付や場所などの同じ共通情報に関連しているデータのテーブルをまとめることがよくあります。このタイプの分析は、共有ディメンションを持つマルチファクト分析と呼ばれることもあります。
Tableau でこの種の分析を実行するには、共有テーブルによって接続されている複数の基底テーブルを使用するデータ ソースを作成する必要があります。
- 基底テーブルは、[データ ソース] タブのデータ モデル内にある一番左のテーブルです。基底テーブルとして使用するテーブルを決定する方法については、「マルチファクト関係モデルを使用するとき」を参照してください。
- 共有テーブルは、複数の入力関係を持つダウンストリーム テーブルです。これらのテーブルには、Viz での分析中に関連のないフィールドをつなぎ合わせるために使用できるフィールドが含まれています。日付と場所は、一般的に共有されるテーブルの例です。
モデルの構築
マルチファクト関係データ モデルの構築は、関係を使用する他のデータ ソースの作成と基本的に同じですが、追加の基底テーブルと共有テーブルへの複数の入力関係という 2 つの要素が追加されます。
- データに接続します。テーブルがすべて同じデータベース内にない場合は、複数のデータ接続を使用できます。
- 最初の基底テーブルを作成するには、テーブルをキャンバスにドラッグします。
- 左側のペインから別のテーブルを [New Base Table (新しい基底テーブル)] ドロップ領域にドラッグします。
Tableau では、複数の基底テーブルを含むデータ モデルを構築していることを示す警告が表示されます。データに必要な場合にのみ、複数の基底テーブル モデルを設定することをお勧めします。それ以外の場合は、複数の基底テーブル モデルに伴う複雑さを回避するために、単一の基底テーブル モデルを使用してください。
- 別のフィールドをキャンバスにドラッグし、それを基底テーブルの 1 つに関連付けます。必要に応じて各関係を構成します。
- まだ関連付けられていない基底テーブルにカーソルを合わせると、プラス記号 (愛称は「ミートボール」) が表示されます。
- プラス記号アイコンを共有テーブルにドラッグして、新しい入力関係 (「ヌードル」とも呼ばれます) を作成します。
オプション: ダウンストリーム テーブルと基底テーブルの追加を続行します。必要に応じて、プラス記号アイコンをクリックしてドラッグし、共有テーブルを構築します。
注: 基底テーブルから始めるのではなく、最初に単一の基底テーブル モデルを構築し、後で基底テーブルを追加することもできます。
モデルの探索
複数の基底テーブルを持つデータ モデルは関係を使用して構築されますが、すべてのテーブルが相互に同じ程度の関係を持つわけではありません。各基底テーブルはツリーを定義します。ツリーには、その基底テーブルに関連するすべてのテーブルが、直接関連しているか、関連テーブルのダウンストリームにあるかに関係なく含まれます。共有テーブルは複数のツリーに存在します。関連性の詳細については、「マルチファクト関係データ モデルについて」を参照してください。
複数の基底テーブルを含むモデルを表示する場合、データ モデルを探索および管理するためのさまざまなオプションがあります。これらのオプションは、データ モデルが複雑な場合に特に役立ちます。
2024.2 では、データ モデルの新しいレイアウトの詳細がいくつか導入されました。マルチファクト関係データ モデルでは、関係がバンドルされるため、テーブルに含まれる入力関係の数を追跡しやすくなります。また、共有テーブル (およびダウンストリームの共有テーブル) のアウトラインは、共有されていないテーブルよりも太く表示されます。
用語
複数の基底テーブル データ モデル内のテーブルには、特定の役割があります。マルチファクト関係データ モデルに存在する必要があるテーブルは、基底テーブルと共有テーブルのみです。(複数の基底テーブルがない場合、それはマルチファクト関係データ モデルではありません。基底テーブルを接続する共有テーブルがなければ、有効なデータ モデルではありません。)
これらのモデルは複雑な性質を持つことが多いため、他のタイプのテーブルがデータ モデルにどのように適合するかについて説明する際には、共通の用語を使用すると便利です。
- 基底テーブル - 一番左にあり、入力関係を持ちません。
- この例では、Inventory (在庫)、Marketing (マーケテイング)、Sales (売上)、および Support (サポート) が基底テーブルです。
- サブ基底テーブル - 基本テーブルと共有テーブルの間にあります。
- この例では、Parts (部品) がサブ基底テーブルです。
- 共有テーブル - 複数の入力関係を持ちます。
- この例では、Products (製品)、Dates (日付)、Customer (お客様)、Supplier (サプライヤー) が共有テーブルです。
- ダウンストリームの共有テーブル - 入力関係を 1 つのみ持ち、そのアップストリームのどこかに共有テーブルがあります。
- この例では、Subcategory (サブカテゴリ) と Category (カテゴリ) がダウンストリームの共有テーブルです。
- ダウンストリームの非共有テーブル - 入力関係を 1 つのみ持ち、そのアップストリームには共有テーブルはありません。
- この例では、ダウンストリームの非共有テーブルはありません。
- 基底テーブル: Inventory (在庫)、Marketing (マーケテイング)、Sales (売上)、Support (サポート)
- サブ基底テーブル: Parts (部品)
- 共有テーブル: Products (製品)、Dates (日付)、Customer (お客様)、Supplier (サプライヤー)
- ダウンストリームの共有テーブル: Subcategory (サブカテゴリ)、Category (カテゴリ)
- ダウンストリームの非共有テーブル: なし
関係ツリーの特定
テーブルの上にカーソルを合わせると、関連するテーブルが強調表示されます。Tableau では、そのテーブルのツリーが強調され、関連のないテーブルは強調されません。
関係の詳細を表示
関係または関係のバンドルの上にカーソルを合わせると、ツールヒントに詳細が表示されます。
関係の選択
関係を選択すると、データ モデル キャンバスで青色に強調表示され、その詳細がデータ モデル キャンバスの下の [テーブルの詳細] ペインに表示されます。[テーブルの詳細] ペインでは、関係句を検査または変更できます。
関係を選択するには、以下のようにいくつかの方法があります。
- キャンバス内の関係線 (ヌードル) をクリックします。すべての関係には、そのヌードルだけを選択するクリック可能な領域があります。
- キャンバス内のテーブルを右クリックするか、Control キーを押しながらクリックしてメニューを開きます。[Selet Relationship (関係の選択)] オプションを選択し、必要なテーブルの関係を選択します。
- キャンバス内の関係のバンドルをクリックすると、永続的なツールヒントが表示されます (バンドルの上にカーソルを合わせるとツールヒントが表示されます。永続化するにはクリックする必要があります)。次に、ツールヒントの詳細で行を選択して、モデル内のその関係を強調表示します。
- [テーブルの詳細] ペインのツールバーのメニューを開き、目的の関係を選択します。このメニューを使用して特定のテーブルを選択し、そのプレビューをペインに表示することもできます。
基底テーブルとの交換
基底テーブルと共有テーブル間の関係内にある中間テーブルでは、ダウンストリーム テーブルを基底テーブルと交換するオプションが提供されます。これは概念の理解しやすくするための単なる視覚的な変更であり、データ モデルの構造を変更するものではありません。
ダウンストリーム テーブルを右クリックするか、Control キーを押しながらクリックし、[Swap with base table (table name) (基底テーブル (テーブル名) と交換)] を選択します。交換オプションは、ダウンストリーム テーブルにのみ存在し、基底テーブルには存在しません。
交換オプションは、共有テーブルやダウンストリームの共有テーブルなど、交換によってデータ モデルが変更されるテーブルでは使用できません。基底テーブルと交換できるのは、ダウンストリームの非共有テーブルまたはサブ基底テーブルのみです。
例
この例では、データ モデルの基本構造を変更せずに、Parlor Info テーブルと Ice Cream Sales テーブルを交換できます。他のテーブルは交換できません。
- Ice Cream Sales は、Parlor Info と Date (共有テーブル) の両方に関連しています。
- Parlor Info は、Ice Cream Sales と Location (共有テーブル) の両方に関連しています。
- Weather は、Date と Location の両方の共有テーブルに関連しています。
これらの 2 つのモデルは概念的には同等です。
基底テーブルの折りたたみ
関係のパスまたはツリーをその基底テーブルにのみに折りたたんで、データ モデルのビューを一時的に簡素化することもできます。
[Collapse (折りたたむ)] をクリックするか、基底テーブル上の [Expand (展開)] ボタンをクリックして、ツリー全体を折りたたむか、展開します。または、ダウンストリーム テーブルを右クリックまたは Ctrl キーを押しながらクリックし、[Collapse this path (このパスを折りたたむ)] または [Collpase other paths (他のパスを折りたたむ)] を選択します。このオプションは、共有テーブルまたは共有テーブルのダウンストリームのテーブルでは使用できません。
ツリーを基底テーブルに折りたたむことは、単なる視覚的な操作であるため、関連のないテーブルに関するアラートはトリガーされません。パスが折りたたまれると、積み重ねられたテーブルおよび展開ボタンを持つ基底テーブルが表示されます。折りたたみは、そのツリーにのみ関連するすべてのテーブルと関係に影響するものであるため、折りたたまれていないパスと共有されているテーブルは非表示になりません。
基底テーブルとツリー内のすべてをもう一度開くには、[展開] ボタンをクリックします。
トラブルシューティング
単一のデータ ソースの作成
すべてのテーブルは、何らかの形でデータ ソース全体に関連付けられている必要があります。全体的なデータ モデルに関連していないテーブルがある場合は、アラートが表示されます。アラートは、データ モデルの残りの部分から完全に分離されているテーブルまたはツリーがなくなるまで表示されます。アラートがアクティブな場合は、データ ソースをパブリッシュすることはできず、分析でデータ ソースを使用することもできません。
アラートを開いて、[Visually Separate Unrelated Tables (関連のないテーブルを視覚的に分離)] を設定すると、アラートをトリガーしたテーブルを識別できます。このオプションは、複雑なモデルを持っていて、どのテーブルがデータ モデルの残りの部分にまだ関連付けられていないかを特定する必要がある場合に役立ちます。
例
「モデルの構築」の手順では、2 番目の基底テーブルを接続するための関係が追加される前に、ステップ 4 でアラートが表示されます。
[Visually Separate Unrelated Tables (関連のないテーブルを視覚的に分離)] オンに設定すると、クラブ テーブルが [Unrelated Tables (関連のないテーブル)] 行の下に移動します。Clubs を Students に関連付けると、アラートが解決されます。
循環 の解決
一部のテーブルが互いに直接関連していなくても、データ モデル全体がまとまったものである必要があります。この例では、各基底テーブルはツリーを定義しますが、それら接続する共有テーブルがありません。これは有効な分析モデルではありません。
関連テーブルの 2 つのグループを共有テーブルを介して結合する必要があります...
または、データ モデルを 2 つの別個のデータ ソースとして作成する必要があります。
データ モデルの制限事項
テーブル間の一部の関係パスは、複数の基底テーブル モデルでサポートされていません。テーブルに 2 番目の入力関係を作成しようとしたときにミートボールをドロップできない場合は、作成しようとしている構造が Tableau でサポートされていることを確認してください。サポートされていないモデルの例は次のとおりです。
循環
循環 (アップストリーム テーブルから同じダウンストリーム テーブルへの関係パスが複数ある) はサポートされていません。このサポートされていない構造は、蝶ネクタイと呼ばれることもあります。Tableau でテーブル間のこのような関係をモデル化するには、ダウンストリーム テーブルを別のベース テーブルに変換して、蝶ネクタイではなく複数の基底テーブルを使用します。
データ モデルは、有向非巡回グラフである必要があります。つまり、テーブルへのすべての入力関係は、アップストリームの別の基底テーブルまで追跡可能である必要があります。
サポートされていません。テーブル X には 2 つの入力関係があり、それらは共に基底テーブル A のダウンストリーム テーブルからのものである。 | サポートされます。テーブル S と T には両方とも複数の入力関係があるが、それぞれが異なる基底テーブルからのものである。 | サポートされます。視覚的には循環があるように見えるが、テーブル S とテーブル T の両方の入力関係は、異なる基底テーブルへと追跡することができる。 |
ネストされた共有テーブル
ネストされた共有テーブルはサポートされていません。共有テーブル (複数の入力関係を持つテーブル) のダウンストリーム テーブルが持つことがきる入力関係は、1 つだけです。