データの結合について【Tableau DATA Saberへの道】
前回はかなりおふざけの内容でしたが、今回は初期につまづいたまま見て見ぬフリをしていたデータの結合について簡単にまとめてみました。
データ結合の種類
Tableauでデータを合わせてみる方法は大きく以下の3つです。
データ結合(JOIN)
データブレンド
クロスデータベース結合
それぞれの違いについて説明します。
データ結合(JOIN)
データ結合は、2つ以上のテーブルを共通のフィールド(キー)で結びつけ、1つの新しいテーブルを作成する方法です。
以下のような「売上テーブル」、「顧客情報テーブル」の2つのテーブルを持っているとします。これらを「顧客ID」で結合して、売上データと顧客情報を1つのテーブルにまとめます。
この場合は顧客IDという共通の項目を"キー項目"として、2つの値を1行単位で結合します。
すると、以下ような形になります。
JOINした後のテーブルをTableauでは大きなテーブルとして扱ってくれる機能になります。
データブレンド
データブレンドはデータを1行単位でくっつける結合とは異なり、集計してからくっつける方式です。異なるデータベースやテーブルからのデータを「ブレンド」して、あたかも同じデータソースのように表示できます。
例として、売上データと仕入データが別々のテーブルにあるとします。これらをブレンドして、商品ごとに「売上」と「仕入」を比較するレポートを作成します。
データブレンドでは、プライマリデータ(メインのデータソース)とセカンダリデータ(サブのデータソース)に分けてデータを扱います。例えば、売上テーブルをプライマリにして、仕入テーブルをセカンダリとして扱います。両方のデータを「品名」でリンクさせ、商品ごとの売上額と仕入額を統合して表示します。
すると、以下のような形になります。
プライマリデータ(売上テーブル)にある項目はすべて表示されますが、仕入れテーブルにレモンの値が無いためNULLに、セカンダリデータ(仕入テーブル)にしか値のないトマトはそもそも品名が表示されません。
データブレンドでは、プライマリデータが主に分析対象となり、セカンダリデータはそれに対して補足情報を提供するわけです。
クロスデータベース結合
クロスデータベース結合は、異なるデータベースのデータをTableau内で直接結合する機能です。例えば、Excelで管理している売上データと、SQLサーバー上の顧客データベースを結合して、1つのテーブルにまとめられます。データ同士のつなぎ方はJOINと似ていますが、異なるデータベース間で結合を行える点が特徴です。
異なるデータソースをまたぐため、パフォーマンスが落ちることがあります。特にデータ量が多い場合に、処理が遅くなることがあります。
最後に
データの結合方法を選ぶ際、重要なポイントの一つが「データの粒度(データがどれだけ細かい単位で収集・集計されているかを指します。)」です。Jたとえば、「製品リスト」と「売上」のように、マスタテーブルとファクトテーブルの2つを結合させたい場合は「異なる粒度のテーブル」ということになり、JOINで繋げるのが最適。「売上」と「仕入れ」のように、2つのファクトテーブルを結合させた場合は同等の粒度になるので、データブレンドを使用します。