このページでは、Explore の一部である
extendsパラメータについて説明します。
extendsは、extends(ビューの場合)パラメータのドキュメント ページで説明されているように、ビューの一部としても使用できます。ダッシュボード パラメータのドキュメント ページで説明されているように、
extendsは LookML ダッシュボードの一部としても使用できます。
用途
explore: explore_name {
extends: [explore_name, explore_name, ...]
}
|
階層
extends |
デフォルト値
なし
許可
角かっこで囲まれた、Explore 名のカンマ区切りリスト
|
定義
extends パラメータを使用すると、別の Explore のコンテンツと設定を基に、その Explore を出発点として構築できます。競合がある場合、拡張する Explore は独自の設定を使用し、拡張される Explore の設定をオーバーライドします。Looker でのコードの再利用方法について詳しくは、extends によるコードの再利用のドキュメント ページをご覧ください。
LookML の絞り込みをご覧ください。
ビューや Explore の拡張は、複数のバージョンのビューや Explore を使用する場合に最適です。ただし、目標がビューや Explore を含む LookML ファイルを編集せずに単にビューや Explore を変更をすることである場合は、代わりに絞り込みを使用することをおすすめします。絞り込みでextendsパラメータを使用することもできます。詳細とユースケースについては、LookML の絞り込みのドキュメント ページをご覧ください。
Explore を拡張する場合は、拡張する Explore に view_name パラメータを設定することが重要です。view_name パラメータは、Explore のベースとなるビューを定義します。デフォルト値はエクスプローラの名前です。ベースの Explore に view_name が指定されていない場合、デフォルトで Explore 名になります。ただし、ベースの Explore を拡張している他の Explore ではこの方法は機能しないため、「不明なビュー」エラーが発生します。Looker が正しいビューファイルを使用するには、view_name パラメータを使用して指定する必要があります。これは Explore の拡張バージョンで必要になるため、Explore が拡張されるたびに一貫して参照されるように、ベース Explore に追加することをおすすめします。
ベースの Explore に view_name パラメータがまだない場合は、view_name パラメータを追加して、Explore の名前と同じ値を指定するだけで済みます。
ベース Explore と拡張 Explore で view_label パラメータを使用することもできます。view_label パラメータは、フィールド ピッカーでビューのフィールドがグループ化されるラベルを決定します(例については、view_label(Explore 用)パラメータのドキュメント ページをご覧ください)。ベース Explore と拡張 Explore の view_label を指定しない場合、両方ともベース Explore の Explore 名を使用します。
例
モデルファイルで定義されている Explore の例を次に示します。
explore: orders {
view_name: orders
view_label: "Orders"
# The normal contents of the Explore follow
}
ここでは、前に定義した orders Explore を拡張する新しい Explore を追加します。
explore: name_of_the_new_explore {
extends: [orders]
view_label: "Order Information"
# The additional things you want to add or change
# in the new Explore
}
拡張ビューに基づく Explore を拡張する場合は、from パラメータも使用する必要があります。拡張する Explore に from を追加し、拡張されるビューの名前を割り当てます。
explore: new_explore {
extends: [orders]
from: extended_orders_view
#The normal contents of the Explore follow
}
extends を使用してユーザーごとにフィールドを制限する
Explore を拡張する非常に便利なユースケースは、Explore のフィールドのサブセットのみを特定のユーザーに表示することです。たとえば、結合されたテーブルのすべての利用可能なフィールドを含む products Explore があるとします。
explore: products {
view_name: products
from: products
join: inventory_items {
type: left_outer
sql_on: ${products.id}=${inventory_items.product_id} ;;
relationship: many_to_one
}
join: order_items {
type: left_outer
sql_on: ${order_items.inventory_item_id}=${inventory_items.id} ;;
relationship: one_to_one
}
}
商品カテゴリと返品のみを表示する必要があるチームがある場合は、products Explore を拡張し、fields パラメータを使用して、商品カテゴリと返品のフィールドのみを含めるように指定できます。
explore: products_extended {
extends: [products]
fields: [products.category,order_items.returned_date]
}
products_extended Explore には、products.category と order_items.returned_date の 2 つのフィールドのみが表示されます。
モデル間で Explore を拡張する
Exploreは通常、モデルファイル内で定義されます。Explore を拡張する場合は、前の例のように、同じモデルファイルで拡張する Explore を定義するだけです。
ただし、複数のモデルで Explore を拡張する場合は、ベースファイルとして使用する別の Explore ファイルを作成する必要があります。独自のファイルでベース Explore を定義したら、Explore ファイルをモデルファイルにインクルードし、モデルファイルで Explore を拡張できます。
Explore ファイルを別の Explore ファイルに含めることができるため、必要に応じて、ベース Explore ファイルを他の複数の Explore ファイル間で共有することもできます。
Explore ファイルは、自身を含んでいるモデルの接続をリッスンします。Explore ファイルの親モデルとは異なる接続を使って構成されているモデルに Explore ファイルを含める場合は、この点を考慮してください。Explore ファイルを含むモデルの接続スキーマが親モデルの接続スキーマと異なる場合、クエリエラーが発生する可能性があります。
メタデータを使用したオブジェクトの拡張機能の表示
Looker IDE で explore パラメータや view パラメータをクリックすると、メタデータ パネルを使ってオブジェクトの拡張機能を確認したり、拡張したオブジェクトを確認したりできます。詳細については、LookML オブジェクトのメタデータのドキュメント ページをご覧ください。
注意点
一部のパラメータは追加型
多くの場合、拡張するオブジェクトに拡張されるオブジェクトと同じパラメータが含まれていると、拡張するオブジェクトの値は、拡張されるオブジェクトのパラメータ値をオーバーライドします。ただし、一部のパラメータでは拡張機能を追加型にすることが可能です。つまり、拡張するオブジェクトの値は、拡張されるオブジェクトの値と組み合わせて使用されます。
次の Explore パラメータは追加型です。
access_filteraggregate_tableextends(複数のextendsを連結できます)joinquery
次の例では、aircraft_base Explore は join パラメータを使用して aircraft ビューを aircraft_types ビューに結合します。
explore: aircraft_base {
view_name: aircraft
label: "Aircraft"
join: aircraft_types {
type: left_outer
sql_on: ${aircraft.aircraft_type_id} = ${aircraft_types.aircraft_type_id} ;;
relationship: many_to_one
}
}
また、aircraft_extended Explore は aircraft_base Explore を拡張します。また、aircraft_extended Explore には、aircraft_engine_types ビューを結合する join パラメータがあります。
explore: aircraft_extended {
extends: [aircraft_base]
label: "Aircraft Extended"
join: aircraft_engine_types {
type: left_outer
sql_on: ${aircraft.aircraft_engine_type_id} = ${aircraft_engine_types.aircraft_engine_type_id} ;;
relationship: many_to_one
}
}
join パラメータは加法的であるため、結果の Explore には、ベース Explore に結合されたビューと、拡張 Explore に結合されたビューが表示されます。この場合、aircraft_extended Explore には aircraft ビュー、aircraft_types ビュー、aircraft_engine_types ビューが含まれます。

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