はじめに
この記事は得られた知見を共有しようというものではなく、嘆きです。嗚咽の副音声。
業務でTableauを使うようになって4年ほど経つのに、未だにLODで苦しみ続けてます。
生データを事業のDBから引っ張る事が多いので、業務でLOD計算は多用しています。
が、正しく理解できているかかなり怪しく、沼にハマる度に調べてやりたいことは出来るが、定期的に再発する現状です。
あがき
そんな中でも自分なりにしっくりきた、理解が深まったのでは?という部分。
詳細レベル
LOD、Level of Detailで詳細レベル。
詳細レベルとはなんぞや。一般的によく聞く単語すぎて逆にピンと来ない。
↑ここの粒度(レベル)の事だと思う。
行列のディメンションだけならイメージはしやすいが、マークの粒度も該当する。(色・サイズも粒度が分かれるので影響する。)
FIXEDもフィルターの影響を受けないわけではない
処理の順番だと④より上にあるので影響なさそうなイメージ
①抽出フィルター
②データソースフィルタ
③コンテキストフィルタ
FIXED(LOD)
④ディメンションフィルタ
INCLUDE/EXCLUDE(LOD)
⑤メジャーフィルタ
⑥表計算フィルタ
が、詳細レベルに指定したディメンションと同一のディメンションのフィルターの影響は受けるので注意。
(書いてみたら当たり前の事だった。。。でも僕は何度か引っかかりました。)
FIXED(LOD)でディメンションを作る
LODについて調べると、よく例として詳細レベルの四則演算が出てきますが、
FIXEDなら条件式を使ったディメンションを作ることもできます。
例)
{ FIXED [ディメンション]:MAX(IF [メジャー]>0 THEN 'aaa' ELSE 'bbb' END) }
{ FIXED [ディメンション]:MAX(IF [メジャー]>0 THEN 1 ELSE 0 END) }
後者はメジャーとしても使えます。
あとがき
Vizの表示速度を考えるとデータソース側に計算結果を用意した方いい気がするけど、
見たい粒度って結構後から増える事が多いので、LODはちゃんと理解しておきたいです。
あくまで僕の認識なので、間違ってたりもっといい考え方があったりとかすると思うので、
もしよければ教えてください;
以上です!