このページでは、ビューの一部である
extends
パラメータについて説明します。
extends
は、Explore の一部として使用することもできます(extends
(Explore 用)パラメータのドキュメント ページを参照)。
extends
は LookML ダッシュボードの一部として使用することもできます。詳しくは、ダッシュボード パラメータのドキュメントをご覧ください。
使用状況
extends: [view_name, view_name, ...]
}
階層
extends |
デフォルト値
なし許可
ビュー名のカンマ区切りのリストが含まれる角かっこ |
定義
extends
パラメータを使用すると、別のビューファイルの出発点として使用し、別のビューファイルのコンテンツと設定に基づいてビルドできます。競合が発生した場合、拡張ビューは独自の設定を使用し、拡張されたビューの設定をオーバーライドします。Looker が行う拡張について詳しくは、extended でコードを再利用するをご覧ください。
LookML の改良について確認する。
ビューまたは Explore の拡張は、複数のバージョンのビューまたは Explore を使用するシナリオに適しています。ただし、ビューや Explore を含む LookML ファイルを編集せずにそのまま変更を加える場合は、絞り込みを使用することをおすすめします。絞り込み内のextends
パラメータを使用することもできます。詳細とユースケースについては、LookML の絞り込みのドキュメントをご覧ください。
ビューを拡張する際は、拡張するビューに sql_table_name
パラメータを使用することが重要です(まだ存在していない場合)。sql_table_name
パラメータは、ビューによってクエリされるデータベース内のテーブルを定義します。どのビューでも、デフォルト値はビューの名前になります。sql_table_name
をまだ使用していない場合は、ビュー名と同じ値を指定します。
また、新しいビューファイルでは、include
パラメータを使用して、拡張するビューのファイル名を指定することも重要です。
永続的な派生テーブル(PDT)に基づいてビューを拡張しないでください。PDT の各拡張機能は、データベース内にテーブルの新しいコピーを作成します。この場合は、LookML の絞り込みを使用することをおすすめします。詳細とユースケースについては、LookML の絞り込みのドキュメントをご覧ください。
例
拡張できるビューファイルの例を次に示します。ビューの名前は looker_events
、ファイル名は events.view
です。
ファイル: events.view
view: looker_events {
sql_table_name: looker_db.events ;;
# The normal contents of the view follow
}
次に、新しいビューファイルを作成し、looker_events
ビューを拡張するビューを定義します。新しいファイルでは、include
パラメータを使用して、拡張するビューのファイル名を指定する必要があります。
ファイル: new_events.view
include: "events.view"
view: name_of_the_new_view {
extends: [looker_events]
measure: additional_measure {
type: count
}
# Additional things you want to add or change
}
次に、拡張した looker_events
ビューで定義されているすべてのディメンションとメジャーに加えて、新しいビューに表示される新しいメジャーを追加しました。
メタデータを使用してオブジェクトの拡張機能を表示する
Looker IDE で explore
パラメータまたは view
パラメータをクリックし、メタデータ パネルを使用してオブジェクトの拡張機能を確認するか、オブジェクトの拡張を確認できます。詳細については、LookML オブジェクトのメタデータのドキュメントをご覧ください。
注意点
一部のパラメータは追加型
多くの場合、拡張するオブジェクトと同じパラメータが拡張オブジェクトに含まれている場合、拡張オブジェクトの値が拡張オブジェクトのパラメータ値よりも優先されます。
拡張機能は、一部のパラメータに加算できます。つまり、拡張オブジェクトの値は、拡張オブジェクトの値と一緒に使用されます。
以下のパラメータは追加型です。
ディメンションとメジャーの場合:
ビューの場合:
extends
(複数チェーンextends
できます)
次の例では、carriers
ビューの name
ディメンションに link
パラメータが設定されています。
view: carriers {
sql_table_name: flightstats.carriers ;;
dimension: name {
sql: ${TABLE}.name ;;
type: string
link: {
label: "Google {{ value }}"
url: "http://www.google.com/search?q={{ value }}"
icon_url: "http://google.com/favicon.ico"
}
}
}
carriers
ビューを拡張する carriers_extended
ビューがあります。carriers_extended
ビューの name
ディメンションにも、link
パラメータのさまざまな設定内容があります。
include: "/views/carriers.view.lkml"
view: carriers_extended {
extends: [carriers]
dimension: name {
sql: ${TABLE}.name ;;
type: string
link: {
label: "Dashboard for {{ value }}"
url: "https://docsexamples.dev.looker.com/dashboards/307?Carrier={{ value }}"
icon_url: "https://www.looker.com/favicon.ico"
}
}
}
carriers_extended
ビューでは、2 つの link
パラメータは加算的であるため、name
ディメンションには両方のリンクが含まれます。このディメンションは Explore では次のようになります。
ローカライズのあるプロジェクト
オブジェクトを拡張する際、拡張機能にもローカライズ ルールが適用されることに注意してください。オブジェクトを拡張してから新しいラベルや説明を定義する場合は、プロジェクトのロケール文字列ファイルにローカライズ定義を指定する必要があります。詳細については、LookML モデルのローカライズをご覧ください。