Tableauの集計関数のパフォーマンスと使い方
Tableauの集計関数は、Tableauのパフォーマンスに影響を与えます。
影響が小さいことも多いですが使用頻度も多いので、パフォーマンスを意識して作りこんでいくのがいいと思います。
そこで、各集計関数のパフォーマンスの影響などをまとめたいと思います。
Tableauの集計関数
Tableauの集計関数とはデータを集計するために利用する関数で、以下のような関数が存在します。
この中でよく利用するのが、以下の関数かと思います。
- MAX
- MIN
- SUM
- AVG
- COUNT
- COUNTD
集計関数の種類によってパフォーマンスが異なるので、このあたりの使い方をまとめたいと思います。
上記の集計関数のパフォーマンスは
MAX, MIN > SUM, COUNT > AVG >> COUNTD
の順に遅くなっていくかと思います。
COUNTDは特に遅くなるので多用する場合は注意が必要です。
場合によっては、LOD表現のFIXEDを使った方が速い場合もあります。パフォーマンスを少しでも向上させたい場合は、COUNTDとFIXEDを使った方法とを比較してみるといいでしょう。
使う機会がないATTR関数
Tableauをずっと使ってきていままでも全く使うことがなかったのが、ATTR関数です。実はこの関数は、Tableauを触っているとでてくる属性() と表示されるものです。
ATTR関数は全ての値が一致している場合はその値を返して、他の値も存在する場合は*で表示される特殊な関数です。
基本的はMAX関数で代用できますし、パフォーマンス的にもMAX関数の方がよいのでATTR関数の使用は避けて、MAX関数に置き換えましょう。
同じ値が入ったカラムから1つの値を取り出す方法としてのMAX関数
集計の粒度の都合上、同じ値が入ったカラムから1つの値を取り出す必要がある場合には基本的にはMAX関数を使用しています。
MIN関数でもいいのですがNULLの値がある場合にMAX関数の方がイメージがつきやすいという理由でMAX関数を利用するようにしています。
さらに、必要な際にはMIN関数というように決めていて、このようなルールを自分の中で作っておくことで後で計算フィールドを見返す際に読みやすくなります。
文字列カラムでMAX関数はよく使います。Tableauの別名の3パターンの方法とパフォーマンス の記事でFIXEDと一緒にMAX関数を使ってパフォーマンスを向上させる方法をまとめています。
まとめ
Tableauの集計関数のパフォーマンスについてまとめました。LOD表現と一緒に集計関数も使いますので、集計関数のパフォーマンスの順番を意識して作りこんでいくのがいいと思います。
Discussion