新しいデータ モデリング機能を使用すると、リレーションシップを中心に構築された柔軟なデータ ソースを作成できます。
リレーションシップでは、異なるテーブルの共通する列 (フィールド) を調べ、その情報を使用して各テーブルの情報を分析で集めることで、それらのテーブルのデータを組み合わせます。
リレーションシップは結合やユニオンとは異なり、複数のテーブルを 1 つのテーブルに平坦化することなくデータ ソースを形成します。それで、関連するデータ ソースでは、各フィールドの由来がどのテーブルであるかがわかります。つまり、各フィールドでは、そのコンテキスト、すなわち詳細レベルを保持しています。したがって、関連するデータ ソースでは、重複やデータの消失という問題が生じることなく、異なる粒度のテーブルを処理することができます。
関連するデータ ソースでは、結合は初めから設定されていません。すべてのデータをマージするのではなく (また、それぞれの Viz で何を必要としているかにかかわらずすべてのデータを操作する必要があるのではなく)、関連するデータのみが、必要に応じてシートごとに組み合わされます。ドラッグ アンド ドロップすると、Tableau で関連するフィールドとテーブルのリレーションシップが評価されます。これらのリレーションシップを使用し、正しい結合の種類、集計、Null の処理を含むクエリを作成します。
データの組み合わせ方法や、データ ソースのアーティファクトの補正方法を考えるのではなく、データの適合方法やどのような質問の回答を得たいかについて考えることができます。
リレーションシップは、従来のデータの結合方法 (結合、ユニオン、ブレンド) に取って代わるものではありません。むしろ、リレーションシップは複数のソースのデータをまとめる新しい柔軟な方法です。既存の方法も残り、それらは引き続き特定のシナリオで役立ちます。
このトピックでは、関連するデータ ソースの構築とそれを使用した分析について取り上げます。手順に従って進めたい場合は、Bookshop データ セットをダウンロード(新しいウィンドウでリンクが開く)することができます。生データで最初から開始するには Bookshop.xlsx を選択し、関連するデータ ソースの構成済みの基本的な内容を使用して開始するには MinimalBookshop.tdsx を選択します。
注: リレーションシップは、Tableau 2020.2 以降でサポートされています。
Tableau 2020.2 以降を使用して以前の Tableau バージョン (2020.1 以前) から既存のワークブックを開くと、[データ ソース] タブに [移行済みデータ] テーブルが表示される場合があります。
このトピックには複数のビデオが埋め込まれています。なお、各ビデオ下部の展開可能セクションには、トランスクリプトをご用意しています。
移行済みデータのビデオ トランスクリプト
リレーションシップが使用可能になる前に作成済みワークブックを開くと (バージョン 2020.2 より前)、データ ソースの外観が異なる場合があります。結合されたテーブルやユニオン テーブルがある場合、"移行済みデータ" という名前の 1 つの論理テーブルとして表示されます。ダブルクリックすると参照元のテーブルが表示されます。それらのテーブルは今後もそこに残り、分析も予期したとおりに動作します。
"移行済みデータ" テーブルのみを使用している場合、[データ] ペインの動作は以前のバージョンの Tableau Desktop と似たようになります。
新しいテーブルを "移行済みデータ" テーブルにさらに直接関連付け、データ モデルを拡張することができます。
データ モデルにリレーションシップを追加すると、[データ] ペインが更新されて新しいレイアウトになり、各テーブル内にはディメンションとメジャーが保持され、"移行済みデータ" テーブルは単一のマージされたテーブルとして表示されます。
注: このビデオで示されている関係を編集するためのインターフェースは、現在のリリースとは少し異なりますが、同じ機能を備えています。
パフォーマンス オプションのビデオ トランスクリプト
どのリレーションシップにも、パフォーマンス オプションのほかに関連付けられたフィールドがあります。Tableau では、これらのオプションに対して安全な既定値が自動的に選択されます。ただし、データの特性を把握している場合は、これらのオプションを変更することで、分析中に自動結合を構成する最適な方法について詳しい情報を得ることができます。基数オプションと参照整合性オプションを設定すると、クエリを最適化する方法について詳しい情報が得られます。
カーディナリティ
基数は、リンク フィールド レコードが一意であるかどうかを示します。複数の本で著者が同一であり、各著者が著者のテーブルで一度だけ記載されている場合、これら 2 つのテーブルの間で AuthID の基数は [Many (多)]、"Author (著者)" の基数は [One (1 つ)] になります。この設定は、Tableau による集計の処理方法に結合前と結合後とで影響があります。
参照整合性
参照整合性は、あるテーブルのレコードに、別のテーブルでのリレーションシップがあることを保証するかどうかを示します。すべての書籍に著者がいる場合、"Book (書籍)" には "Author (著者)" に対する参照整合性があります。必ずしもすべての著者に対して書籍があるわけではない場合、"Author (著者)" には "Book (書籍)" に対する参照整合性はありません。この設定は、Tableau による結合タイプの選択方法と、一致しないレコードの処理方法に影響を与えます。
詳細については、カーディナリティと参照整合性を参照してください。
ここから少し、このデータ ソースを使用して分析を行っていき、データについてお話しします。
データ セットは (架空の) 書籍に関するもので、書籍と版の区別を考慮することが重要です。書籍とは、それ自体がタイトル、著者、ジャンルなどの属性を持つ概念的な作品のことです。また、書籍には版もあり、ISBN で識別される価格や形式 (ハードカバーやペーパーバック) などの属性があります。書籍の版には出版社とページ数が含まれますが、書籍には受賞歴がある場合やシリーズに含まれる場合があります。
MinimalBookshop.tdsx をダウンロードして順に進めていくか、冒険心を持って Bookshop.xlsx から自分でモデルを構築することができます。テーブルを組み合わせると、ID フィールドの多くを非表示にすることができます。

注: このビデオで示されている関係を編集するためのインターフェースは、現在のリリースとは少し異なりますが、同じ機能を備えています。
複数のテーブルを操作するのビデオ トランスクリプト
データ ソース ページ
[シート] タブに移動する前に、下のデータ グリッド ビューに、一度に 1 つのテーブルのフィールドのみが表示されることに注目してください。別のテーブルをクリックすると、そのテーブルに含まれるデータが表示されます。関連データは分析で使用されるまでまとめられることはないため、全体のビューはありません。現時点では、データはテーブルごとの状態なので、テーブルごとに表示されます。
参照元の結合やユニオンを含むテーブルをクリックすると、そのマージされたデータが、関係する可能性がある Null と一緒に表示されます。
データ ペイン
シートをクリックすると、[データ] ペインの外観が以前のバージョンの Tableau とは異なることにお気づきになるかもしれません。ディメンションとメジャーを主に組織していたのが、今度はテーブルに焦点を当てるようになりました。テーブルごとにディメンションとメジャーの独自の内容があり、この行で示されます。必要な場合は、代わりにフォルダーごとにグループ化することもできます。
レコード数とカウント
また、[レコード数] フィールドもありません。レコード数の概念が変更されたためです。データ ソースのレコード数は 1 つもありません。各テーブルに [カウント] フィールドがあり、このフィールドをそのテーブルのローカル レコード数とみなすことができます。
複数のテーブルのレコード数を同時に把握するには、メジャー ネームとメジャー バリューを使用するか、カウント フィールドを複数選択して [表示形式] を使用し、Viz を作成します。
基本的な計算のビデオ トランスクリプト
このデータ セットを少し使いやすくするために、いくつかの計算を行うことができます。最初に、名と姓を組み合わせ、著者名全体にする計算を作成できます。名、スペース、姓だけの "Author Name (著者名)" という計算を作成します。この計算ではそのテーブルのフィールドのみを使用するため、計算は "Author (著者)" のテーブルに留まります。
[First Name] + " " + [Last Name]
販売を行う場合、販売金額は、価格 (出版社により固定され、版や ISBN に固有) と販売時の割引が組み合わされたものになります。それで、"Sales Amount (販売額)" の計算は、価格に 1 を乗じた値から割引を差し引いた値になります。ZN (ゼロ Null) 関数を使用し、割引なしの売上を処理しているため、Null にはなりません。この計算は、複数のテーブルのフィールドを使用するため、[データ] ペインの下部にある共有領域に表示されます。集計計算は、[データ] ペインの下部にも表示されます。
[Price] * (1-ZN([Discount]))
セットとグループのビデオ トランスクリプト
書籍がシリーズに含まれるかどうかを識別するため、書籍のセットを作成します。"Book (書籍)" テーブルで "Title (タイトル)" を右クリックし、[作成] > [セット] の順に選択します。ここでは、これに "In a series (シリーズの一部)" と名前を付けます。[条件] タブで、[By field (フィールドごと)] を選択し、"Series Name (シリーズ名)"、[カウント]、>= 1 とします。
"Edition (版)" テーブルの [Format (形式)] フィールドにはとても詳しい内容があり、大量市場や大型ペーパーバックの指定などもあります。このような詳しい内容が役立つ場合もありますが、ハードカバーとペーパーバックの間で一般化が必要になることがあります。[データ] ペインで [Format (形式)] フィールドを右クリックし、[作成] > [グループ] を選択します。ここでは、これに "Cover (カバー)" と名前を付けます。Control キーを押しながら、ハードカバー以外をすべて選択し、[グループ] をクリックします。グループの名前が自動的に強調表示され、ここでは名前を "Paperback (ペーパーバック)" とします。
"Author Name (著者名)" の計算と同様に、これらの作成した項目には 1 つのテーブル内での関連性があるため、[データ] ペインのそのテーブル内に留まります。
リレーションシップ間や結合間で分析がどのような外観になるかを比較してみましょう。上記で使った自分自身のデータ ソースを使わずに、比較ワークブックをダウンロードすることをお勧めします。
質問: シリーズ本を出している著者では、最も多くのブック ツアー イベントを開催しているのは誰ですか?
ビデオのトランスクリプト
どの著者を操作するかを見てみましょう。関連するデータ ソースを使用し、"Author Name (著者名)" と "Series Name (シリーズ名)" を [行] に移動します。
関連するデータ ソースでは、ディメンションのみを含むテーブル内の不一致データが減っているため、自分たちに関連するデータに焦点が当たっています。著者は 7 人で、そのうちの 2 人は 2 つのシリーズを書き下ろしたことがわかります。一致する値のみを表示しない場合は、[分析] メニュー > [テーブルのレイアウト] に移動し、[空の行を表示] にチェックを入れると、一致しない値を復元することができます (従来の動作と似ています)。
関連 | 結合 |
関連するデータ ソースを使用する: - "Book (書籍)" のテーブルから "In a series (シリーズの一部)" のセットを [フィルター] シェルフに移動します。既定では、セット内のメンバーのみにフィルター処理が適用されます。
- "Author Name (著者名)" を [行] に移動します。
- "Book Tour Events (書籍ツアー イベント)" を [列] に移動します。
| 結合データ ソースを使用する: - "In a series (シリーズの一部)" のセットを [フィルター] シェルフに移動します。
- "Author Name (著者名)" を [行] に移動します。
- "Book Tour Events (書籍ツアー イベント)" を [列] に移動します。
ここで、数字に少しずれがあるようです。 |
結合データでは、結合のために重複が生じ、一部の著者には複数のシリーズがあることもわかっています。このため集計を、たとえば MIN や MAX に変更することはできません。複数のシリーズの作品がある著者で情報が失われるためです。
本当に必要としているのは、著者ごとに視覚化された、シリーズあたりのイベント数です。これは、詳細レベル (LOD) 表現の典型的な事例です。以下により "Series Events (シリーズ イベント)" の計算を作成します。
{FIXED [Series Name] : MIN ([Book Tour Events])}
MIN は単一シリーズのイベントの重複を処理するためのものです。
この新しいフィールドを元のイベント フィールドではなく [列] に移動すると、正しい値が得られます。
関連データについては、それを実行する必要はありませんでした。リレーションシップは、ネイティブの詳細レベルや、"Author (著者)" テーブルを "Book (書籍)" テーブルや "Info (情報)" テーブル、"Series (シリーズ)" テーブルに関連付ける方法を理解したり、"Events (イベント)" メジャーを "Author Name (著者名)" に適切に再度結合して集計したりするための賢い方法で、どれも LOD 計算を記述する必要はありません。
それで、データの関連付けを敬遠しないでください。ご自分で確かめてください! Bookshop データをダウンロード(新しいウィンドウでリンクが開く)するか、ご自分のデータを使用することができます。フィルター処理、表計算の使用、さまざまなチャート タイプの構築、パフォーマンス オプションの構成、リレーションシップの作成をできるだけ試してみてください。
- あるマークが何を示しているかを確認するため、頻繁に参照元データの表示してください。
- 結合が必要ない (また、必要になるかもしれないがある) 場合は、リレーションシップを使用すると柔軟性が高まります。
- 一致する値のみを表示しない場合は、[分析] メニュー > [テーブル レイアウト] > [空の行を表示] に移動すると、一致しない値を復元することができます。
次のレベルに行く準備ができたら、リレーションシップで計算を気軽に使ってみるに進んでください。
あるいはこのまま続けて、関係を使用して複雑な分析を行う方法を調べたいでしょうか? 高度なリレーションシップを使ってみるを参照してください。
製品管理チームが発信する関係の技術的基盤の詳細については、Tableau のブログのリレーションシップに関する連載を参照してください。
また、「Tableau が関係を発明した理由(新しいウィンドウでリンクが開く)」など、Action Analytics(新しいウィンドウでリンクが開く) からの関係に関するビデオ ポッドキャストも参照してください。詳細については、ライブラリ(新しいウィンドウでリンクが開く)の [ビデオ ポッドキャスト] をクリックしてください。