用途
constant: constant_name { 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: インポートしたプロジェクトは、インポートしたプロジェクトのマニフェスト ファイルで最初に指定された定数値をオーバーライドする必要があります。インポートしたプロジェクトで新しい定数値が指定されていない場合は、エラーが表示されます。
定数は、元々定義されたプロジェクトのファイルでのみ使用できます。そのため、ファイルをインポートしたプロジェクトで定義された定数は、インポートしたファイルでのみ使用でき、インポート元のプロジェクトで定義されたファイルでは使用できません。
インポートしたプロジェクトのファイルで定数を使用する場合は、インポートしたプロジェクトのマニフェスト ファイルに新しい定数を定義します。この方法で定義された定数は、インポートしたプロジェクトで定義されたファイルでのみ使用できます。
定数を参照するファイルを別のプロジェクトにインポートする場合、インポートするプロジェクトのマニフェスト ファイルで local_dependency または remote_dependency の override_constant サブパラメータを使用できます。これにより、export が override_optional または override_required に設定されている定数に新しい値を指定できます。
詳細と、プロジェクトのインポートで定数をオーバーライドする例については、他のプロジェクトからのファイルのインポートに関するドキュメント ページをご覧ください。
例
constant パラメータを使用して、プロジェクト全体で使用できる値を定義する例を次に示します。
constant パラメータを使用して Explore にラベルを付ける
たとえば、UI で San Francisco Users と San Francisco Orders というラベルの 2 つの Explore を作成するとします。これを行うには、プロジェクトの manifest.lkml ファイル内の値 "San Francisco" で定数 city を定義します。
constant: city {
value: "San Francisco"
}
この定数は、文字列が受け入れられているプロジェクトの任意の部分で構文 @{city} を使用して参照できます。この例では、以下のように label パラメータの値として "@{city} Users" と "@{city} Orders" を指定して、users と orders の Explore を定義できます。
explore: users {
label: "@{city} Users"
}
explore: orders {
label: "@{city} Orders"
}
この例では、Looker で Explore メニューと Explore のタイトルに、デフォルトの Users と Orders ラベルではなく 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: "{% if value < 0 %}<p style='color:red;'>({{rendered_value}})</p>{% else %} {{rendered_value}} {% endif %}"
}
これにより、負のデータ値が赤いフォントで、括弧で囲まれるように指定する定数 negative_format が作成されます。html パラメータを使用して、この形式をデータセットのディメンションと measure に適用できます。
たとえば、type: sum の Total Amount measure を作成し、html パラメータの値として @{negative_format} を指定できます。
measure: total_amount {
type: sum
value_format_name: usd
sql: ${amount} ;;
html: @{negative_format} ;;
}
表では、Total Amount measure の負の値が、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 は文字列「San Francisco, California」に解決されます。
定数のエスケープ構文
定数構文に似た文字列を記述したいが、その文字列を定数として評価したくない場合は、@ 文字の後にバックスラッシュ エスケープ文字 \ を使用して定数構文をエスケープできます。次に例を示します。
dimension: id {
type: string
label: "@\{id}"
sql: ${TABLE}.id
}
この例では、label パラメータは、id 定数を評価してその値を出力するのではなく、id ディメンションのラベルとして文字列 @{id} を表示します。
角かっこが閉じられていない場合、定数参照は評価されません。この場合、定数構文をエスケープする必要はありません。したがって、次の例の @{id は定数として評価されません。
dimension: id {
type: string
label: "@{id"
sql: ${TABLE}.id
}