extensions(Explore 用)

このページでは、Explore の一部である extends パラメータについて説明します。

また、extends(ビュー用)パラメータのドキュメント ページで説明されているように、extends をビューの一部として使用することもできます。

ダッシュボード パラメータのドキュメント ページで説明されているように、extends は LookML ダッシュボードの一部として使用することもできます。

使用状況

探索: explore_name {
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.categoryorder_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 パラメータは追加型です。

次の例では、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 モデルのローカライズをご覧ください。