extensions(ビューの場合)

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

extends は、Explore の一部として使用することもできます(extends(Explore 用)パラメータのドキュメント ページを参照)。

extends は LookML ダッシュボードの一部として使用することもできます。詳しくは、ダッシュボード パラメータのドキュメントをご覧ください。

使用状況

ビュー: view_name {
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 オブジェクトのメタデータのドキュメントをご覧ください。

注意点

一部のパラメータは追加型

多くの場合、拡張するオブジェクトと同じパラメータが拡張オブジェクトに含まれている場合、拡張オブジェクトの値が拡張オブジェクトのパラメータ値よりも優先されます

拡張機能は、一部のパラメータに加算できます。つまり、拡張オブジェクトの値は、拡張オブジェクトの値と一緒に使用されます。

以下のパラメータは追加型です。

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