フィルタ提案の変更

このページでは、フィルタの候補に影響する LookML パラメータの概要について説明します。本ページでは、パラメータと詳しい説明ページへのリンク、その機能の簡単な説明を示します。

デフォルトの動作

デフォルトでは、Look または Explore で、ユーザーが候補をサポートするフィールドのフィルタ値を入力すると、Looker はユーザーが入力した内容に一致するオプションを提案します。ダッシュボードで、ダッシュボード フィルタが候補をサポートするフィールドをフィルタリングしている場合、Looker はフィルタ オプションも提案します。これらのフィルタの候補は、フィールドに対して SELECT DISTINCT クエリを使用して作成されるため、そのフィールドの既存のデータと一致する値のみが返されます。

フィルタ候補は、ユーザーがフィルタ値フィールドを選択したときに表示されるプルダウン メニューに表示されます。

予期しない動作が発生し、フィルタ候補のトラブルシューティングが必要な場合は、一般的なフィルタ候補の問題のトラブルシューティングのベスト プラクティス ページをご覧ください。

候補をサポートするフィールド タイプ

Looker では、dimensiondimension_groupfilterparameter フィールドの次の type 値の候補がサポートされています

提案をサポートするディメンション type の値:

候補をサポートするディメンション グループの type 値:

候補をサポートする type 値をフィルタします。

  • type: string

候補をサポートするパラメータ type の値:

フィルタ候補を有効または無効にする

このセクションでは、フィルタの候補を有効または無効にする LookML パラメータについて説明します。

suggestions(ビュー)

デフォルトでは、ユーザーが候補をサポートするフィールドで Explore をフィルタすると、Looker はそのフィールドの候補値を提案します。

suggestions:no を使用してビューを定義すると、ビュー内のすべてのフィールドの候補が無効になります。

suggestable(フィールド)

デフォルトでは、ユーザーが候補をサポートするフィールドで Explore をフィルタすると、Looker はそのフィールドの候補値を提案します。

suggestable:no を使用して個々のフィールドを定義し、そのフィールドの候補を無効にできます。

候補の値をフィルタする

このセクションでは、フィルタの候補に表示される値を設定または制限できる次の LookML パラメータについて説明します。

allowed_value(フィールド)

allowed_valueparameter LookML パラメータと連携します。Looker デベロッパーが parameter フィルタ専用フィールドを提供する場合、ユーザーが入力または選択した値を {% parameter %} Liquid 変数を使って参照できます。必要に応じて、allowed_value を使用して、ユーザーがこのパラメータ フィールドに対して選択できる値のリストを定義できます。

allowed_value には、labelvalue の 2 つのサブパラメータがあります。label サブパラメータは、フィルタ候補に表示するオプションを指定します。value サブパラメータには、{% parameter %} Liquid 変数に渡される値が含まれます。

たとえば、パラメータは次のように定義できます。

parameter: order_amount {
  type: string
  allowed_value: {
    label: "Less than $50"
    value:"< 50"
  }
  allowed_value: {
    label: "Between $50 and $100"
    value:"<= 100"
  }
  allowed_value: {
    label: "Over $100"
    value:"> 100"
  }
}

ユーザーがパラメータをフィルタする際には、[ $50 未満]、[ $50~$100]、[ $100 超] から選択できます。

詳しくは、parameter リファレンス ページのこのセクションをご覧ください。

bypass_suggest_restrictions(フィールド)

bypass_suggest_restrictions: 無効であるか、制限されている場合に、フィルタ候補を有効にします。sql_always_where または access_filter を使用してユーザーが閲覧できる行を制限している場合、Looker はフィルタ候補を許可された行の値に制限します。ただし、特定のフィールドに機密情報を示す値がないことが確実な場合は、bypass_suggest_restrictions を使用してフィルタの候補をすべて復元できます。

case(フィールド)

case を使用すると、ケースロジックを使用してディメンションの結果をバケット化できます。case 文で定義された値のみがそのディメンションのフィルタ候補として表示されるため、これはフィルタ候補に影響します。

case を使用するディメンションは、他のフィルタを更新するフィルタでディメンションが使用される場合、リンクフィルタとともに使用できます。case を使用するディメンションは、更新されるフィルタでは使用できません。

full_suggestions(フィールド)

full_suggestions パラメータを使用してフィールドを定義すると、Looker がデータベースにクエリを実行して、フィルタのフィールド値の候補を提示する方法を制御できます。

  • full_suggestions: no: Looker は個別の値の基本的なクエリを使用し、フィルタ フィールドを含むビューのみをクエリします。
  • full_suggestions: yes: Looker はフィルタ候補クエリに Explore ロジックを追加します。つまり、Looker にはフィルタのフィールドをクエリするために必要な Explore の結合のいずれかが含まれ、Looker には Explore のパラメータのロジック(例: sql_always_whereaccess_filterconditionally_filterが含まれます。

候補を提供する Looker のデフォルトの動作と、sql_always_where または access_filter を使用した Explore の考慮事項については、full_suggestions ページをご覧ください。

suggest_dimension(フィールド)と suggest_explore(フィールド)

通常、Looker はフィルタ フィールドに対して SELECT DISTINCT クエリを実行して、フィルタの候補を生成します。一部の大きなテーブルでは、このクエリの実行速度が遅すぎたり、データベースの負荷が大きすぎたりする可能性があります。ディメンションが別の Explore に存在する場合は、suggest_dimension を使用して、suggest_explore と組み合わせて Looker のクエリをフィルタ候補の代替ディメンションにすることができます。

suggestions(フィールド)

suggestions を使用すると、フィルタ候補値のリストをハードコードできます。これは、フィールド内の特定のデータ値を候補として表示したくない場合に、より限定的なリストを指定するのに役立ちます。

フィルター提案のキャッシング

このセクションでは、フィルタ候補がキャッシュに保存される期間を構成できる suggest_persist_for パラメータについて説明します。

データベースへの負荷を軽減したい場合、フィールドのデータ値の数が非常に多ければ、パラメータを使用してフィールドのフィルタ候補を無効化します。フィルタ候補を表示する場合は、パラメータを使用してクエリされるフィルタ値を制限するか、適切なオプションをハードコードすることを検討してください。

suggest_persist_for(フィールド)

デフォルトでは、フィルタの候補は 6 時間キャッシュされ、その時間に候補の同じリストが表示されます。suggest_persist_for パラメータを使用すると、フィルタ候補がキャッシュに保存される期間を変更できます。