Tableau Conference On Tour Tokyo 2014 – データブレンドに関する便利な機能

2014.11.17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Tableau Conference On Tour Tokyo 2014に参加してきました。中級者向けの「データブレンドに関する便利な機能」というセッションの参加レポートです。

データブレンドに関する便利な機能 14:30-15:30

社内から分析を依頼されたものの、方法がわからなかったことはありませんか。同じような経験をしたTableau ユーザーは少なくありません。一般的な日常業務を強力な表計算ですっきりと処理する方法を紹介します。この例では、個々の状況に合わせて解決できるように、具体的に説明します。

受講対象: Intermediate スピーカー: Tableau Japan 株式会社 セールスコンサルタントマネジャー 並木 正之

スケジュール | Tableau Conference 2014

データブレンドとは

複数のデータコネクションを組み合わせて一つのビューを作成する方法です。組み合わすデータソースは同じデータソース(メタでレイヤー)でも構いません。ブレンドによって、"LEFT OUTER JOIN"の結合が可能になります。 ブレンドを指定する方法は、自動的に見つける方法と自分で指定する方法があります。自動的に見つけるときは名前と型ですが、名前が異なる場合は明示的に指定する必要があります。

セッションで紹介されたデータブレンドの応用例

  • 様々な詳細レベルの情報を組み合わせる方法
  • 間違いやすく・気づきにくい1対多の問題を治す方法
  • windowsumやrunningsumを使わない表計算する方法
  • カスタムSQLを使わずに集計する

1対多のテーブル結合で生じるダブルカウントをデータブレンドで解決する例

ここでは間違いやすく・気づきにくい1対多の問題を治すテクニックを通じて、データブレンドを紹介します。

複数のテーブルからなるデータソースがあり、一つのデータソース(SQL ServerやOracleなど)の中にマスタテーブルと外部テーブルが存在するとします。 プライマリデータソース(セールステーブル)内の一つのテーブルに主要な情報のマスターレコードリストとして、顧客名に対してオーダーIDごとの売上高だけしか入っていないレコードがあるとします。一方、セカンダリデータソース(オーダーテーブル)の中には明細と利益が入っているとします。 これらのテーブルを組み合わせて、顧客ごとのオーダーごとの売上の合計と利益の合計を集計したいとします。

この場合、オーダーIDの中には複数の商品が含まれている場合がありますので、テーブルをオーダーIDをキーに内部結合(INNER JOIN)すると1対多の関係と呼ばれますが、結合すると2つレコードに増えてしまい、この結果を集計すると売上が2倍になってしまうという問題が発生します。

one-to-many-problem

本来はデータ側で抜本的対処が望ましいですが、直ちに結果が見たいときにTableauのデータブレンディングを使うことでこの問題に簡単にできます。

顧客名、売上の合計、利益の合計を出したいとき、まず、セールステーブルとオーダーテーブルをそれぞれ別のデータソースとして定義し、顧客名で"LEFT OUTER JOIN"で結合します。セールス(顧客名、オーダーID、売上)とオーダー(顧客名、商品、オーダーID、利益)を顧客名でブレンドすることで売上の合計は変わらず、利益が集計されます。

その他:カスタムSQLの紹介

Windows用のTableau Desktop Ver.8.2では、式の中でSQLを使う方法が紹介されました。データソースとしてExcelのファイルを開くときに、通常は[開く]を選ぶのですが、Excelを開くときにプルダウンから、この時に「レガシー接続でつなぐ」を選択します。 詳細は弊社のブログでも以前に紹介していますのでご参照ください。

【Tableau8.2】Excelデータソースで簡単にSQLを実行する https://dev.classmethod.jp/business/business-analytics/tableau8-2-run-sql-on-excel/

最後に

フィルターを適用したビューの高速化や、直ちに結果が見たい時にデータブレンディングを使うことでデータディスカバリを効果的行うことができます。

かと言って、ブレンドは万能ではありません。ブレンドは複数のデータソースに検索を投げ、それらの結果量が少ない、数千万あろうが集計した結果のみを持ってくるので、それもメモリ上でつなぐので、どういう順番でつなぐのか考えなければならず、検証しにくいという短所があります。

データベースの優れたETLツールを使えばデータが正しくどのようにつながっているか、計算が集計されているのかを確認しながら進めることができるで、ブレンドは本当のETLツールとしては向かないと考えたほうがよいでしょう。