Tableau データ モデル

Tableau で作成したすべてのデータ ソースには、データ モデルがあります。データ モデルとは、接続したデータベース テーブルでデータをどのようにクエリするかを Tableau に伝える図のようなものです。

[データ ソース] ページでキャンバスに追加したテーブルによって、そのデータ モデルの構造が作成されます。データ モデルには、単一テーブルのように単純なものもあります。また、複数のテーブルを含む複雑なモデルには、リレーションシップ、結合、ユニオンなどのさまざまな組み合わせが使用されています。

データ モデルには、次の 2 つのレイヤーがあります。

  • [データ ソース] ページのキャンバスで最初に表示される既定のビューは、そのデータ ソースの論理レイヤーです。論理レイヤーでは、リレーションシップ (ヌードル) を使用してデータを組み合わせます。このレイヤーは、[データ ソース] ページのリレーションシップのキャンバスと考えてください。詳細については、「複数テーブルのデータ分析に関係を使用する(新しいウィンドウでリンクが開く)」を参照してください。
  • 次のレイヤーは物理レイヤーです。物理レイヤーでは、結合(新しいウィンドウでリンクが開く)とユニオンを使用してテーブル間でデータを組み合わせます。このレイヤーでは、それぞれの論理テーブルに少なくとも 1 つの物理テーブルが含まれています。物理レイヤーは、[データ ソース] ページの結合/ユニオンのキャンバスと考えてください。論理テーブルをダブルクリックして、結合とユニオンを表示または追加します。

論理レイヤー 物理レイヤー
ヌードル = リレーションシップ ベン図 = 結合
 
複数の関連するテーブルがあるデータ ソースの最上位ビュー。これが論理レイヤーになります。論理テーブルは、リレーションシップ (ヌードル) を使用して組み合わせることができます。結合タイプは使用されません。論理テーブルは物理テーブルのコンテナのように機能します。 論理テーブルをダブルクリックで開き、物理テーブルを表示します。物理テーブルは、結合またはユニオンを使用して組み合わせることができます。この例では、書籍の論理テーブルが、結合された 3 つの物理テーブル (書籍、賞、情報) で構成されています。

 

論理レイヤー 物理レイヤー
[データ ソース] ページのリレーションシップのキャンバス [データ ソース] ページの結合/ユニオンのキャンバス
ここにドラッグしたテーブルは論理テーブルと呼ばれます ここにドラッグしたテーブルは物理テーブルと呼ばれます
論理テーブルは他の論理テーブルに関連付けることができます 物理テーブルは、他の物理テーブルに結合またはユニオンすることができます
論理テーブルは物理テーブルのコンテナのように機能します 論理テーブルをダブルクリックすると、その物理テーブルが表示されます。
詳細レベルは、論理テーブルの行レベルにあります。 詳細レベルは、マージされた物理テーブルの行レベルにあります。
論理テーブルは、データ ソースにマージされず、行の重複が削除された (正規化) 状態のままになります。 物理テーブルは、論理テーブルを定義する単一のフラットなテーブルにマージされます。

データ モデルのレイヤー

データ ソースで表示されるトップレベルビューは、データ モデルの論理レイヤーです。このレイヤーでは、結合ではなくリレーションシップを使用してテーブルを組み合わせるため、リレーションシップのキャンバスとみなすこともできます。

複数のテーブルのデータを組み合わせる場合、論理レイヤーのキャンバスにドラッグするテーブルには別のテーブルとのリレーションシップが存在する必要があります。関係の結合タイプを指定する必要はありません。Tableau では、ワークシート内の分析のフィールドとコンテキストに基づいて、適切な結合タイプが自動的に選択されます。

データ モデルの物理レイヤーでは、結合とユニオンを使用してデータを組み合わせることができます。このキャンバスではピボットのみを使用できます。このレイヤーは、結合/ユニオンのキャンバスと考えることができます。以前のバージョンの Tableau では、データ モデル内で物理レイヤーが唯一のレイヤーでした。それぞれの論理テーブルには、1 つまたは複数の物理テーブルを含めることができます。

重要: Tableau では引き続き、結合とユニオンを使用する単一テーブルのデータ ソースを作成することができます。Tableau で単一テーブルの分析を行う動作は変更されていません。アップグレードしたワークブックは、2020.2 以前と同じように動作します。

[データモデル] について

Tableau の以前のバージョン (2020.2 より前) では、データは物理レイヤーのみをモデル化していました。Tableau 2020.2 以降では、データ モデルには論理レイヤーと物理レイヤーがあります。これにより、分析に合わせてスキーマを使用してデータを結合するためのオプションが増えます。

Tableau 2020.2 以降では、データ ソースに論理レイヤーが追加されました。論理テーブルには、物理レイヤーの中に物理テーブルが含まれています。

Tableau の以前のバージョン (2020.2 より前) では、データ ソースにあるデータ モデルは、結合とユニオンを指定できる単一の物理レイヤーで構成されていました。結合やユニオンを使用して物理レイヤーに追加されたテーブルによって、分析に使用できる単一の平坦化された (非正規化済みの) テーブルが作成されていました。

以前のバージョン 2020.2 以降
 
2020.2 より前のバージョンの Tableau では、データ モデルには物理レイヤーだけが含まれています。 2020.2 以降では、データ モデルには論理レイヤーと物理レイヤーの 2 つのレイヤーがあります。

Tableau 2020.2 以降、データ ソースのデータ モデルには、物理レイヤーの上に新しいセマンティック レイヤー (論理レイヤー) が含まれ、複数のテーブルを追加して相互に関連付けることができます。論理レイヤーにあるテーブルは、データ ソースにマージされず、独立した (正規化された) 状態のままで、ネイティブの詳細レベルが維持されます。

論理テーブルは、マージされた物理テーブルのコンテナーのように機能します。論理テーブルには、単一の物理テーブルを含めることができます。または、結合またはユニオンを使用してマージされた複数の物理テーブルを含めることができます。

新しいモデルの構築

基本的に、論理レイヤーに 1 つまたは複数のテーブルを追加すると、データ ソースのデータ モデルを構築できます。単一の論理テーブルからデータ ソースを作成するか、複数のテーブルをキャンバスにドラッグして複雑なモデルを作成できます。

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

関係の詳細については、「データの関連付け」の「関係の作成と定義」を参照してください。

複数テーブルのモデル

  • 複数テーブルのモデルを作成するには、テーブルを [データ ソース] ページのキャンバスの論理レイヤーにドラッグします。


[データ ソース] ページのキャンバスの論理レイヤーにドラッグするテーブルは、相互に関連している必要があります。追加のテーブルを論理レイヤーのキャンバスにドラッグすると、Tableau では、既存のキー制約と一致するフィールドに基づいて、リレーションシップを自動的に作成し、そのリレーションシップの定義を試みます。一致するフィールドを判別できない場合は、ユーザーがそれらのフィールドを選択する必要があります。

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

テーブルをダブルクリックすると、任意の論理テーブル内にデータを追加できます。これにより、[データ ソース] ページのキャンバスの物理レイヤーが開きます。結合やユニオンを使用する必要がある場合は、結合したりユニオンしたりするテーブルを物理レイヤー キャンバスにドラッグできます。物理テーブルは論理テーブルにマージされます。

複数のテーブルを組み合わせるには、「リレーションシップの作成と定義」の手順に従ってください。

単一テーブルのモデル

  • 単一テーブルのモデルを作成するには、[データ ソース] ページの論理レイヤーのキャンバスにテーブルをドラッグします。その後、[データ] ペインのテーブルのフィールドを分析に使用できます。

他のテーブルを含む単一テーブルのモデル

テーブルをダブルクリックすると、単一の論理テーブル内にデータを追加できます。これにより、[データ ソース] ページのキャンバスの物理レイヤーが開きます。結合やユニオンを使用する必要がある場合は、結合したりユニオンしたりするテーブルを物理レイヤー キャンバスにドラッグできます。物理テーブルは論理テーブルにマージされます。

この例では、データ ソースの関係キャンバス (論理レイヤー) に [Book] テーブルが表示されます。[Book] 論理テーブルをダブルクリックすると、結合/ユニオン キャンバス (物理レイヤー) が開きます。

この例では、結合によって賞と情報のテーブルが書籍のテーブルにマージされます。この場合、賞の詳細レベルでは、書籍と賞との結合は一対多になります。これにより、書籍と情報のメジャー バリューが重複します。重複を避けるため、書籍の論理テーブル内で賞と情報を結合する代わりに、それらを書籍に関連付けることができます。

対応しているデータ モデルのスキーマ

バージョン 2020.2 で導入された Tableau のデータ モデリング機能は、スター型やスノーフレーク型のデータ モデルを含む、一般的な複数テーブルのデータ シナリオの分析を容易に行えるように設計されています。Tableau のデータ ソースでは、次のモデル タイプが対応しています。

単一テーブル

ディメンションとメジャーの混合を含む単一の論理テーブル上の分析は、Tableau 2020.2 以前と同様に機能します。結合、ユニオン、カスタム SQL などの組み合わせを使用して論理テーブルを作成できます。

スター スキーマとスノーフレーク スキーマ

エンタープライズ データ ウェアハウスでは、メジャーが中央のファクト テーブルに含まれ、ディメンションが独立したディメンション テーブルに個別に格納される、スター スキーマまたはスノーフレーク スキーマでデータが構造化されるのが一般的です。このデータの編成では、ロールアップやドリルダウンなど、多くの一般的な分析フローがサポートされます。

これらのモデルは、Tableau 2020.2 以降で利用できるデータ モデリング機能で、関係を使用して直接表現できます。

まず、ファクト テーブルをモデルにドラッグしてから、ディメンション テーブルをファクト テーブル (スター スキーマ内) または他のディメンション テーブル (スノーフレーク内) に関連付けます。

通常、適切にモデルされたスター スキーマまたはスノーフレーク スキーマでは、ファクト テーブルとディメンション テーブルの間のリレーションシップは多対 1 になります。この情報がデータ ウェアハウスにエンコードされている場合、Tableau は自動的にこれを使用してリレーションシップのパフォーマンス オプションを設定します。設定されていない場合は、この情報を自分で設定できます。詳細については、「パフォーマンス オプションを使用して関係のクエリを最適化する」を参照してください。

適切にモデル化したスター スキーマやスノーフレーク スキーマでは、ファクト テーブルのすべての行に、各ディメンション テーブルの一致するエントリが含まれます。これが true でデータ ウェアハウスの整合性制約にキャプチャされた場合、Tableau は自動的にこの情報を使用して、[パフォーマンス オプション] の参照整合性設定を設定します。一部のファクト テーブル行がディメンション テーブル内に一致する行を持たない場合 ("遅延到着ディメンション" または "早期到着ファクト" とも呼ばれます) は、メジャーの計算時にすべての行が保持されますが、ディメンション ヘッダーを表示するときに値が削除される可能性があります。詳細については、「パフォーマンス オプションを使用して関係のクエリを最適化する」を参照してください。

複数のテーブルでメジャー含むスタースキーマとスノーフレーク スキーマ

一部のスター スキーマまたはスノーフレーク スキーマでは、分析のすべてのメジャーがファクト テーブルに含まれています。ただし、多くの場合、分析のディメンション テーブルに関連する追加のメジャーが関係している可能性があります。ディメンション テーブルにメジャーが含まれていない場合でも、分析でディメンションの値をカウントしたり集計するのが一般的です。このような場合は、ファクト テーブルとディメンション テーブルはあまり明確に区別されていません。データ モデルをわかりやすく表示するには、まず最も細かいテーブルをデータ ソースのキャンバスに追加してから、そのテーブルに他のすべてのテーブルを関連付けることをお勧めします。

これらのテーブルを結合して 1 つの論理テーブルにする場合、LOD 計算または COUNT DISTINCT を使用して値を重複しないようにする予防措置を講じなければ、ディメンション テーブル内のメジャーがレプリケートされ、集計が歪んでしまいます。ただし、これらのテーブル間にリレーションシップを作成する場合、Tableau は、結合を実行する前にメジャーを集計し、不要な重複の問題を回避します。これにより、測定の詳細レベルを慎重に追跡する必要が解消されます。

マルチファクト分析

バージョン 2024.2 以降、Tableau のデータ モデリング機能は、マルチファクト関係を使用したマルチファクト分析をサポートします。マルチファクト関係データ モデルを作成する方法の詳細については、以下を参照してください。

マルチファクト関係モデル (複数の基底テーブルを持つデータ モデル) では、共有テーブルがモデル内に存在するとき、関連のないテーブルがモデル内に存在することも許されます。分析の間、共有テーブルのフィールドは、共通に持つ共有ディメンション (同じ場所や同じ日付に発生するなど) に基づいて、関連のないデータ テーブルを「つなぎ合わせ」ます。各テーブルの粒度、つまりネイティブの詳細レベルの保持を含め、関係のすべての利点が維持されます。

基底テーブルが 1 つしかないデータ モデルと同様に、Tableau は、Viz の構造に基づいて、バックグラウンドで使用する最適な結合タイプを決定します。ただし、マルチファクト関係モデルでは、結合オプションを拡張して外部結合とクロス結合を含むようになり、さまざまなレベルの関係を処理できます。詳細については、「マルチファクト関係データ モデルについて」(新しいウィンドウでリンクが開く)を参照してください。

: バージョン 2020.2 から 2024.1 では、ファクト テーブル (メジャーを含む) が単一のディメンション テーブルに関連付けられている場合にのみ、スター モデルとスノーフレーク モデルに追加できます。

たとえば、Customer 360 などの分析のように、複数のファクト テーブル テーブルまとめてから共有ディメンションを分析できます。これらのファクト テーブルは、ディメンション テーブルとは異なる詳細レベルにしたり、それぞれを異なる詳細レベルにすることができます。また、ディメンション テーブルと多対多のリレーションシップを持つことができます。このようなシナリオの場合、Tableau では集計の前に値がレプリケートされないようにします。

ファクト テーブルを関連付ける共有ディメンション テーブルがない場合は、カスタム SQL を使用するか、他のディメンション テーブルの結合またはユニオンを使用して、ディメンション テーブルを動的に作成できる場合があります。

ファクト テーブルが 2 つある場合は、共通ディメンション上で相互に直接関連付けることができます。このタイプの分析は、ファクト テーブルの 1 つに共通ディメンションのスーパーセットが含まれている場合に最適です。

基底テーブルが 1 つしかないデータ ソースではなく、複数の基底テーブルを使用してマルチファクト関係モデルを構築する必要があるシナリオはさまざまです。

  • 円環関係。円環関係は現在サポートしていません。循環のあるデータ ソースを構築しようとしている場合は、マルチファクト関係を使用し、ダウンストリーム テーブルを別の基底テーブルにします。
  • 適合ディメンション文脈的 OR 関係。同じ関係句のセット (日付と場所など) に基づいて関連付けられている一連のテーブルがある場合、それらのディメンションを抽出して共有テーブルにする必要があります。
    • そうすると便利であるのは、複数の関係句がすべて真 (論理的には AND) であることが、それらのレコードにテーブルを関連付けるために必要であるからです。
    • 代わりに、一度に真になる可能性があるのは 1 つであるレコード (文脈的 OR) を分析する場合は、共有ディメンション テーブルを使用してデータ モデルを設定することで、この柔軟性が実現されます。
  • 同等のブレンド。データ ソースをプライマリとセカンダリに区別せず、同等にブレンドしたい場合、ブレンドのデータ ソースと、共有テーブル内のリンク フィールドを結合するデータ モデルを構築します。

データ モデルにおけるリレーションシップの要件

  • テーブルを関連付ける際は、リレーションシップを定義するフィールドが同じデータ型である必要があります。[データ ソース] ページでデータ型を変更しても、この要件は変更されません。Tableau では、クエリの参照元データベースのデータ型が引き続き使用されます。
  • リレーションシップは地理的フィールドに基づいて定義することはできません。
  • データ モデルでは循環関係に対応していません。
  • パブリッシュされたデータ ソース間の関係を定義することはできません。

関連付けたテーブルの利点が限られる要因

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