グレンジ Advent Calendar 2017 23日目の記事を担当しましたkitaji_ngzkと申します。
グレンジでデータマイニングをしており、主にサーバーサイドについて勉強中です。
さて、世の中はクリスマスムードですね。クリスマス・イブ前日ということでtableauの初心者向けの記事を投稿します。
背景
調査対象のテーブル(ベースのテーブルとなるもの)に対して、
紐づくなにかしらのIDの特徴を交えて分析したい時、かつ、そのIDの別情報が格納されているテーブルがいくつかに分割され、さらにサーバーも分割されている場合、
SQLで各テーブルをそれぞれジョインやユニオンすることができない。
tableauでもサーバーがまたがれているとジョインはできるもののユニオンすることはできない。
ただし、ジョインを用いて擬似的なユニオンを作り出すことは可能。
前提
背景にある通り、ジョイン先となるベースのテーブル(分割されたテーブル全てに共通する因子がある元テーブル)が必要になる。なにかしらのベースとなるテーブルが必要。ただ単に分割しているテーブルをユニオンするだけの作業はできない。
やり方
①図のように、使用するサーバーを全部追加
②それぞれをベースのテーブルにLEFT OUTER JOIN
③以下の計算式を新たなカラムとして入れ込む
いわゆる全部ジョインさせた後に、もし一つ目のジョインテーブルのレコードがnullだった場合、2つ目のジョインテーブルのレコードを見にいく
といったような計算式にし、擬似的なユニオンをさせて分析することができる
注意点
・意図あって分割されてるものを強制的につなげてるので、かなり重くなったりする。(のでやりすぎ注意)
・処理がかなり重くなった場合は、前もって必要なカラムだけを抽出してからジョインしたり、ライブ分析ではなく、抽出分析で対応したりすれば軽量化できる