extends (適用於探索)

本頁面是指 探索中的 extends 參數。

extends (適用於檢視區塊) 參數說明文件頁面所述,extends 也可做為檢視區塊的一部分。

如「資訊主頁參數」說明文件頁面所述,extends 也可用於 LookML 資訊主頁。

用量


explore: explore_name {
  extends: [explore_name, explore_name, ...]
}
階層
extends
預設值

接受
方括號,內含以半形逗號分隔的 Explore 名稱清單

定義

extends 參數可讓您以其他探索為起點,擴充該探索的內容和設定。如有任何衝突,擴充的探索項目會使用自己的設定,覆寫要擴充的探索項目設定。如要瞭解 Looker 如何執行這項操作,請參閱「使用 extends 重複使用程式碼」說明文件頁面。

查看 LookML 修訂內容。

如果想建立多個檢視區塊或探索版本,就很適合擴充檢視區塊或探索。但如果您的目標只是修改檢視區塊或「探索」,而不編輯包含該檢視區塊或「探索」的 LookML 檔案,則可能需要改用分類標籤。您也可以在精選項目中使用 extends 參數。如要瞭解詳情和使用案例,請參閱「LookML 修訂」說明文件頁面。

擴充「探索」時,請務必在要擴充的「探索」中加入 view_name 參數。view_name 參數會定義探索所依據的檢視區塊。預設值為「探索」的名稱。如果基本探索沒有指定 view_name,預設值為探索名稱。但這不適用於擴充基本探索的其他探索,因此我們會收到「不明檢視區塊」錯誤。為確保 Looker 使用正確的檢視檔案,我們需要使用 view_name 參數指定該檔案。由於任何擴充版本的「探索」都需要這個篩選器,因此最佳做法是將其新增至基本「探索」,以便在擴充「探索」時一律參照這個篩選器。

如果基本探索中沒有 view_name 參數,只要新增 view_name 參數,並指定與探索名稱相同的值即可。

您也可以在基礎和擴充的「探索」中使用 view_label 參數。view_label 參數會決定欄位挑選器中,資料檢視欄位的分組標籤 (如需範例,請參閱 view_label (適用於探索) 參數說明文件頁面)。如果未指定基本和擴充探索的 view_label,兩者都會使用基本探索的探索名稱。

範例

以下是在模型檔案中定義的「探索」範例:

explore: orders {
  view_name: orders
  view_label: "Orders"
  # The normal contents of the Explore follow
}

我們在這裡新增的「探索」會擴充先前定義的 orders「探索」:

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
}

如果擴充的探索項目是以擴充檢視畫面為基礎,您也需要使用 from 參數。在擴充的 Explore 中新增 from,並指派擴充檢視區塊的名稱。

explore: new_explore {
  extends: [orders]
  from: extended_orders_view
  #The normal contents of the Explore follow
}

使用 extends 為不同使用者限制欄位

擴充探索功能時,一個非常實用的用途是只向特定使用者顯示部分探索欄位。舉例來說,假設您有 products 探索,並提供已聯結資料表的所有可用欄位:

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 探索功能,並使用 fields 參數,指定只納入產品類別和退貨欄位:


explore: products_extended {
  extends: [products]
  fields: [products.category,order_items.returned_date]
}

products_extended 探索」只會顯示這兩個欄位:products.categoryorder_items.returned_date

跨模型擴充探索

通常會在模型檔案中定義探索。如要擴充探索,您可以在同一個模型檔案中定義擴充探索,如上述範例所示。

不過,如要跨多個模型擴充探索,您必須建立獨立的探索檔案做為基本檔案。在專屬檔案中定義基本探索後,您可以在模型檔案中加入探索檔案,並在模型檔案中擴充探索。

由於您可以在另一個探索檔案中加入探索檔案,因此如有需要,也可以在多個其他探索檔案中共用基本探索檔案。

探索檔案會監聽所屬模型的連線。如果模型設定的連線與探索檔案的父項模型不同,請務必留意這一點。如果包含模型連結的結構定義與父項模型連結的結構定義不同,可能會導致查詢錯誤。

使用中繼資料查看物件的擴充功能

您可以在 Looker IDE 中點選 exploreview 參數,並使用中繼資料面板查看物件上的任何擴充功能,或查看物件擴充的內容。詳情請參閱「LookML 物件的中繼資料」說明文件頁面。

注意事項

部分參數為加法

在許多情況下,如果擴充物件包含與擴充物件相同的參數,擴充物件的值會覆寫擴充物件的參數值。不過,部分參數的擴充功能可以加成,也就是說,擴充物件的值會與擴充物件的值一併使用。

下列 Explore 參數為加法

在下列範例中,aircraft_base 探索會使用 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 探索會擴充 aircraft_base 探索。此外,aircraft_extended 探索功能還有一個 join 參數,可加入 aircraft_engine_types 檢視畫面:


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 參數是加法,因此產生的探索會顯示基本探索中彙整的檢視表,以及彙整至擴充探索的檢視表。在這個情況下,aircraft_extended 探索包含 aircraft 檢視畫面、aircraft_types 檢視畫面和 aircraft_engine_types 檢視畫面。

已完成本地化的專案

擴充物件時,請注意本地化規則也適用於擴充功能。如果您要擴充物件,然後定義新的標籤或說明,請在專案的語言代碼字串檔案中提供本地化定義。詳情請參閱「將 LookML 模型本地化」說明文件頁面。