このページでは、ビューの一部である
extendsパラメータについて説明します。
extendsは、extends(Explore 用)パラメータのドキュメント ページで説明されているように、Explore の一部としても使用できます。
extendsは、ダッシュボード パラメータのドキュメント ページで説明されているように、LookML ダッシュボードの一部としても使用できます。
用途
view: view_name {
extends: [view_name, view_name, ...]
}
|
階層
extends |
デフォルト値
なし
許可
ビュー名のカンマ区切りリストを含む角かっこ
|
定義
extends パラメータを使用すると、別のビューファイルを起点として、そのビューファイルの内容と設定を基に構築できます。競合がある場合は、拡張ビューが独自の設定を使用し、拡張されるビューの設定をオーバーライドします。Looker でこの処理を行う方法について詳しくは、拡張機能でのコードの再利用をご覧ください。
LookML の絞り込みをご覧ください。
ビューや Explore の拡張は、複数のバージョンのビューや Explore を使用する場合に最適です。ただし、目標がビューや Explore を含む LookML ファイルを編集せずに単にビューや Explore を変更をすることである場合は、代わりに絞り込みを使用することをおすすめします。絞り込みで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 ビューには、link パラメータの name ディメンションがあります。
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 ビューには、link パラメータに異なる設定を伴う name ディメンションもあります。
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 ディメンションには両方のリンクが含まれます。

ローカライズのあるプロジェクト
オブジェクトを拡張する場合は、拡張にもローカライズ ルールが適用されることに注意してください。オブジェクトを拡張して新しいラベルや説明を定義する場合は、プロジェクトのロケール文字列ファイルにローカライズ定義を指定する必要があります。詳細については、LookML モデルのローカライズのドキュメント ページをご覧ください。