Query filters | Databricks on AWS [2022/8/22時点]の翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
クエリーフィルターを用いることで、ビジュアライゼーションで表示されるデータの量をインタラクティブに限定することができます。クエリーフィルターは、クエリーパラメーターと似ていますが、いくつか主要な違いがあります。クエリーフィルターはクエリー実行後にデータを絞り込みます。これによって、小規模なデータセットを取り扱っている状況、あるいは、クエリー実行が時間とコストを消費する状況におけるフィルターを理想的なものにします。
以下では、Databricks SQLにおけるメリットのいくつかを説明します。
- 以前のクエリーフィルターはクライアントサイドでのみ動作しましたが、これらの新たなフィルターは、パフォーマンスを最適化するために、動的にクライアントサイドあるいはサーバーサイドで動作します。
- シンプルなUIエクスペリエンス: フィルターを追加するために +Add filter をクリックし、ドロップダウンからカラムを選択します。カラムの固有値でフィルタリングをするために、別のクエリーを作成し、アクセスを許可し、更新する必要はありません。
- フィルターでどの値が選択されているのかを参照するために「適切な値のハイライト」を有効化すると、他のフィルターを選択した際の結果を返却します。例えば、
State
とCity
の両方のフィルターを選択するユーザーを考えます。ユーザーが「適切な値のハイライト」を有効にして、State
でCalifornia
を選択すると、City
フィルターでCaliforniaの市のみがハイライトされます。ハイライトされない選択肢は、ドロップダウンのFiltered out
メニューオプション配下に配置されます。 - テキスト入力フィルター: テキスト入力検索に基づいてカラムの結果をフィルタリングします。検索がマッチするモードは3つあります。完全一致、部分一致、先頭一致です。
- 先週、先月などの事前定義済みの日付レンジを用いてクイックに日付を選択することができます。
- 日付フィルターを作成する際にデフォルトの日付レンジを設定できます。
- また、ダッシュボード上でクエリーフィルターを使用することもできます。デフォルトでは、フィルターウィジェットはクエリーに追加されたフィルターがあるそれぞれのビジュアライゼーションの傍に表示されます。フィルターウィジェットをダッシュボードレベルのクエリーに紐づけるには、Dashboard filtersをご覧ください。
機能の説明
クエリーを実行した後に、+Add filterをクリックします。
+Add filterをクリックすると、以下のフィルターと設定を適用できるポップアップメニューが表示されます。
- Column: フィルターを適用するカラム。
- 現在は文字列、数値、日付がサポートされています。
- 選択したカラムに日付が含まれている場合、ユーザーは日、月、年で時間を区切ることができます。
- Type: 適用するフィルターのタイプを指定します。
- Single Select: 1つの値のみでフィルタリングします。
- Multi Select: 複数の値でフィルタリングします。
- Text Input: 特定のカラムで値にマッチする文字列を入力します。
Contains
、Exact Match
、Starts With
をサポートしています。 - Date / timeピッカー、レンジピッカー: 日付データ型に対して日付あるいは期間を選択することができます。
- Sort Order: フィルタードロップダウンの並び順を指定します。
Ascending
とDescending
を選択することができます。 - Highlight relevant values (y/n): フィルターにおける選択が他のフィルターでどのような値を返すのかを容易に確認できるようにします。例えば、
State
とCity
の両方のフィルターを選択するユーザーを考えます。ユーザーが「適切な値のハイライト」を有効にして、State
でCalifornia
を選択すると、City
フィルターでCaliforniaの市のみがハイライトされます。ハイライトされない選択肢は、ドロップダウンのFiltered out
メニューオプション配下に配置されます。 - Default value: 日付方のカラムが選択され、時間を区切る値(日、月、年)が指定されてると、ユーザーはフィルターのデフォルトの日付や期間を選択することができます。デフォルト値は、クエリーがリフレッシュされると自動で適用されます。
制限
- クエリーフィルターはデータセット全体に適用されることに注意してください。しかし、クエリーフィルターのドロップダウンセレクターは64,000のユニークな値に限定されます。64,000より多いのユニークな値でフィルタリングしたい場合には、Textパラメーターを使用することをお勧めします。
- 参照しているテーブルのすべてのカラムではなく、クエリーによって返却されるカラムにのみフィルタリングをおこなうことができます。
- フィルターは、返却された結果に含まれるカラムから固有の選択肢のリストを表示します。結果が限定(
Limit 1000
によるクエリー実行など)されていると、フィルターはそれら1000行の結果からのユニークな値を表示します。 - クエリーに適用されたフィルターは、優れたパフォーマンスを実現するためにクライアントサイドあるいはサーバーサイドで実行され、ダッシュボードに適用されるフィルターは常にサーバーサイドで実行されます。
コードベースのクエリーフィルターの活用(レガシーな方法)
特定の値にフォーカスするためには、対象のカラムを`<columnName>::filter`
で置き換えてください。以下に例を示します。
SELECT action AS `action::filter`, COUNT(0) AS "actions count"
FROM events
GROUP BY action
マルチセレクトのフィルターが必要であれば、カラムを`<columnName>::multi-filter`
で置き換えます。
SELECT action AS `action::multi-filter`, COUNT (0) AS "actions count"
FROM events
GROUP BY action
また、ダッシュボードでクエリーフィルターを使うこともできます。デフォルトでは、フィルターウィジェットはクエリーに追加されたフィルターがあるそれぞれのビジュアライゼーションの傍に表示されます。