Tableauでのデータ結合と集計方法、リレーションシップとの違いとは?
#リレーションシップ #Tableau #データ結合 #集計方法
目次
データの民主化やデータドリブンな活動が大事だと叫ばれて久しい今日、BIツール、なかでもTableauはその推進をしてくれる強力な製品です。
この記事では、Tableauを使って複数のデータを使ったデータ分析を行うのにあたって、避けては通れない「結合」と「リレーションシップ」と「ブレンド」について解説していきます。
データの結合とは
データ分析の活動を進めると、異なったいくつかのデータを組み合わせた分析をしなくてはいけないケースがあります。1つだけのデータの分析であれば、Excelなどでも対応することができますが、複数のデータが必要になる場合、「分析を行うための前準備」が必要となり、難易度が上がります。
データ分析を行うためには、まずデータを色々な場所 (他システムやDBやCSVファイルなど) からデータを引っ張ってきて、それらを組み合わせる必要があります。
あるデータとあるデータとを結合させ1つのデータにすることを「データの結合」と呼び、複数のデータを使ってデータソースを作成する場合に最も利用される方法です。
データを結合する方法
データ結合を行うためには、まずTableauでいくつかのデータソースへ接続を行います。Tableauはオンプレ、クラウド、ローカルファイルなどあらゆるデータソースへの接続ができるようになっています。
データソースへアクセス出来たら、Tableauを使ってデータを結合する方法はとても簡単です。以下のサンプルでは手元にあるエクセルファイル(3シート構成)のTEST Aシートを展開したものですが、データ結合を行う場合は「TESTA」の「開く」を選択し、「データがもっと必要ですか?」と質問されているスペースにデータセットをドラック&ドロップするだけです。
データ結合タイプと結果
データ結合を実行すると、図のようなベン図が表示されます。また、キー項目や演算子はTableauが自動で選択してくれますが、ご自身で変更することも出来ます。
どのようにデータを接合するのか選択する必要があるのでデータ分析の目的に合わせて、適切な結合方法を選ぶとよいでしょう。
どのようにデータを接合するのか選択する必要があるのでデータ分析の目的に合わせて、適切な結合方法を選ぶとよいでしょう。
種類 | 結合後のテーブル(処理結果) |
内部 |
結合対象のテーブルにおいて、キーが合致する値を含んだテーブルになります。 マッチングしなかったデータは破棄されます。 いわゆる内部結合(ΙNNER JOIN)です。 |
左 |
左側にあるテーブルを基準にして、右のテーブルのキーが一致する値を含んだテーブルになります。 対応する項目が右テーブルにない場合、NULLと表示されます。 いわゆる左外部結合(LEFT OUTER JOIN)です。 |
右 |
右側にあるテーブルを基準にして、左のテーブルのキーが一致する値を含んだテーブルになります。 対応する項目が左テーブルにない場合、NULLと表示されます。 いわゆる右外部結合(RIGHT OUTER JOIN)です。 |
完全外部 |
両方のテーブルの全データを含むテーブルになります。 マッチングしないデータがある場合、その項目はNULLと表示されます。 いわゆる完全外部結合(FULL OUTER JOIN)です。 |
結合を利用するケース
結合は、結合をするテーブル同士が同じキー、同じデータ粒度であるケースに利用されます。
例えば、データ粒度が異なる場合、データ粒度を合わせる前処理を実施しなければ、データが何倍にも増えてしまうなど、想定していないデータになってしまうことがあるので、注意が必要です。
DB間の結合
先ほど一つのエクセルファイルの複数シートを結合しましたが、複数のエクセルファイルや外部DBとも結合させることも可能です。
その場合は、上記ピクチャーの左上、接続「追加」をクリックし、データソースを選択し、あとは結合と同じ操作をするだけです。
これによって異なるデータソースをあたかも一つのテーブルのように操作出来るようになります。ただし、先ほどの結合と比べるとパフォーマンスや保守性が劣るため、多くのデータを扱う場合には注意しましょう。
集計方法
データ結合を行うことで、データ分析の準備が完了しました。
左ペインの青文字で書かれている部分は「ディメンション」と呼び、名前・日付・理的データなどの数値項目以外のカラムがここに分類されています。緑文字で書かれている部分は「メジャー」と呼び、数値項目のカラムがここに分類されています。それぞれ集計の方法が異なりますので、一つずつ説明していきます。
メジャー集計
メジャー(数値)項目をシートへ展開するとデフォルトの設定では集計(SUM)が適用されるようになっています。
※必ず集計になるわけではなく、他項目との兼ね合いで別の関数が出来ようされる可能性もあります。
もちろんデフォルト設定は変更可能ですし、以下のピクチャーのように項目単位で集計関数を変更することも可能です。
ディメンション集計
ディメンション集計にもメジャー集計と同じように集計関数(最小値、最大値、カウント、カウント (個別))が用意されています。それぞれに対応するSQLが内部的に発行され、その結果が表示されます。
例えば、2020/1/1~2022/12/31の日付項目で最大値を選択すれば2022/12/31のデータが、最小値を選択すれば2020/1/1のデータが表示されるようになります。
利用可能な集計関数
以下の集計関数が用意されています。※集計関数以外の関数(IFなど)も利用可能です。
関数 | 説明 | 想定利用シーン |
属性 | 選択した項目を「属性」に変換する関数です。引数項目の値がユニークであればその値を返し、複数あった場合は*(アスタリスク文字)を返します。NULLは無視されます。 | 検査対象項目に重複がないかをチェックするとき |
合計 | 選択した項目の合計値を返す関数です。 | 総合計金額の出力など |
平均 | 選択した項目のNULLを無視して、平均値を返す関数です。 | 1顧客当たりの売上金額など |
カウント | 選択した項目に含まれるデータ数を返す関数です。NULLは無視されます。 | データ件数をチェックするとき |
カウント(個別) | カウント関数とは異なり、同じ値がいくつ重複していても“1”と数えた値を返す関数です。 | 重複なくデータ件数をチェックするとき |
標準偏差 | 指定したすべての値の標準偏差を返す関数です。 | データがどのように分布しているかチェックしたいとき |
分散 | 指定したすべての値の分散を返す関数です。NULLは無視されます。 | データのばらつき具合をチェックしたいとき |
※分散について
分散関数を使用することで、データのばらつき具合を確認することができ、それによって特異値を発見することが出来ます。この値は最終的な分析結果に影響を与えることがあるので、このようなチェックは忘れずに実施しましょう。
リレーションシップとの違い
リレーションシップはバージョン2020.2で追加された新しい機能です。
結合とリレーションシップには内部処理の違いがあります。チェックしていきましょう!
リレーションシップとは
複数テーブルを組み合わせる方法で、結合とは異なり結合タイプを選択する必要がなく、ベン図が表示されません。
先ほども記載していますが、キー選択を自動で行ってくれますので、より直感的な操作を可能にし、データ分析の負担を軽減する機能といえるでしょう。
また、ピクチャーでは1-1の関係ですが、n-nの関係にも適用することが可能です。この時、データは完全外部結合が使用されます。
リレーションシップを利用するケース
リレーションシップは粒度が違うデータ同士に関係性を持たせたい場合に利用できます。
フィールドが一致している範囲で関係性を持たせながら、データを繋げることはせず、両方のテーブルをデータソース内で共存させることができます。
リレーションシップの作成する方法
結合と似ていますが、結合を作成する際は「TEST A」の「開く」を選択する操作を実施しました。リレーションシップの場合は左ペインに表示されたシートをドラック&ドロップするだけです。
この機能の要件としては関連付け用の同じデータ型の項目があることであることが挙げられるので、適用なデータセットを放り込んでもリレーションシップは行われないので注意しましょう。
リレーションシップ不可の場合はこのように表示されます。
結合とリレーションシップの特性と違い
実は、リレーションシップというのは2020年2月の新バージョンでの新しい機能です。
結合とリレーションシップの1番の相違点は、複数テーブルが1つのテーブルになるタイミングと、データ集計のタイミングです。
売上テーブルと予算テーブルがあり、ある日付の売上が予算を達成しているか確認することを仮定しましょう。
リレーションシップは以下の流れで処理されます。
1. ある日付の売上を合計(集計)する。
2. 日付をキーにし、テーブル(表)を1つのテーブルにする。
3. 売上÷予算を計算する。
このように、リレーションシップは集計した後に2つのテーブルが1つになります。
結合の場合は以下の流れで処理されます。
1. 日付をキーにし、2つのテーブルを1つのテーブルにする。
2. 売上は合計(集計)、予算は平均(集計)する。
処理自体は複数テーブルを1つのテーブルにする、ということで同じような機能ではあるものの、処理の流れが異なります。
データの粒度が異なる場合は特に注意が必要です。
結合は、行レベルでの関連付け。
リレーションは、範囲レベルでの関連付け。
と整理すると理解しやすくなります。
データブレンドとは
Tableauにはデータブレンドという機能も存在します。前述した結合は、データ同士を予め結合させて一つのデータソースを作成しておくのに対し、データブレンドは異なるデータのままTableauに取り込み、レポート上で結合させて利用します。
結合と大きく違う点は、結合は集計前の行同士の結合なのに対し、データブレンドはそれぞれのデータの中で集計した後、集計結果のデータを結合しているという点にあります。
使い方は、データを「プライマリ」と「セカンダリ」に分け、両方のデータを繋ぐキーを指定する形で結合を実施します。内部的にはプライマリのデータの集計結果を左側において、セカンダリデータの集計結果に対し左外部結合しています。
データブレンドの使い道としては、ワークシート毎に関連付けのキーを柔軟に変化させたい場合に利用することが可能です。
【まとめ】
いかがでしたでしょうか?
この記事では結合とリレーションシップの違いを解説させて頂きました。
Tableau公式としては後者推しのようですので、こちらを積極的に使い、データの民主化を実現できる様に頑張りましょう!
<Tableau>
弊社ではSalesforceをはじめとするさまざまな無料オンラインセミナーを実施しています!
>>セミナー一覧はこちら
また、弊社ではTableauの導入支援のサポートも行っています。こちらもぜひお気軽にお問い合わせください。
>>Salesforceについての詳細はこちら