#製品名称が変わりました。新たな名称は Tableau Prep Builder です。
Tableau Server 2019.1 がリリースされたタイミング (2019 年 2 月) で Tableau Prep で作成された flow が Tableau Server 上にパブリッシュ可能になりました。このアップデートを機に、製品名称が変わっています。これまで Tableau Prep と呼んでいたものは Tableau Prep Builder という名称に変わりました。Tableau Prep Builder 2019.1.2 のバージョンから名称変更となります。
なお、Tableau Server 上で flow を管理、動作する機能は Tableau Prep Condutor と呼ばれ、Tableau Data Management Add-on と呼ばれる新ライセンスで利用できる機能群の一部となります。
https://www.tableau.com/ja-jp/pricing/teams-orgs
#Index 列 (行 ID 列) の追加
##やりたいこと
さて、本題に入りたいと思いますが、実現したいのは以下の例です
製品 | 売上 |
---|---|
A | 20 |
B | 50 |
C | 70 |
D | 90 |
このテーブルを売上順にソートして、一意な列 (=Index) を追加してあげます。 |
Index | 製品 | 売上 |
---|---|---|
1 | D | 90 |
2 | C | 70 |
3 | B | 50 |
4 | A | 20 |
##Tableau Prep Builder の機能で一発で実現できるか
残念ながら Tableau Prep Builder では現状 Index 列を追加するための機能はありませんし、表計算関数など一部の関数もサポートされておりません。
Tableau の Idea サイトでは既に多くの機能拡張要望が来ていることから、実業務でのニーズが高いものと思われます。早く実装されてほしいです。
[idea] Add Record ID / Index feature in Tableau Prep
https://community.tableau.com/ideas/8714
[idea] Tableau Prep: Add Table Calculations - especially Index() and PreviousValue()
https://community.tableau.com/ideas/8732
##じゃあ、どうするか
Tableau Prep Builder の標準機能を組み合わせて実装します。
まず、計算フィールドを作成して列を結合します。STR 関数は数値を文字列型に変換してくれます。ソートキーという名前にしておきましょう。
つぎに、ステップを追加します。
わかりやすいように色分けしておきましょう。
ここで、クリーニング 2 をクリーニング 1 の右側にドラッグアンドドロップして 結合 (JOIN) します。これらは同じテーブルなので、いわゆるセルフジョインをしていることになります。
結合句を以下のように指定します。この結合条件に沿って行が増幅されます。
結合した結果は以下の表のようになります。あとはソートキー列でカウント取ってあげれば、一意の Index 列を追加できそうな感じがしますね。
#まとめ
正直いって、こんなことやらずにボタン ポチっとレベルで実現できてほしいところですが、それは今後の製品アップデートに期待しましょう。
なお、この方法だと途中のステップで行が増幅されるので、大量データで同じことをやる場合はくれぐれもご注意ください。
#参考サイト
Creating unique Row IDs in Tableau Prep
http://technowhisp.com/2018/12/11/tableau/creating-unique-row-ids-in-tableau-prep/