見出し画像

クエリパイプラインとは?

DATA Saberに挑戦中のホーリーです。
残り30日余りとなりました。

Tableauには「クエリパイプライン」という処理の順番があり、正しく「クエリパイプライン」を理解していないと、計算やフィルターが思ったようなビューにはならないから、「これは覚えなくてはいけない!」と分かってはいますが、説明できるほどではないので、自分なりに理解できるようにまとめます。

クエリパイプラインとは

Tableau の操作の順序は、クエリ パイプラインとも呼ばれ、Tableau がさまざまなアクションを実行する順序です。アクションは操作とも呼ばれます。多くの操作でフィルターが適用されます。つまり、ビューを構築してフィルターを追加すると、操作の順序で確立された順序で常にフィルターが実行されます。
ユーザーが予測していたフィルターの実行順序と、操作の順序が指示する順序が異なる場合、予期しない結果になる可能性があります。これが発生した場合、パイプラインの操作の実行順序を変更できる場合があります。

Tableau公式ヘルプページ

操作の順序(クエリパイプライン)

Tableau社ヘルプページ

サンプルスーパーストアのデータを使って、実際にやってみます。
最も使うことがありそうなディメンジョンフィルターについてやってみます。
例:「2016年」の「家電」の売り上げが20万円以上の「顧客」データを調べる。

何で20万以下も出る?

20万以下も出ているのはクエリパイプラインの影響のよう。
20万以上の「顧客」フィルタだけを残して、「年」「カテゴリ」のフィルタを全てにしてみたら、総計で20万以上の人だけ残っています。

年・カテゴリによらず、総計が20万以上でフィルタされていることがわかります。ということは「2016年・家電」でフィルタしたのに20万未満も存在したのは、「総計20万の中で更に2016年・家電」でフィルタされている?

同じディメンジョンフィルターでも総計が優先されている?
フィルタ処理をする対象はフィルタをする前のテーブル。フィルタがない状態の中で、「総計20万以上、2016年、家電」を同時にフィルタしようとすると変な動きをします。
「2016年、家電」を「顧客の総計20万以上」より優先度を上げる、クエリパイプラインの上位に持ってくる場合に使うのが、「コンテキストフィルター」

優先度を上げたい「年」と「カテゴリ」をコンテキストに追加を選択

グレーに変わって、顧客の総額20万以上だけになりました。

年やカテゴリを絞った後に上位N位等を見る場合は、これを活用すれば良いですね。

他には、「売上総計」はメジャーフィルターにも出来そう、しかもディメンジョンの下にあるので、これでも出来ました。


今回はGanekoさん、Qiitaの記事を大いに参考にさせていただきました。認識の間違いがあるかもしれません(申し訳ないです💦)。

あとCopilotの力も借りました。


この記事が気に入ったらサポートをしてみませんか?