Tableauの複数データの取扱(ユニオン、結合、データブレンド)について説明します
はじめに
データ分析を行う際、「複数のデータソースを利用する企業が9割」だと言われています。
出展: HBR, Data Blending:A Powerful Method for Faster,Easier Decisions
いかにしてこの複数のデータソースの取扱を簡単にするか、というのはデータ分析の一つの大きなテーマと言っても差し支えありません。
表計算ソフトですと、マクロを使って効率化することは可能ですが、たいていの場合はがんばってコピー&ペーストになりがちかと思います。
例えば毎月ファイルが異なる場合に1年間分を一つのファイルにくっつけるとなると、11回コピペを行うことになりますが、作業の途中に何か別の割り込みが発生すると、どこまでやったかわからなくなってまた最初からやり直し、なんて羽目になったりします。
また、ある項目を更新するために、ひたすらVlookup関数と格闘、ということもよくある光景です。そして、途中で割り込みが入ったり眠い時に作業すると、、、
ミス発見!やり直し!なんて羽目に。
しかし、もうそんな思いはしなくてよくなります。そう「Tableau」ならね。
Tableauでの複数ファイルの取り扱いの種類について
そのようなわけで、今回はTableauでの複数ファイルの取扱について説明したいと思います。
Tableauでの複数ファイルの読み込み方法として、以下の方法が用意されています。
- ユニオン
- 結合
- データブレンド
- 無関係のテーブルを複数読み込み
なお、結合については、データソースが異なる場合は特に「クロスデータベース結合」と呼び、区別しています。理由は後ほど説明します。
1のユニオンは同じフォーマットのファイルを一気に複数読み込む際に利用します。イメージとしては「縦に連結」するイメージです。
2の結合と3のデータブレンドは、異なるテーブルを読み込み、組み合わせて使う場合に利用する機能です。こちらは「横に連結」するイメージです。何かしら組み合わせるためのキーとなる項目が必要となります(下の例だと「No」でテーブル同士を紐づけ)。
なお、データブレンドと同じ方法で読み込んだ後、リレーションシップを使わずにビューを作成し、複数のデータソースで個別に作ったビューを一つのダッシュボードに表示することもできます。これを便宜的に4とします。
1.ユニオン
まず、「ユニオン(Union)」ですが、例えば売上ファイルが月ごとに別れていたとします。
毎月の売上ファイルなどはたいてい同じフォーマット(同じ項目を持つファイル)で作成されていますので、同じような形式のファイルが複数あるということになります。
このような際、例えば年度ごとにまとめて集計をかけて分析したい、ということになりますと、月ごとのファイルを一度に読み込んで利用したい、ということになると思います。
このような際に利用するのが「ユニオン」の機能となります。
簡単な表を用いて図示しますと以下の通りで、同じフォーマット(同じ項目を持つファイル)のファイルを縦に連結する形となります。
ユニオンは、以下の場合に利用が可能です。
- 同じフォルダ内にあり、同じ項目名を持つCSVファイル
- Excelファイル内の同じ項目名を持つシート
- 同じフォルダ内にあり、同じ項目名を持つExcelファイルのシート(ワイルドカードユニオンを利用の場合)
- 同じデータベース内の同じスキーマ(項目、データ型)を持つテーブル
※ワイルドカードユニオンを利用すれば、親フォルダや子フォルダまでユニオン対象にできます。
なお、ユニオンの操作方法については、以下の記事にて詳細に記載していますのでお読みください。
2.結合
「結合」は、Microsoft ExcelのVlookup関数のイメージが近いです。もしくは、SQLなどご存知の方であれば「Join」という言葉を聞いたことのある方がいらっしゃるかと思いますが、それをご存知であれば「JOIN」に相当するものになります。
操作としては「キー列に基づいて複数のテーブルを結合する」というものですが、言い換えますと「ある特定の項目の値が一致するレコード同士の項目を結合する」イメージとなります。
さらに簡単に言い換えますと、「複数のテーブルを横に連結する」というものになります。イメージとしては以下図の通りとなります。ここでは「No」という項目の値で一致させています。Noという項目で一致しないレコードがあれば、そこは歯抜けになるイメージです。
また、結合の方法として4つ存在します。
- 内部結合(Inner Join)
- 左結合(Left Join)
- 右結合(Right Join)
- 外部結合(Outer Join)
それでは、サンプルとして以下の2つのテーブルを各方式で結合したときの結果をご紹介します。
結合の種類 | ベン図 | 詳細 | 結果サンプル |
---|---|---|---|
内部結合 | キー列が一致したレコードのみ | ||
左結合 | 左テーブルすべてのデータとキーが一致した右テーブルの項目のみ | ||
右結合 | 右テーブルすべてのデータとキーが一致した左テーブルの項目のみ | ||
外部結合 | すべてのデータ |
なお、異なる項目を持つテーブルを組み合わせて使う際は、次の項目で説明する「データブレンド」でも可能です。時と場合によって使い分ける形となりますが、結合したいテーブルのデータの粒度が異なる時やデータベースが異なる際は「データブレンド」が無難と言われています。
※「データブレンド」が良いか、「クロスデータベース」が良いか、は意見の分かれるところのようです
クロスデータベース結合
データベースが異なる場合(CSVファイルはフォルダが別のフォルダのファイル、Excelファイルは異なるExcelファイルのシート)、通常の結合とは区別し、「クロスデータベース結合」と呼んでいます。
これは、通常の結合と比べパフォーマンス的に不利であり、大量のデータなどを結合する際には気をつけなければならないために別物として扱われています。
3.データブレンド
※「データブレンド」「データブレンディング」と同じ意味で用いられていますが、特に使い分けは無いようです
「データブレンド」もこれまで説明した「結合」も、「キー列に基づいて複数のテーブルを結合する」のは同じですが、どのタイミングで結合するか、というところが異なります。
方式 | 説明 |
---|---|
データブレンド | 集計してから結合する |
結合 | 集計する前に行レベルで結合する |
基本的には、行レベルで結合する処理の方が重い処理と考えて差し支えないかと思います。
ただ、結合の方が、1枚のテーブルとして扱えるため、直感的にはわかりやすく扱いやすいと思います。
データブレンドをする際は、プライマリデータソースとそれに紐づくセカンダリデータソースを決める必要があり、さらにリレーションシップを組む必要があります(キー列の決定)。この時、プライマリデータソースに対してセカンダリデータソースは左結合となります。
データブレンドのサンプルとして以下の記事を参考にしていただければと思います。
4.無関係のテーブルを複数読み込み
全く無関係のデータを一つのワークブックに読み込み、データソースを切り替えながら別々にビューを作成することも可能です。データの読み込み方はデータブレンドと同様の方法になりますが、その際にリレーションシップを組まなければ良いだけです。イメージは以下のとおりです。
まとめ
Tableauの複数データの取扱方法について簡単に説明しました。
- 同じフォーマットのファイルを縦に結合 → ユニオン
- キー列を元に複数のテーブルを結合する → データブレンド もしくは 結合
- 無関係のファイルを一つのワークブックに読み込みも可能です
また、Tableau Prepを使うのであれば、複数データソースから一つのテーブルにしてしまってTableau Desktopで可視化、というのが一般的な流れになるかと思います。ただ、わざわざTableau Prepを使うまでもなく今回紹介したようなことができますので、お試しください。
※Tableau 2018.3時点の情報です