home ユーザーガイド 基本情報 ヘルプセンター ドキュメンテーション コミュニティ トレーニング 認証
menu
close
settings
Looker keyboard_arrow_down
language keyboard_arrow_down
English
Français
Deutsch
日本語
search
print
Looker documentation will be moving to cloud.google.com on August 22, 2022!
All the information you rely on will be migrated and all docs.looker.com URLs will be redirected to the appropriate page.
parameter

使用方法

view: view_name {
  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フィルタロジック(containsdoes not containなど)を利用したい場合には、テンプレート化されたフィルタのドキュメントページで詳細をご覧ください。

parameter名は次の条件を満たしている必要があります。

また、parameterと一緒に使えるフィールドパラメーターもたくさんあります(default_valueallowed_valueなど)。allowed_valueフィールドパラメーターを使用した例については、次のサブセクション許容値の指定を参照してください。

データにアンダースコア付きの値がある場合は、default_valueparameterと一緒に使用しないでください。

許容値の指定

デフォルトでは、parameterパラメーターで作成されたフィルタにユーザーが任意の単一の値を入力できます。ユーザーが選択できる特定の値を制限したい場合は、allowed_valueを使用します。許容値では、ユーザーが選択できるラベルと値のペアを指定します。

allowed_valueパラメーターは、ユーザーが選択できるフィルタオプションを設定できるという点で、suggestionsパラメーターに似ています。ただし、allowed_valueパラメーターには、元のSQLクエリに注入する値をわかりやすいラベルにマッピングする追加機能があります。

例えば、次のように、ユーザーに3つのフィルタオプションを提供するparameterが生成されます。

parameter: number_of_results { type: string allowed_value: { label: "Less than 500" value: "< 500" } allowed_value: { label: "Less than 10,000" value: "< 10000" } allowed_value: { label: "All Results" value: "> 0" } }

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クエリに直接挿入します。

パラメーターが参照されているビューファイルと異なるビューファイルで定義されている場合は、必ずパラメーター名をそのビュー名でスコープします(例:view_name.parameter_name)。

この例では、ユーザーが—sale_pricecost、またはprofitを合計するデータベース列を選択できるように、item_to_add_upという名前のparameterを作成します。

parameter: item_to_add_up { type: unquoted allowed_value: { label: "Total Sale Price" value: "sale_price" } allowed_value: { label: "Total Cost" value: "cost" } allowed_value: { label: "Total Profit" value: "profit" } }

次に、dynamic_sumというメジャーを作成します。

このメジャーは、sqlパラメーターで{% parameter parameter_name %}Liquid変数を参照します。これにより、item_to_add_upから選択した値が挿入され、参照される列名が変更されます。次に、メジャーは、参照された列で計算を実行します。

measure: dynamic_sum { type: sum sql: ${TABLE}.{% parameter item_to_add_up %} ;; value_format_name: "usd" }

その結果、以下のように、1つのメジャーで表されるさまざまな集計を表示するインタラクティブなExploreが表示されます。

{% parameter parameter_name %}変数でparameterを使用するその他の例については、ヘルプセンターのパラメーターフィールドの使用例をご覧ください。

parameter_name._parameter_valueで論理ステートメントを作成する

また、parameter_name._parameter_valueLiquid変数を持つ論理Liquid{% %}ステートメントを使用して、基になるSQLクエリにparameterの値を注入することもできます。

パラメーターが参照されているビューファイルと異なるビューファイルで定義されている場合は、必ずパラメーター名をそのビュー名でスコープします(例:view_name.parameter_name._parameter_value)。

parameter_name._parameter_valueでは、SQLのCASE WHENステートメントと同様に、可能なパラメーター値を使用して複雑な論理ステートメントを作成できます。

Liquid条件ステートメントでは、次の構文を使用します。

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の値に基づいてディメンションの値を決定します。

parameter: date_granularity { type: unquoted allowed_value: { label: "Break down by Day" value: "day" } allowed_value: { label: "Break down by Month" value: "month" } } dimension: date { sql: {% if date_granularity._parameter_value == 'day' %} ${created_date} {% elsif date_granularity._parameter_value == 'month' %} ${created_month} {% else %} ${created_date} {% endif %};; }

最終結果はインタラクティブな日付フィールドであり、ユーザーはこれを変更して、さまざまな時間枠で結果を表示できます。

HTMLの例

またparameter_name._parameter_valuehtmlパラメーターと共に使用して、インタラクティブな結果フォーマットを作成することもできます。

上記の例に従い、よく似た{% if %}論理ステートメントでhtmlパラメーターを追加することにより、ユーザーが選択した日付の粒度に応じてテキストの色を変更できます。

parameter: date_granularity { type: unquoted allowed_value: { label: "Break down by Day" value: "day" } allowed_value: { label: "Break down by Month" value: "month" } } dimension: date { sql: {% if date_granularity._parameter_value == 'day' %} ${created_date} {% elsif date_granularity._parameter_value == 'month' %} ${created_month} {% else %} ${created_date} {% endif %};; html: {% if date_granularity._parameter_value == 'day' %} <font color="darkgreen">{{ rendered_value }}</font> {% elsif date_granularity._parameter_value == 'month' %} <font color="darkred">{{ rendered_value }}</font> {% else %} <font color="black">{{ rendered_value }}</font> {% endif %};; }

rendered_valueLiquid変数は、htmlステートメントでLiquidオブジェクトタグ{{ }}と組み合わせて使用され、Lookerのデフォルト書式に従うフィールド値を結果に出力します。

最終結果は、ユーザーが選択した値に依存するインタラクティブな条件付きフォーマットです。

HTMLのLiquidインタラクティブ性のその他の例については、htmlドキュメントページとHTMLを使用して色とフォントを変更する方法のヘルプセンターの記事をご覧ください。

parameterタイプ

1つのparameterパラメーターに多くのフィールドタイプを割り当てることができます。このページで、いくつかの特殊なケースについて詳しく説明されています。

type: stringparameters

type: stringparameterを使用する場合、parameter_name._parameter_value Liquid変数では、parameterの値を一重引用符および二重引用符の両方で囲む必要があります。これにより、一重引用符がSQLに送信され、値がストリング値として識別されます。次の例を参照してください。

parameter: date_granularity { type: string allowed_value: { value: "Day" } allowed_value: { value: "Month" } } dimension: date { label_from_parameter: date_granularity sql: {% if date_granularity._parameter_value == "'Day'" %} ${created_date}::VARCHAR {% elsif date_granularity._parameter_value == "'Month'" %} ${created_month}::VARCHAR {% else %} NULL {% endif %} ;; }

さらに、labeltype: stringparameterの値を含める場合は、二重引用符の前に\文字を付ける必要があります。

label: "{% if test._parameter_value == \"'foo'\" %} 'SUCCESS' {% else %} 'FAIL' {% endif %}"

type: yesnoparameters

type: yesnoparameterを使用する場合、parameter_name._parameter_value Liquid変数では、SQLダイアレクトに応じてtrueに評価されるSQL文が生成されます。したがって、論理Liquidステートメントではtype: yesnoparametersを使用しないことをお勧めします。{% if yesno_parameter._parameter_value == 'Yes' %}{% if yesno_parameter._parameter_value %}も正しく機能しません。

type: unquotedparameters

unquotedタイプはtype: stringと似ていますが、parameterの値が{% parameter %} Liquid変数に挿入されるときに引用符が付きません。これは、(上記の例のように)列名やテーブル名など、正しく機能させるためには引用符で囲むことができない値をSQLに挿入する場合に役立ちます。

引用符で囲まれていない値をSQLに直接挿入すると、意図しないSQLアクションが発生する可能性があります。これに対処する目的で、type: unquotedparameter値はA〜Zおよび0〜9の文字に限定されています(スペースやその他の特殊文字は使用できません)。

例えば、次のLookMLでは、引用符で囲まれていない値を生成するtable_nameというparameterが作成されます。

parameter: table_name { type: unquoted }

type: date_timeparameters

date_timeタイプparameterを使用すると、ユーザーはフィルタで特定の日付を選択できます。利用できる最も深い粒度はYYYY/MM/DDです。ユーザーは日付フィルタ値を1つだけ選択でき、フィルタ条件をis on the dayに設定して日付を選択するか、matches a user attributeに設定して日付/時刻ユーザー属性を選択することができます。

例えば、date_selectorと呼ばれるdate_timeパラメーターがあります。

parameter: date_selector { type: date_time description: "Use this field to select a date to filter results by." }

Exploreで選択すると、ユーザーは日付セレクターを使用して次のように1つの特定の日付を選択できます。

ユーザーがLookerのニュアンスの豊富な生成SQL日付フィルタロジック(is in the pastis in rangeなど)を利用できるようにしたい場合は、テンプレート化されたフィルタのドキュメントページで詳細をご覧ください。

その他のリソース

Top