はじめに
2025/3/20にTableau2025.1がリリースされました。
https://www.tableau.com/ja-jp/products/new-features
注目の機能として「論理テーブルのデータソースフィルター」がございます。
これは、データのリレーションシップを行う際に、各論理テーブルごとにデータソースフィルターを適用できるという機能になります。
この新機能について解説していきます。
以前までの挙動
従来の課題
論理テーブルごとにデータソースフィルターが出来ないことにより何がおきるのか?について説明します。
以下のようなデータがあるとします。
オーダー

顧客マスタ

2つのデータを顧客IDで紐づけます。

この状態で顧客マスタの顧客数を計算します。

804人とでています。
ここで、パフォーマンスなどの関係を考慮してオーダーのデータをデータソースフィルターを用いて2024年に絞ります。
そうすると、顧客数が704人に減ります。

これは、データソースフィルターはオーダーのデータだけでなく、顧客マスタにもフィルターがかかり、2024年にオーダーがあった顧客だけに絞られていることが分かります。
2024年のオーダーのデータに絞りたいけど、顧客の一覧は全件持っておきたい、というケースに従来の仕様では対応できませんでした。
従来の解決策
カスタムSQLでWHERE句を使用する
カスタムSQLは各論理テーブルごとにクエリを行うため、論理テーブル単位でWHEREの条件でフィルターをかけることができるため有効です。
ただし、カスタムSQLはデータベースにのみ使用可能となり、普通のファイル形式には対応できません。
ブレンドを使用する
ブレンドであれば、個別のデータソースとして扱うことが出来、それぞれのデータソースに対してデータソースフィルターをかけることが可能です。
ただし、ブレンドをまたいだフィールドを使用するときにLOD計算を行うことが出来ない等、様々な制約が生まれ、扱いが難しいです。
新機能解説
今回リリースされた新機能により、データのリレーションシップを行う際に各論理テーブルごとにデータソースフィルターを適用する、ということを実現することが出来ます。
Tableau2025.1で同様にデータソースフィルターの設定を使用とすると、フィールドがテーブルごとに表示されます。

従来の画面

また、データソースフィルターのリストが面では新たに「範囲」の設定ができるようになっています。

従来の画面

「オーダーおよび関連テーブル」が従来の動作をするフィルターです。
「オーダー」に変えて同様に顧客マスタの顧客数を計算すると正しい804人と出すことができます。


範囲をテーブルごとに設定することが可能となりました。
追加検証:抽出フィルターにも適用できるか?
データソースフィルターの前に適用されるフィルターとして抽出フィルターがあります。抽出ファイルを作成する際に範囲を絞るための機能になります。
抽出フィルターの画面は変わっておらず、データソースフィルターのような操作は出来ませんでした。

結果も従来のデータソースフィルターと同様の結果になっています。

リレーションシップを含むデータソースを抽出するという場面はかなりあり、抽出ファイルのサイズ削減をしたいというニーズはかなりあるかと思いますので今後のアップデートに期待がかかります。
まとめ
昨年のアップデートで「シェアドディメンション」の機能が追加され、リレーションシップをサポートする機能の需要はどんどん高まっています。
リレーションを使う際、最適なデータソースフィルターを行うためにこの機能の仕様を検討してみてはいかがでしょうか。
