
Tablau Prep 活用のすすめ
こんにちは。
現在、Tableau DATA Saberにチャレンジ中のヒデです。
今回はTableau Prepの活用方法についてご紹介してみたいと思います。
(まだNote投稿3回目のため、不慣れな点がありますがご容赦ください)
Tableau PrepはTableau Desktopに比べて少しハードルが高いと感じる方(特にTableauを扱いはじめた初心者の方など)が多いと思われますが、Tableau Prepはとても便利なツールでして会社のポリシーなどにひっかからないようでしたらぜひ活用頂きたいツールです。以下少しでもご参考になれば幸いです。
1)データの結合がわかりやすい
Tableau Desktopでは結合やリレーションシップ、データブレンドといった異なるデータを紐づける方法がいくつかありますが、紐づけた結果が正しいかを簡単に判断する方法が無いように思えます。
Tableau Desktopの場合
・結合の例
結合した結果の行数とフィールド数が表示されます。
ただし 正しく処理されたか判断するには、シートに移動して各フィールドを並べて確認が必要です。(結合したデータのそれぞれの行数と、結合処理後の行数の関係がわからないため)

・リレーションシップの例
下図ようにリレーションを設定しますが、この状態ではデータが正常に紐づいたかわかりません。シートに移動して、紐づけた各データのフィールドを表示させて確認が必要です。(それぞれの行数も紐づけ処理後の行数もわからない)

・データブレンドの例
データブレンドの場合、2つのデータを別々に接続して最初にシート上へフィールドを追加したデータ側がPrimaryとなり、2つ目のデータからフィールドを追加するとSecondaryとなりますが、こちらもすぐに正常かを判断するのは難しいです。(それぞれの行数も紐づけ処理後の行数もシート上で確認しないとわからない)

Tableau Prepの場合
・Tableau Prepの結合の例
下図(左側)のように、結合条件(結合キーや結合方法)、インプットの数、アウトプットの数(レコード数)を確認することができます。

例えば、PeopleのデータにWestが含まれていない場合、以下のように結合結果を示してくれます。(結合で紐づかなかったWestは赤字になり、結合結果のレコード数の欄でも多数のレコードが除外されたことが一目でデータの不足を確認できます)

2つのデータを結合して一致しないものを取り出すことも容易です。
下図はOrder側にだけ存在するデータ(People側にない)を処理した例です。結合タイプをクリックして簡単に変更できます。

2)処理の内容がわかりやすい
RANK関数やLOD(FIXED)関数など、少し難易度が上がる関数についてですが、Tableau Prepでは以下のようにユーザーに処理結果を示してくれます。
例えば、お馴染みのサンプルスーパーストアのデータにてカテゴリ毎に顧客の売上金額をランキング処理する場合を考えてみます。
Customer Nameに対して計算フィールドで”Rank”を選びます。

主な設定は以下のとおりです。
・集計粒度の設定(Group By)
・集計の関数選択
・並び替えの設定(Order By)
今回の例では、
集計粒度 → Group By : Category
集計関数 → Rank
並び替えの設定 → 以下
- Rankの種類は”Rank”を選択
- ランク対象は”Sales”、並びは大きい順 [Z - A]
- もし同じSalesの場合の並び替え基準は”Customer Name昇順 [A - Z]”
*設定できたら、右上の”Done”で確定します。
(画面左上に”Calculation1”となっているフィールド名も変えましょう!)

処理結果がすぐに反映され目視で確認できます。下図にて、まず”Technorogy”でSalesの大きい順にランク番号が付き、顧客がソートされています。

下のほうにスクロールし、次の”Furniture”でもSales順にRank番号が付き、ソートされていることが確認できます。

もし、Tableau Desktopで上記を行おうとしたら、簡易表計算のRank(または計算フィールドからRank関数)を使って計算の方向(横、縦)や単位(すべて/ペイン/セル等)を設定して、Salesの値を並べて正しい処理がされているかシートを追加してチェックなど行うかと思います。確認用のシートを使って検証したりで少し手間がかかるように感じます。
Tableau Prepでは”Profile ペイン” でみるとサマリー表示などもされてデータがどのような結果となっているか素早く確認できてとても便利です。

私のいまの勤務先でTableau ユーザに利用方法をいろいろと紹介していますが、LOD関数を最近使い始めた方から「Prepでは計算の設定や結果が確認しやすいです」というコメントを頂きました。
上記のような関数の設定画面と簡易ビューみたいなものがTableau Desktopでも利用できるようになるとさらに便利なツールになりそうですね。
3)様々なデータを処理できる
Tableau Desktopで異なるデータ同士を紐づける際、結合やリレーションシップ、データブレンドと選択肢がありますが、例えばTableau Serverにパブリッシュしたデータソースのいくつかを紐づけてデータとして利用したいといった場合、Tableau Desktopでは困難になります。(Tableau ヘルプの以下の注記にも記載のとおり)

Tableau Serverのデータソース同士を結合やリレーションシップで紐づけることができずデータブレンドだけが選択肢として残りますが、データブレンドは制限事項が多く初心者の方などは特に困惑すると思います。
Tableau Prepの場合、接続できるデータであれば様々なもの同士を紐づけ(結合)して取り扱うことができます。
(ただし、最近のTablea Conferenceで嬉しい発表がありまして、TableauのServerにあるデータソース群をTablea Desktopで結合処理できるようになるとのこと。待ち遠しいですね!)
他にもピボット処理なども同様です。
Tablea Desktopでは接続するデータによってはピボット(列⇨行)処理ができないことがあります。(以下はヘルプから抜粋)

このような場合はTableau Prepの活用を検討してみましょう。Tableau Prepでは列⇨行、行⇨列の処理が簡単にできます。
4)パフォーマンスを改善できる
Tableau Desktopでは様々な関数が利用でき、複雑な計算などを容易に表現できるためついつい多用してしまうこともあるかと思いますが、ダッシュボードを組み立てて完成!と思いきやビューの読み込みやビュー上の操作の度に表示に時間がかかるなどパフォーマンス問題が見つかることがあります。
もし計算の過程が静的なものであればTableau Prepで事前に複雑な計算を処理し、処理結果のデータソースを利用することでワークブックのパフォーマンスを改善することが可能です。
特にここ最近のTableau Prepには様々な機能が追加され事前のデータ処理が容易になりました。

ランク関数、LOD[FIXED]関数、RUNNING関数[累計]、その他諸々などです。また、WINDOW関数のような使い方で特定の期間の集計などもTableau Prepのほうで任意の集計粒度に調整して計算フィールドで処理することも可能です。
※動的な処理(例えば閲覧ユーザーがTableauのビュー上のフィルタやパラメータを選択した結果を使う)の場合は難しいためご注意ください。
5)注意したいこと
私の身近でもTableau Prepを利用している方を目にしますが、ちょっとした操作やTableau Prepの制限?などで注意したほうがよい点を伝えています。
もしこれからTableau Prepを使ってみようと思われた方は、以下の点もご参考にして頂ければ幸いです。
① 処理のアイコンをつなげるときの注意点
Tableau Prepの画面にて、アイコンをドラッグ&ドロップでほかのアイコンに重ねると可能な処理の選択肢が表示されます。(図ではJoinとUnionが可能)
結合(Join)したい場合はJoinに重ねることでつなぐことができます。

結合結果は以下のようになります。簡単ですね!

次の例では最初に結合アイコンをClean 1のあとに配置し、そこにClean 2を追加する場合ですが、下図のように”Add”、”Union”、”Join”の選択肢が表示されます。ここで結合(Join)だからと”Join”にドロップすると・・・、

下図のように新たな結合(Join)が配置されてしまいます。この場合の正解は、”Add”にドロップすることです。結合(Join)の処理に”追加”するため”Add”を利用しましょう。よくよく見ると、上図で”Add”がハイライトされていますよね?Tableauは”Add”を推奨していることがわかります。ユーザーが直感的に操作できるように作られていて便利ですね!

② サンプリング処理に注意
以前のTableau Prep ではデータのサンプリング数を”すべて”にすることですべてのデータを読み込んでプロファイルペインのサマリー画面などに結果を表示することができましたが、ここ最近のバージョンのTableau Prepではすべてのデータを読み込むことができなくなっています(パフォーマンスの観点などの理由で)。
例えば以下のようなケースですが、結合により多くのレコードが生成される場合 Tableauではすべてを読み込まずサンプリングした結果を示します。
”Sampled”と赤文字で図の左上のあたりに表示された場合は注意が必要です。図の左下の結合結果のレコード数はサンプリングされた状態のもので正しくありません。また、右側のサマリー表示の内容もサンプリングされた状態のものです。アイコンを右クリックして”Desktop Preview”を利用した場合も同様にサンプリングされた状態となります。

下図のようにインプットアイコンにてデータのサンプリングの定義を設定する箇所がありますが、これらも上限が定められているためご注意ください。
詳しくはTableauのヘルプの記載をご確認ください。

データの結合結果の検証などをTableau Prep上で行う場合は予めインプットアイコンのほうでフィルタ処理など行い、フロー上のデータ量を減らすとサンプリングを回避することが可能です。
下図のようにインプットアイコンの設定欄にあるフィルタから計算式でフィルタしデータ量を減らします。先ほどの結合箇所の”Sampled”の赤文字が消えればすべて読み込めた状態になります。
(インプットアイコン以外の場所でフィルタしても効果はありません)

今回の記事は以上になります(もっと色々と紹介したかったですが(笑))。
Tableau Prepを扱えるようになるとTableau Desktopだけではできなかったことができるようになり、世界が広がります!
Tableau Prepはバージョンアップの度にいろいろと便利な機能が追加されていくのでとても楽しみです。
ぜひ、皆さんもTableau Prepを使ってみてください(Tableau PrepはTableau Creatorライセンスが必要ですのでご注意ください)。
この記事をお読みいただきありがとうございました。
少しでも皆様の気づきになれば幸いです。