Tableau データ モデル

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

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

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

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

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

 

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

データ モデルのレイヤー

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

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

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

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

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

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

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

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

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

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

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

新しいモデルの構築

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

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

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

複数テーブルのモデル

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


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

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

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

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

単一テーブルのモデル

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

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

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

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

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

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

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

単一テーブル

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

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

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

これらのモデルは、Tableau 2020.2 以降で使用できるデータ モデリング機能のリレーションシップで直接表現できます。

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

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

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

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

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

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

マルチファクト分析

Tableau のデータ モデリング機能では、マルチファクト分析の一部の形式に対応しています。前述のモデルが 1 つのディメンション テーブルにのみ関連する場合は、追加のファクト テーブル (メジャーを含む) を追加できます。たとえば、Customer 360 などの分析のように、複数のファクト テーブル テーブルまとめてから共有ディメンションを分析できます。これらのファクト テーブルは、ディメンション テーブルとは異なる詳細レベルにしたり、それぞれを異なる詳細レベルにすることができます。また、ディメンション テーブルと多対多のリレーションシップを持つことができます。このようなシナリオの場合、Tableau では集計の前に値がレプリケートされないようにします。

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

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

対応していないモデル

  • 複数の共有ディメンション テーブルに関連付けられた複数のファクト テーブル。ユースケースによっては、複数の共有ディメンション テーブルに複数のファクト テーブルが関連付けられているのはよくあることです。たとえば、2 つの共通ディメンション テーブル (日付と顧客) に 2 つのファクト テーブル (店舗販売とインターネット販売) を関連付けているとします。通常、このようなシナリオでは、データ モデルで循環リレーションシップを作成する必要があります。循環関係は現在サポートされていません。

    このタイプのモデルを近似するには、一部のテーブルを物理レイヤーにマージします。たとえば、店舗販売とインターネット販売を単一のテーブルにまとめて、そのテーブルを [日付] と [顧客] に関連付けることができます。あるいは、日付と顧客をクロス結合して、単一のディメンション テーブルを作成し、それを店舗販売とインターネット販売に関連付けることができます。

  • 共有ディメンション上で 3 つ以上のファクト テーブルを直接関連付ける。論理レイヤーでこのモデルを構築することは可能ですが、単一のテーブルのディメンションのみを使用しない限り、不要な結果が表示される場合があります。

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

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

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

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