このページでは、Explore の一部である
extends
パラメータについて説明します。また、
extends
(ビュー用)パラメータのドキュメント ページで説明されているように、extends
をビューの一部として使用することもできます。ダッシュボード パラメータのドキュメント ページで説明されているように、
extends
は LookML ダッシュボードの一部として使用することもできます。
使用状況
extends: [explore_name, explore_name, ...]
}
階層
extends |
デフォルト値
なし許可
角かっこ: Explore 名のカンマ区切りリスト |
定義
extends
パラメータを使用すると、別の Explore のコンテンツと設定を基に、もう一方の Explore を開始点として使用できます。競合が発生した場合、拡張 Explore は独自の設定を使用し、拡張されている Explore の設定をオーバーライドします。Looker でのこの処理の詳細については、extends
を使用したコードの再利用をご覧ください。
LookML の改良について確認する。
ビューまたは Explore の拡張は、複数のバージョンのビューまたは Explore を使用するシナリオに適しています。ただし、ビューや Explore を含む LookML ファイルを編集せずにそのまま変更を加える場合は、絞り込みを使用することをおすすめします。絞り込み内のextends
パラメータを使用することもできます。詳細とユースケースについては、LookML の絞り込みのドキュメントをご覧ください。
Explore を拡張する場合は、拡張する Explore に view_name
パラメータが含まれていることが重要です。view_name
パラメータは、Explore の基になるビューを定義します。デフォルト値は、Explore の名前です。基本の Explore で view_name
が指定されていない場合、デフォルトで Explore 名が使用されます。しかし、ベース Explore を拡張している他の Explore では動作しないため、「unknown view」エラーが発生します。Looker で適切なビューファイルを使用するには、view_name
パラメータを使用して指定する必要があります。これはどの Explore の拡張バージョンでも必要になるため、Explore が拡張されるたびに一貫して参照されるように、Explore を基本 Explore に追加することをおすすめします。
ベース Explore にまだ view_name
パラメータがない場合は、view_name
パラメータを追加して、Explore の名前と同じ値を指定します。
ベースで view_label
パラメータを使用して Explore を拡張することもできます。view_label
パラメータは、フィールド選択ツールでビューのフィールドをグループ化するラベルを決定します(例については、view_label
(Explore の場合)パラメータのドキュメント ページを参照)。ベースに view_label
を指定し、Explore を拡張しない場合、どちらもベースの 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
パラメータも使用する必要があります。from
を拡張の Explore に追加して、拡張ビューの名前を割り当てます。
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_filter
aggregate_table
extends
(複数チェーンextends
できます)join
query
次の例では、aircraft_base
Explore が join
パラメータを使用して、aircraft
ビューと aircraft_types
ビューを結合します。
explore: aircraft {
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]
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 モデルのローカライズをご覧ください。