Tableau:『データブレンド』機能を具体的なデータで理解する
今回はTableau特有の結合機能「データブレンド」についてご紹介します。
ブレンド機能を理解するためには本題に入る前に、まず結合の懸念点から考える必要があります。
粒度の違うデータの結合は注意が必要
具体的なデータで見ていきます。以下のようなデータがあったとしましょう。
(※数値はダミーです)
実数値テーブル
CD名 | 月 | 売上 |
---|---|---|
夜明けまで強がらなくていい | 1月 | 120万 |
夜明けまで強がらなくていい | 2月 | 110万 |
黒い羊 | 1月 | 100万 |
黒い羊 | 2月 | 90万 |
こんなに好きになっちゃっていいの? | 1月 | 80万 |
こんなに好きになっちゃっていいの? | 2月 | 70万 |
目標値テーブル
グループ名 | CD名 | 売上目標 |
---|---|---|
乃木坂46 | 夜明けまで強がらなくてもいい | 200万 |
欅坂46 | 黒い羊 | 150万 |
日向坂46 | こんなに好きになっちゃっていいの? | 100万 |
実績値テーブルの粒度はグループ、目標値テーブルの粒度はグループかつ日付です。
このような粒度の違うデータを紐づける時は注意が必要です。
シンプルに結合してみます。結合KEYは「CD名」ですので、結合後のテーブルは下記のようになります。
グループ名 | CD名 | 月 | 売上 | 売上目標 |
---|---|---|---|---|
乃木坂46 | 夜明けまで強がらなくていい | 1月 | 120万 | 200万 |
乃木坂46 | 夜明けまで強がらなくていい | 2月 | 110万 | 200万 |
欅坂46 | 黒い羊 | 1月 | 80万 | 150万 |
欅坂46 | 黒い羊 | 2月 | 80万 | 150万 |
日向坂46 | こんなに好きになっちゃっていいの? | 1月 | 80万 | 100万 |
日向坂46 | こんなに好きになっちゃっていいの? | 2月 | 70万 | 100万 |
ここで乃木坂46の売上と売上目標を比較してみると・・・・
230万(売上) vs 400万(売上目標)
集計するとこんな感じになりますがどうも違和感がありますね。数値がかなり乖離しています。
理由は単純で、売上目標のデータ1行に対して、売上のデータが2行結合されていて、データが重複してしまっているからです。
集計関数で解決する
Tableauで出来る解決策の一つとして、集計を駆使することが挙げられます。Tableauでは集計方式を簡単に操作できるので以下の様に、一瞬で調整は可能です。
しかし一つ懸念として「集計方式の調整し忘れ」があります。項目数が増えて複雑な時や、データを結合した人とその後の作業をする人が違った際、集計ミスが起こる可能性があります。
「AVGなのにSUMしてた」などの集計ミスです。
粒度の違うデータを結合するときは注意が必要です。
粒度の違うデータ統合に有効な「ブレンド」機能
ここで出番なのがTableauのブレンド機能です。
データブレンドとは一言で言うと、「複数のデータソースを集計してから結合する」です。
ブレンド機能の仕組みは以下の通りです。
テーブルを合体させてから集計する「データ結合」に対し、
「ブレンド」はそれぞれ集計してから結合します。
順番が逆ですね。
ですので、ブレンドをすると以下のようになります。
無事クリーンなテーブルの完成です。
Tableau上での操作
ブレンドをTableau上で行うのは簡単です。
複数のデータソースを別のデータソースとして読み込んだら、「データ」タブから「リレーションシップの編集」を選択します。
↓のような画面が出るので、ブレンドしたいデータソースを2種類選んで、KEYにしたいカラムを選択したら完了です。
カラム名が同じものは自動的に指定されます。DAYと日付など、カラム名が違うものは手動で編集なので注意です
ここまでをまとめると、
結合は「テーブルを合体させてから集計する」
ブレンドは「集計してから合体する」
のように、順番に違いがあります。
ブレンドが絶対というわけではない
ブレンド機能は画期的で便利な機能ですが、毎回使える機能というわけではないかと思います。
何故なら、データソースが多くなるほどブレンドなのか、結合なのか、KEYは何なのかなどごちゃごちゃしてしまうからです。
なので、GCPやAWSなどのDWHにデータソースが全て格納されているならばTableau上でブレンドさせずに
あらかじめSQLを叩いて集計テーブル、マートを作ってしまうのがベターが気がします。
今回の例でいうと、
SELECT
グループ名,CD名,売上,売上目標
FROM `目標値テーブル`
INNER JOIN
(
SELECT
グループ名,CD名,SUM(売上)
FROM `実数値テーブル`
GROUP BY CD名
)
USING
(CD名)
こんなイメージです。集計されてないテーブルを集計したテーブルをjoinさせています。
Tableauに考えさせずに可視化できるのでデータ量が多い場合などはパフォーマンスが上がるかもしれませんね。
元も子もない結論ですが、なるべくTableauには考えさせずにいきたいところです。
Author And Source
この問題について(Tableau:『データブレンド』機能を具体的なデータで理解する), 我々は、より多くの情報をここで見つけました https://qiita.com/vizhacker/items/a42536178ea0dc2ec2ba著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .