本頁面是指 探索中的
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.category 和 order_items.returned_date。
跨模型擴充探索
通常會在模型檔案中定義探索。如要擴充探索,您可以在同一個模型檔案中定義擴充探索,如上述範例所示。
不過,如要跨多個模型擴充探索,您必須建立獨立的探索檔案做為基本檔案。在專屬檔案中定義基本探索後,您可以在模型檔案中加入探索檔案,並在模型檔案中擴充探索。
由於您可以在另一個探索檔案中加入探索檔案,因此如有需要,也可以在多個其他探索檔案中共用基本探索檔案。
探索檔案會監聽所屬模型的連線。如果模型設定的連線與探索檔案的父項模型不同,請務必留意這一點。如果包含模型連結的結構定義與父項模型連結的結構定義不同,可能會導致查詢錯誤。
使用中繼資料查看物件的擴充功能
您可以在 Looker IDE 中點選 explore 或 view 參數,並使用中繼資料面板查看物件上的任何擴充功能,或查看物件擴充的內容。詳情請參閱「LookML 物件的中繼資料」說明文件頁面。
注意事項
部分參數為加法
在許多情況下,如果擴充物件包含與擴充物件相同的參數,擴充物件的值會覆寫擴充物件的參數值。不過,部分參數的擴充功能可以加成,也就是說,擴充物件的值會與擴充物件的值一併使用。
下列 Explore 參數為加法:
access_filteraggregate_tableextends(您可以將多個extends串連在一起)joinquery
在下列範例中,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 模型本地化」說明文件頁面。