関係を気軽に使ってみる
新しいデータ モデリング機能を使用すると、リレーションシップを中心に構築された柔軟なデータ ソースを作成できます。
リレーションシップでは、異なるテーブルの共通する列 (フィールド) を調べ、その情報を使用して各テーブルの情報を分析で集めることで、それらのテーブルのデータを組み合わせます。
リレーションシップは結合やユニオンとは異なり、複数のテーブルを 1 つのテーブルに平坦化することなくデータ ソースを形成します。それで、関連するデータ ソースでは、各フィールドの由来がどのテーブルであるかがわかります。つまり、各フィールドでは、そのコンテキスト、すなわち詳細レベルを保持しています。したがって、関連するデータ ソースでは、重複やデータの消失という問題が生じることなく、異なる粒度のテーブルを処理することができます。
関連するデータ ソースでは、結合は初めから設定されていません。すべてのデータをマージするのではなく (また、それぞれの Viz で何を必要としているかにかかわらずすべてのデータを操作する必要があるのではなく)、関連するデータのみが、必要に応じてシートごとに組み合わされます。ドラッグ アンド ドロップすると、Tableau で関連するフィールドとテーブルのリレーションシップが評価されます。これらのリレーションシップを使用し、正しい結合の種類、集計、Null の処理を含むクエリを作成します。
データの組み合わせ方法や、データ ソースのアーティファクトの補正方法を考えるのではなく、データの適合方法やどのような質問の回答を得たいかについて考えることができます。
リレーションシップは、従来のデータの結合方法 (結合、ユニオン、ブレンド) に取って代わるものではありません。むしろ、リレーションシップは複数のソースのデータをまとめる新しい柔軟な方法です。既存の方法も残り、それらは引き続き特定のシナリオで役立ちます。
注: リレーションシップ クエリのしくみについては、Tableau の次のブログ投稿を参照してください。
- 関係 (パート 1): Tableau に新しいデータ モデリングを導入する(新しいウィンドウでリンクが開く)
- 関係 (パート 2): ヒントとテクニック(新しいウィンドウでリンクが開く)
- 関係 (パート 3): 複数の関連するテーブルを横断して質問する(新しいウィンドウでリンクが開く)
また、「Tableau が関係を発明した理由(新しいウィンドウでリンクが開く)」など、Action Analytics(新しいウィンドウでリンクが開く) からの関係に関するビデオ ポッドキャストも参照してください。詳細については、ライブラリ(新しいウィンドウでリンクが開く)の [ビデオ ポッドキャスト] をクリックしてください。
リレーションシップを使用する
このトピックでは、関連するデータ ソースの構築とそれを使用した分析について取り上げます。手順に従って進めたい場合は、Bookshop データ セットをダウンロード(新しいウィンドウでリンクが開く)することができます。生データで最初から開始するには Bookshop.xlsx を選択し、関連するデータ ソースの構成済みの基本的な内容を使用して開始するには MinimalBookshop.tdsx を選択します。
注: リレーションシップは、Tableau 2020.2 以降でサポートされています。
ビデオ: 移行済みデータ
Tableau 2020.2 以降を使用して以前の Tableau バージョン (2020.1 以前) から既存のワークブックを開くと、[データ ソース] タブに [移行済みデータ] テーブルが表示される場合があります。
リレーションシップが使用可能になる前に作成済みワークブックを開くと (バージョン 2020.2 より前)、データ ソースの外観が異なる場合があります。結合されたテーブルやユニオン テーブルがある場合、"移行済みデータ" という名前の 1 つの論理テーブルとして表示されます。ダブルクリックすると参照元のテーブルが表示されます。それらのテーブルは今後もそこに残り、分析も予期したとおりに動作します。
"移行済みデータ" テーブルのみを使用している場合、[データ] ペインの動作は以前のバージョンの Tableau Desktop と似たようになります。
新しいテーブルを "移行済みデータ" テーブルにさらに直接関連付け、データ モデルを拡張することができます。
データ モデルにリレーションシップを追加すると、[データ] ペインが更新されて新しいレイアウトになり、各テーブル内にはディメンションとメジャーが保持され、"移行済みデータ" テーブルは単一のマージされたテーブルとして表示されます。
ビデオ: テーブルの関連付け
注: このビデオで示されている関係を編集するためのインターフェースは、現在のリリースとは少し異なりますが、同じ機能を備えています。
関連付けられたテーブルのデータ ソースを構築するには、データに接続し、テーブルをキャンバスにドラッグします。2 つ目のテーブルをドラッグします。可能な場合にはリレーションシップが自動的に形成されます。Tableau で関連フィールドを検出できない場合は、ユーザー自身が選択するよう求めるメッセージが表示されます。
表示されているキャンバスは、テーブルを互いに関連付けることができるデータ モデルの新しいレイヤーです。追加のテーブルをドラッグすると、それがデータ モデルに追加されます。"ヌードル" はどのテーブルが関連しているかを示しています。
リレーションシップは計算フィールドに基づきます。リレーションシップを定義する際は、演算子を使用してフィールドの比較方法を指定することもできます。
結合を追加する
結合を作成するには、テーブルをダブルクリックして結合キャンバス (物理レイヤーとも呼ばれます) を開きます。その後、テーブルをドラッグして結合を作成します。結合の作成エクスペリエンスは、以前のバージョンの Tableau と同じです。必要に応じて計算を含む結合句を設定し、結合タイプを構成できます。
結合キャンバスを閉じると、リレーションシップ キャンバス (論理レイヤーとも呼ばれます) 上のテーブルに、参照元の結合を示す結合アイコンが表示されます。結合によってテーブルがマージされ、単一の新しいテーブルが形成されるためです。関連付けられたテーブルは、引き続き個別のままです。
ユニオンを追加する
[ユニオンの新規作成] をドラッグし、ユニオンを追加します。ユニオンでは結合と同様、実際にデータをマージし、論理レイヤーにアイコンを表示します。ユニオン (または名前が不明瞭なすべてのテーブル) の名前は、より使いやすいものに常に変更することをお勧めします。
ビデオ: パフォーマンス オプション
注: このビデオで示されている関係を編集するためのインターフェースは、現在のリリースとは少し異なりますが、同じ機能を備えています。
どのリレーションシップにも、パフォーマンス オプションのほかに関連付けられたフィールドがあります。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 つのテーブル内での関連性があるため、[データ] ペインのそのテーブル内に留まります。
関連データを分析する
リレーションシップ間や結合間で分析がどのような外観になるかを比較してみましょう。上記で使ったデータ ソースを使わずに、質問 1 と質問 2 に付属のワークブックをダウンロードすることをお勧めします。データ ソース構成や質問 1 の手順に関する問題に気づく場合には、それらの問題がシナリオの都合上、意図的に含められていることに注意してください。
質問 1: 各書籍にはいくつの版がありますか?
重要: 質問 1 のビデオは、ベータ版のソフトウェアで録画されたものです。2020.2 のリリース バージョンでは、関連するデータ ソースにエラーを持ち込もうとしても正しく処理します。ビデオの通りに操作すると、ご利用のワークブックでは結果が異なり、リレーションシップの値は正しいものになります。製品を改良し、エラーは教育目的に留めるように努めますのでご理解をお願いします。
これは、両方のデータ ソースでいくらかの基本的な分析を行うことで設定します。それぞれで棒グラフを作成し、タイトルごとに版数を確認します。
関連 | 結合 |
関連するデータ ソースを使用する:
| 結合データ ソースを使用する:
|
[カウント] が結合データの正しい集計でないことはすぐにわかります。また、関連データも何かが正しくありません。データを表示し、何が起きているか、どのように修正するかを見てみましょう。ビデオを視聴し (またはトランスクリプトを読み)、方法を確認してください。
ビデオ: データ検証とデータ モデルの修正
結合
ここでは、結合データを確認しています。結合した Viz で、マークの参照元データを確認していきます。
この [データの表示] ダイアログには、[サマリー] と [参照元データ] の 2 つのタブがあります。
- 同じブックには大量の行がありますが、すべての結合が原因で重複している可能性があります。
重複を処理するために、ビューの [ISBN] フィールドの集計を [個別カウント] に変更します。この重複についてはほぼすべての分析シナリオで考慮し、適切な集計、フィルターリング、Viz の構造をどのように指定するかに対応する必要があります。
関連
関連データ ソースの構造を見て、結合の内容についても確認していきましょう。関連する Viz で、マークの参照元データを確認していきます。
ここでも [データの表示] ダイアログに 2 つのタブがありますが、今回は [参照元データ] ではなく [Edition (版)] タブです。Viz で使用しているテーブルにはどれも、独自のタブがあります。
- この書籍には行が 2 つずつあり、結合が重複の原因である可能性があること、また、このデータ ソースの "Book (書籍)" テーブルが実際には、"Info (情報)" や "Award (賞)" と結合された "Book (書籍)" テーブルであることはわかっています。
"Title (タイトル)" と "Award Name (賞の名前)" を使って Viz を作成し、下にスクロールして調べます。すると、Mallemaroking が 2 つの賞を受賞していました。これらのテーブルは結合するより、関連付ける方が良さそうです。
[データ ソース] タブに戻り、結合から "Awards (賞)" のテーブルを削除し、代わりに関連付けます。これで、このデータ ソースでは重複の問題について心配する必要はなくなります。
質問 2: シリーズに含まれる書籍の著者では、誰に最も多くの書籍ツアー イベントの経験がありますか?
ビデオ: さまざまな詳細レベルを操作する
どの著者を操作するかを見てみましょう。関連するデータ ソースを使用し、"Author Name (著者名)" と "Series Name (シリーズ名)" を [行] に移動します。
関連するデータ ソースでは、ディメンションのみを含むテーブル内の不一致データが減っているため、自分たちに関連するデータに焦点が当たっています。著者は 7 人で、そのうちの 2 人は 2 つのシリーズを書き下ろしたことがわかります。一致する値のみを表示しない場合は、[分析] メニュー > [テーブルのレイアウト] に移動し、[空の行を表示] にチェックを入れると、一致しない値を復元することができます (従来の動作と似ています)。
関連 | 結合 |
関連するデータ ソースを使用する:
| 結合データ ソースを使用する:
ここで、数字に少しずれがあるようです。 |
結合データでは、結合のために重複が生じ、一部の著者には複数のシリーズがあることもわかっています。このため集計を、たとえば MIN や MAX に変更することはできません。複数のシリーズの作品がある著者で情報が失われるためです。
本当に必要としているのは、著者ごとに視覚化された、シリーズあたりのイベント数です。これは、詳細レベル (LOD) 表現の典型的な事例です。以下により "Series Events (シリーズ イベント)" の計算を作成します。
{FIXED [Series Name] : MIN ([Book Tour Events])}
MIN は単一シリーズのイベントの重複を処理するためのものです。
この新しいフィールドを元のイベント フィールドではなく [列] に移動すると、正しい値が得られます。
関連データについては、それを実行する必要はありませんでした。リレーションシップは、ネイティブの詳細レベルや、"Author (著者)" テーブルを "Book (書籍)" テーブルや "Info (情報)" テーブル、"Series (シリーズ)" テーブルに関連付ける方法を理解したり、"Events (イベント)" メジャーを "Author Name (著者名)" に適切に再度結合して集計したりするための賢い方法で、どれも LOD 計算を記述する必要はありません。
それで、データの関連付けを敬遠しないでください。ご自分で確かめてください! Bookshop データをダウンロード(新しいウィンドウでリンクが開く)するか、ご自分のデータを使用することができます。フィルター処理、表計算の使用、さまざまなチャート タイプの構築、パフォーマンス オプションの構成、リレーションシップの作成をできるだけ試してみてください。
関連データを操作する際のヒント
- あるマークが何を示しているかを確認するため、頻繁に参照元データの表示してください。
- 結合が必要ない (また、必要になるかもしれない理由がある) 場合は、リレーションシップを使用すると柔軟性が高まります。
- 一致する値のみを表示しない場合は、[分析] メニュー > [テーブル レイアウト] > [空の行を表示] に移動すると、一致しない値を復元することができます。
関連リソース
次のレベルに行く準備ができたら、リレーションシップで計算を気軽に使ってみるに進んでください。
あるいはこのまま続けて、関係を使用して複雑な分析を行う方法を調べたいでしょうか? 高度なリレーションシップを使ってみるを参照してください。
製品管理チームが発信する関係の技術的基盤の詳細については、Tableau のブログのリレーションシップに関する連載を参照してください。
- 関係 (パート 1): Tableau に新しいデータ モデリングを導入する(新しいウィンドウでリンクが開く)
- 関係 (パート 2): ヒントとテクニック(新しいウィンドウでリンクが開く)
- 関係 (パート 3): 複数の関連するテーブルを横断して質問する(新しいウィンドウでリンクが開く)
また、「Tableau が関係を発明した理由(新しいウィンドウでリンクが開く)」など、Action Analytics(新しいウィンドウでリンクが開く) からの関係に関するビデオ ポッドキャストも参照してください。詳細については、ライブラリ(新しいウィンドウでリンクが開く)の [ビデオ ポッドキャスト] をクリックしてください。