最近色々と熱いAI/BIダッシュボードですが、こちらの記事に沿って操作していたところ、若干詰まるところがありました。
ダッシュボードに表示されるデータを絞り込む機能には以下の2つがあります。
なぜ2つ?違いが何で、どのように使い分けるのかを理解するところから着手しました。
詳細は以下で説明しますが、概要をこちらにまとめます。
パラメーター
クエリーで :パラメーター名
と記述することでパラメーター化することができます。
データセットのフィルター
データセットのフィールド(カラム)を指定することで、当該データセットを使用しているビジュアライゼーション全てに動作するフィルターを定義できます。
クエリーベースのパラメーター
クエリーから動的にフィルターの値を生成し、選択した値をパラメータに反映できます。
パラメーターとは
AI/BIダッシュボードに表示するデータを取得する際には、背後でSQLが実行されます。静的なSQLの場合、データソースが変化しない限り常に同じデータを取得することになります。特定のデータのみを取得したいというニーズは当然ありますので、これに応えるために動的にSQLにパラメーターを埋め込んで、取得するデータを絞り込む機能がパラメーターです。
パラメーターの作成方法
データを取得するSQLで:<パラメーター名>
を記載すると、SQLの下にパラメーターボックスが作成されます。
なお、この時点でパラメーターのボックスに値を指定すると、これが静的なウィジェットパラメーターに設定されます。
この状態でビジュアライゼーションをクローンして、パラメーターを変更することもできます。
こちらにも書いてある通り、SQLにプレースホルダーを設けることができるパラメーターは強力な機能ではありますが、このままですとパラメーターの値は毎回手動で入力しなくてはなりません。
パラメーターは、データセットのSQLのどこでも導入することができるパワフルなツールであり、フィルターを定義する際に最大の柔軟性を提供します。パラメーターはSQLにおけるリテラルに対するプレースホルダーですが、それらは他のすべてのフィールドのように動作すべきであり、作成者が値を設定するためにドロップダウンや他に使用するフィルターに組み込めるようにすべきです。
後述のフィルターとパラメーターを組み合わせることで、容易にパラメーターを指定できる方法は後ほど説明します。
フィルターとは
一方でフィルターは、ダッシュボード上のウィジェットとして動作します。ですので、ダッシュボードの一部品としてインタラクティブに操作することができます。
ここで注意する必要があるのは、フィルターの設定のフィールドに何を設定するのかによって挙動が変わるということです。
- データセットのカラムを指定: 当該データセットを使用している全てのビジュアライゼーションにフィルターが適用されます。
- クエリーのカラムを指定し、パラメーターにデータセットに指定されているパラメーターを指定: 当該パラメーターを更新するクエリーベースのパラメーターとして動作します。
データセットに対するフィルター
フィールドにデータセットのフィールド(カラム)を指定します。これによって、当該データセットを用いているビジュアライゼーションにすべて適用されるフィルターとして動作します。
クエリベースのパラメーター
クエリーベースのパラメーターは、フィルターの値をクエリーで構築して、選択した値をパラメーターとして適用する機能です。
パラメーターとフィールドの組み合わせを可能にすることで、他のデータセットの値を用いたパラメーターフィルターを作成する能力を追加しました。このクエリーベースのパラメーター値へのアプローチは、動的に変動する日付の粒度のような高度な分析能力を解放します。
はじめに、フィルターの値を構成するクエリーを作成します。ここでは、関東地方の都道府県からフィルターを構成するようにします。データタブでSQLから作成をクリックし、以下のクエリーを記述します。
SELECT
Prefecture
FROM
users.takaaki_yayoi.covid_cases
WHERE
Area = "関東地方"
そして、フィルターの値をパラメーターとして受け取るクエリーを記述します。
SELECT
*
FROM
users.takaaki_yayoi.covid_cases
WHERE
Prefecture = :Prefecture
キャンバスに戻り、フィルターを追加します。ここで、以下の設定を行います。
-
フィールド: はじめに定義したクエリー。ここでは、
Prefecture List of Kanto Region Covid Cases
。 -
パラメータ: 二つ目に定義したクエリーのパラメーター
Prefecture
。
これで、フィルターの選択肢は動的に生成され、選択した値がパラメーターとして動作するようになります。