使用方法
parameter: parameter_name { … }
}
階層
parameter |
許容値
パラメーターに名前を付けるLooker識別子 |
定義
実際に「parameter
」と呼ばれるLookMLパラメーターがあります。parameter
パラメーターは、Explores、Look、およびダッシュボードのフィルタリングに使用できるフィルタ専用フィールドを作成しますが、結果セットにそのフィールドを追加することはできません。ユーザーがこのフィルタ専用フィールドに選択した値を、Liquid変数{% parameter parameter_name %}
およびparameter_name._parameter_value
と一緒に使用することで、インタラクティブなクエリ結果、ラベル、URLなどを作成できます。またparameter
パラメーターで、異なる結果を1つのフィールドに表示することができるので、LookMLモデルが簡素化されます。
パラメーターフィルタフィールドでは、ユーザーが1つのフィールドに1つのフィルタ値のみを選択でき、フィルタ条件は
is equal to
に設定されます。複数のフィルタ値を一度に入力する機能をユーザーに与え、Lookerのニュアンスの豊富な生成SQLフィルタロジック(contains
、does not contain
など)を利用したい場合には、テンプレート化されたフィルタのドキュメントページで詳細をご覧ください。
parameter
名は次の条件を満たしている必要があります。
- 任意のビュー内で一意であること
- 文字
a
〜z
(大文字なし)、0
〜9
、または_
で構成されます。 - 文字で始まること
また、parameter
と一緒に使えるフィールドパラメーターもたくさんあります(default_value
やallowed_value
など)。allowed_value
フィールドパラメーターを使用した例については、次のサブセクション許容値の指定を参照してください。
データにアンダースコア付きの値がある場合は、
default_value
をparameter
と一緒に使用しないでください。
許容値の指定
デフォルトでは、parameter
パラメーターで作成されたフィルタにユーザーが任意の単一の値を入力できます。ユーザーが選択できる特定の値を制限したい場合は、allowed_value
を使用します。許容値では、ユーザーが選択できるラベルと値のペアを指定します。
allowed_value
パラメーターは、ユーザーが選択できるフィルタオプションを設定できるという点で、suggestions
パラメーターに似ています。ただし、allowed_value
パラメーターには、元のSQLクエリに注入する値をわかりやすいラベルにマッピングする追加機能があります。
例えば、次のように、ユーザーに3つのフィルタオプションを提供するparameter
が生成されます。
label
はフィルタ提案でユーザーに表示される内容です。value
には、インタラクティブなコンテンツを作成するためにLiquid変数でSQLクエリに挿入される値が含まれています。
出来上がったフィルタは次のようになります。
Liquidでのparameter
の利用
Liquid変数の参照ドキュメントページで参照されているように、Liquidの使用法には2種類あります。
parameter
をLiquidで使用する場合は、論理条件ステートメントを作成するための{% %}
タグ構文を使用するのが一般的です。
parameter
で使用できる2つのLiquid変数は、{% parameter parameter_name %}
とparameter_name._parameter_value
です。次のセクションでは、それぞれの例について説明します。
ユーザーが選択した値を{% parameter parameter_name %}
で挿入
{% parameter parameter_name %}
Liquid変数はLiquid{% parameter %}
タグとパラメーター名を組み合わせて使用し、ユーザーが選択した値を、基になるSQLクエリに直接挿入します。
- parameterという語は不変です(そのまま記述します)。
- parameter_nameは、作成したパラメーター名に置き換えてください。
パラメーターが参照されているビューファイルと異なるビューファイルで定義されている場合は、必ずパラメーター名をそのビュー名でスコープします(例:view_name.parameter_name
)。
例
この例では、ユーザーが—sale_price
、cost
、またはprofit
を合計するデータベース列を選択できるように、item_to_add_up
という名前のparameter
を作成します。
次に、dynamic_sum
というメジャーを作成します。
このメジャーは、sql
パラメーターで{% parameter parameter_name %}
Liquid変数を参照します。これにより、item_to_add_up
から選択した値が挿入され、参照される列名が変更されます。次に、メジャーは、参照された列で計算を実行します。
その結果、以下のように、1つのメジャーで表されるさまざまな集計を表示するインタラクティブなExploreが表示されます。
{% parameter parameter_name %}
変数でparameter
を使用するその他の例については、ヘルプセンターのパラメーターフィールドの使用例をご覧ください。
parameter_name._parameter_value
で論理ステートメントを作成する
また、parameter_name._parameter_value
{% %}
ステートメントを使用して、基になるSQLクエリにparameter
の値を注入することもできます。
- parameter_nameは、作成したパラメーター名に置き換えてください。
- ._parameter_valueは不変です。
パラメーターが参照されているビューファイルと異なるビューファイルで定義されている場合は、必ずパラメーター名をそのビュー名でスコープします(例:view_name.parameter_name._parameter_value
)。
parameter_name._parameter_value
では、SQLのCASE WHEN
ステートメントと同様に、可能なパラメーター値を使用して複雑な論理ステートメントを作成できます。
Liquid条件ステートメントでは、次の構文を使用します。
- 条件を作成する
{% if %}
- 最初の条件の後に追加条件を作成する
{% elsif %}
- 他の条件が満たされていない場合に返す値を設定する
{% else %}
- ステートメントを終了する
{% endif %}
Liquid変数やLookMLでこのLiquidロジックをさまざまな方法で使用できます。LookMLのLiquidでparameter_name._parameter_value
変数を使用できる場所をすべて示すリストについては、Liquid変数の参照ドキュメントページを参照してください。以下に、sql
およびhtml
パラメーターを使用する例を示します。
SQLの例
次のLookMLブロックは、date_granularity
という名前のparameter
を作成します。次に、ディメンションのsql
パラメーターで、parameter_name._parameter_value
{% if %}
{% elsif %}
{% endif %}
parameter
の値に基づいてディメンションの値を決定します。
最終結果はインタラクティブな日付フィールドであり、ユーザーはこれを変更して、さまざまな時間枠で結果を表示できます。
HTMLの例
またparameter_name._parameter_value
をhtml
パラメーターと共に使用して、インタラクティブな結果フォーマットを作成することもできます。
上記の例に従い、よく似た{% if %}
論理ステートメントでhtml
パラメーターを追加することにより、ユーザーが選択した日付の粒度に応じてテキストの色を変更できます。
rendered_value
Liquid変数は、html
ステートメントでLiquidオブジェクトタグ、{{ }}
と組み合わせて使用され、Lookerのデフォルト書式に従うフィールド値を結果に出力します。
最終結果は、ユーザーが選択した値に依存するインタラクティブな条件付きフォーマットです。
HTMLのLiquidインタラクティブ性のその他の例については、html
ドキュメントページとHTMLを使用して色とフォントを変更する方法のヘルプセンターの記事をご覧ください。
parameter
タイプ
1つのparameter
パラメーターに多くのフィールドタイプを割り当てることができます。このページで、いくつかの特殊なケースについて詳しく説明されています。
type: string
のparameters
type: string
のparameter
を使用する場合、parameter_name._parameter_value
parameter
の値を一重引用符および二重引用符の両方で囲む必要があります。これにより、一重引用符がSQLに送信され、値がストリング値として識別されます。次の例を参照してください。
さらに、label
にtype: string
のparameter
の値を含める場合は、二重引用符の前に\
文字を付ける必要があります。
type: yesno
のparameters
type: yesno
のparameter
を使用する場合、parameter_name._parameter_value
true
に評価されるSQL文が生成されます。したがって、論理Liquidステートメントではtype: yesno
のparameters
を使用しないことをお勧めします。{% if yesno_parameter._parameter_value == 'Yes' %}
{% if yesno_parameter._parameter_value %}
type: unquoted
のparameters
unquoted
タイプはtype: string
と似ていますが、parameter
の値が{% parameter %}
Liquid変数に挿入されるときに引用符が付きません。これは、(上記の例のように)列名やテーブル名など、正しく機能させるためには引用符で囲むことができない値をSQLに挿入する場合に役立ちます。
引用符で囲まれていない値をSQLに直接挿入すると、意図しないSQLアクションが発生する可能性があります。これに対処する目的で、type: unquoted
のparameter
値はA〜Zおよび0〜9の文字に限定されています(スペースやその他の特殊文字は使用できません)。
例えば、次のLookMLでは、引用符で囲まれていない値を生成するtable_name
というparameter
が作成されます。
type: date_time
のparameters
date_time
タイプparameter
を使用すると、ユーザーはフィルタで特定の日付を選択できます。利用できる最も深い粒度はYYYY/MM/DD
です。ユーザーは日付フィルタ値を1つだけ選択でき、フィルタ条件をis on the day
に設定して日付を選択するか、matches a user attribute
に設定して日付/時刻ユーザー属性を選択することができます。
例えば、date_selector
と呼ばれるdate_time
パラメーターがあります。
Exploreで選択すると、ユーザーは日付セレクターを使用して次のように1つの特定の日付を選択できます。
ユーザーがLookerのニュアンスの豊富な生成SQL日付フィルタロジック(is in the past
、is in range
など)を利用できるようにしたい場合は、テンプレート化されたフィルタのドキュメントページで詳細をご覧ください。
その他のリソース
テンプレートフィルタのドキュメントページには、論理式の例がさらに紹介され、
parameter
の使用例も示されています。ヘルプセンターは、Liquidの使用例の優れたリソースです。HTMLとリンクを使用したカスタムドリルのヘルプセンターの記事では、
link
およびhtml
パラメーターでLiquidを使ってカスタムドリルを作成する方法を紹介しています。ヘルプセンターのより強力なデータドリルの記事には、html
とlink
を使用したより高度なカスタムドリルソリューションを紹介しています。