使用状況
value: "string"
export: none | override_required | override_optional
}
階層
constant |
デフォルト値
なし許可
|
定義
constant
パラメータでは LookML 定数を定義します。これにより、プロジェクト全体で再利用できる値を指定できます。定数は、モデルが受け入れられる場所であればどこでも、LookML ダッシュボード要素の model
と explore
を使用して参照できるため、LookML コードの繰り返しを減らすことができます。
定数は、プロジェクト マニフェスト ファイルで定義する必要があります。定数は、@{constant_name}
構文を使用してプロジェクト全体で使用できます。
constant
の export
サブパラメータを使用して、参照するファイルが別のプロジェクトにインポートされるときに、デベロッパーが定数の値をオーバーライドするかどうかを指定できます。
export
constant
の export
サブパラメータを使用すると、定数を参照するファイルが他のプロジェクトにインポートされるときに、定数を使用できます。
デフォルトでは、定数を参照するインポート ファイルは、インポートされたプロジェクトのマニフェスト ファイルで指定された値を使用します。export
パラメータでは、デベロッパーがプロジェクトのインポートに使用する定数に新しい値を指定することで、定数の値をオーバーライドするかどうかを指定します。export
パラメータには次の値を使用できます。
none
:export
のデフォルト値。定数の値は、インポートするプロジェクトでオーバーライドできません。インポートするプロジェクトは、インポートされたプロジェクトのマニフェスト ファイルで指定された定数値を使用します。override_optional
: 定数の値は、必要に応じてインポート プロジェクトでオーバーライドできます。インポートするプロジェクトのマニフェスト ファイルで値が指定されていない場合は、インポートされたプロジェクトの元の値が使用されます。override_required
: インポートするプロジェクトは、インポートされたプロジェクトのマニフェスト ファイルで元々指定されていた定数値をオーバーライドする必要があります。インポートするプロジェクトで新しい定数値が指定されていない場合、Looker はエラーを表示します。
定数は、元々定義されているプロジェクトのファイルでのみ使用できます。そのため、インポートしたファイルがプロジェクトで定義されている定数は、インポートされたファイルでのみ使用でき、インポート プロジェクトで定義されたファイルでは使用できません。
インポートするプロジェクトのファイルに定数を使用する場合は、インポートするプロジェクトのマニフェスト ファイルで新しい定数を定義する必要があります。この方法で定義した定数は、インポート プロジェクトで定義されたファイルでのみ使用できます。
定数を参照するファイルを別のプロジェクトにインポートする場合、インポートするプロジェクトのマニフェスト ファイルで local_dependency
または remote_dependency
の override_constant
サブパラメータを使用すると、export
が override_optional
または override_required
に設定されている定数に新しい値を指定できます。
プロジェクトをインポートする際の定数のオーバーライドの詳細と例については、他のプロジェクトからのファイルのインポートに関するドキュメント ページをご覧ください。
例
以下に、constant
パラメータを使用してプロジェクト全体で使用できる値を定義する方法の例を示します。
constant
パラメータで Explore にラベルを付ける
UI で San Francisco Users と San Francisco Orders のラベルが付いた 2 つの Explore を作成するとします。そのためには、定数値 city
をプロジェクトのmanifest.lkml
ファイルで"San Francisco"
定義します。
constant: city {
value: "San Francisco"
}
この定数は、構文 @{city}
を使用して、文字列を受け付ける任意の場所で参照できます。この例では、次の例のように users
と orders
の Explore を定義できます。label
パラメータの値として "@{city} Users"
と "@{city} Orders"
を指定します。
explore: users {
label: "@{city} Users"
}
explore: orders {
label: "@{city} Orders"
}
この例では、デフォルトの [Users] ラベルと [Orders] ラベルではなく、[Explore] メニューと Explore のタイトルに [San Francisco Users] と [San Francisco Orders] が表示されています。
sql_table_name
パラメータを定数とともに使用する
スキーマ 02349_sfo
のテーブルに基づいて複数のビューを作成するとします。02349_sfo
の値を複数回指定しなくても済むように、次のように、プロジェクトの manifest.lkml
ファイルに schema
という名前の定数を作成します。
constant: schema {
value: "02349_sfo"
}
次に、sql_table_name
パラメータの値として @{schema}.view_name
を指定することで、02349_sfo
スキーマに基づいてビューを作成できます。
view: users {
sql_table_name: @{schema}.users ;;
}
これにより、スキーマ 02349_sfo
の users
テーブルに基づく Users というビューが作成されます。
Liquid 変数と HTML を定数で使用する
負のデータ値をかっこ内と赤いフォントで表示したいとします。この形式を LookML 定数の値として設定すると、Liquid 変数と HTML を使用して 1 回だけ形式を指定できます。その定数をフィールドに適用するときはいつでも、定数を参照できます。
たとえば、この形式をフィールドに適用する定数 negative_format
を作成できます。
constant: negative_format {
value: "{% dynamic if value < 0 %}<p style=\"color:red; \">({{rendered_value}})</p>{% dynamic else %} {{rendered_value}} {% dynamic endif %}"
}
これにより定数 negative_format
が作成され、負のデータ値を赤色のフォントで囲む必要があります。この形式をデータセットのディメンションとメジャーに適用するには、html
パラメータを使用します。
たとえば、type: sum
という Total Amount メジャーを作成し、html
パラメータの値として @{negative_format}
を指定できます。
measure: total_amount {
type: sum
value_format_name: usd
sql: ${amount} ;;
html: @{negative_format} ;;
}
表内の [Total Amount] メジャーの負の値は、negative_format
定数の定義で指定されている形式になります。赤のフォントはかっこで囲まれています。
LookML ダッシュボードでの定数の使用
LookML ダッシュボードにダッシュボード要素を定義する場合は、LookML 定数を使用して、モデルと、要素のベースとなっている Explore を定義できます。
たとえば、プロジェクトの manifest.lkml
ファイルで定数 model_name
と explore_name
を定義したとします。
constant: model_name {
value: "thelook"
}
constant: explore_name {
value: "orders"
}
ダッシュボード ファイルでは、モデル thelook
と Explore の orders
に基づくダッシュボード要素について、model
の値を "@{model_name}"
に、explore
の値を "@{explore_name}"
に設定できます。
たとえば、縦棒グラフの要素を対象に LookML を編集しているとします。ダッシュボード ファイルでは、次のように model
パラメータと explore
パラメータの値を指定できます。
- dashboard: dashboard_name
title: "dashboard title"
layout: newspaper
elements:
- title: Element Title
name: element_name
model: "@{model_name}"
explore: "@{explore_name}"
type: looker_column
知っておくべきこと
定数定義内での定数の参照
定数を定義するときは、プロジェクトのマニフェスト ファイル内で定義されている他の定数を参照します。定数 city
がすでに宣言されているとします。
constant: city {
value: "San Francisco"
}
その後、上記の例の city
定数を参照する定数 state
を宣言できます。
constant: city_state {
value: "@{city}, California"
}
上記で宣言された定数 state
は、文字列「カリフォルニア州サンフランシスコ」に解決されます。
定数構文のエスケープ
定数の構文に似た文字列を記述するものの、その文字列を定数として評価しない場合は、バックスラッシュのエスケープ文字 \` after the
@` を使用して定数構文をエスケープできます。例:
dimension: id {
type: string
label: "@\{id}"
sql: ${TABLE}.id
}
上記の例では、label
パラメータは、id
定数を評価してその値を出力するのではなく、文字列 @{id} を id
ディメンションのラベルとして表示します。
角かっこが閉じられていなければ定数参照は評価されません。その場合、定数構文をエスケープする必要はありません。したがって、以下の例の @{id
は定数として評価されません。
dimension: id {
type: string
label: "@{id"
sql: ${TABLE}.id
}