extends(ビューの場合)

このページでは、ビューの一部である 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 オブジェクトのメタデータのドキュメント ページをご覧ください。

注意点

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

多くの場合、拡張するオブジェクトに拡張されるオブジェクトと同じパラメータが含まれていると、拡張するオブジェクトの値は、拡張されるオブジェクトのパラメータ値をオーバーライドします

ただし、一部のパラメータでは拡張機能を追加型にすることが可能です。つまり、拡張するオブジェクトの値は、拡張されるオブジェクトの値と組み合わせて使用されます。

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

次の例の 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 モデルのローカライズのドキュメント ページをご覧ください。