您可以使用 LookML set
參數,讓 LookML 專案更有效率且更容易維護。set
參數可讓您在 fields
參數或鑽研欄位中,將專案中經常重複出現的欄位分組。如果您使用集合來分組重複欄位,則會在模型中建立一個位置,用於維護該組欄位。
本頁提供以下範例,說明如何使用 LookML 集合,讓 LookML 專案更有效率且更易於維護:
- 在多個指標中加入相同的鑽研欄位:針對使用者在鑽研匯總資料時通常想查看的詳細資料,定義鑽研欄位。
- 在「探索」中加入或略過一組欄位:為使用者自訂「探索」體驗,並簡化使用者在欄位挑選器中可選擇的欄位清單。
食材
- LookML
set
參數 - LookML
fields
參數 (適用於 Explore) - LookML
drill_fields
參數 (適用於欄位) - LookML
drill_fields
參數 (適用於檢視畫面)
事前準備
範例:將相同的細查欄位新增至多個評量
假設您希望使用者在「探索」、「Look」或資訊主頁中查看銷售指標時,能夠深入查看更精細的使用者詳細資料,因此在「探索」UI 中選取「Count」評量指標的值時,會針對「ID」、「City」、「State」和「Country」欄位開啟查詢:
您可以建立名為 user_details
的集合,其中包含 id
、city
、state
和 country
欄位,然後在多個指標中參照這些欄位,供使用者深入查看:
set: user_details {
fields: [id, city, state, country]
}
user_details
集合可用於定義 count
評估資料的鑽研欄位:
measure: count {
type: count
drill_fields: [user_details*]
}
在這個範例中,語法 [set_name*]
用於指定在您深入查看「Count」度量單位時,user_details
中的欄位會顯示在查詢結果中。
接著,您可以重複使用這個集合來建立其他鑽研欄位。舉例來說,您可以將 LookML 程式碼 drill_fields: [user_details*]
新增至 order_count
、total_sale_price
和 average_sale_price
指標:
measure: order_count {
view_label: "Orders"
type: count_distinct
description: "Number of orders"
sql: ${order_id} ;;
drill_fields: [user_details*]
}
measure: total_sale_price {
type: sum
value_format_name: usd
sql: ${sale_price} ;;
drill_fields: [user_details*]
}
measure: average_sale_price {
type: average
value_format_name: usd
sql: ${sale_price} ;;
drill_fields: [user_details*]
}
與「計數」評估指標相同,當使用者在「探索」UI 中為「訂單計數」、「總銷售價格」或「平均銷售價格」選取值時,Looker 會開啟一個視窗,其中包含「ID」、「城市」、「州」和「國家/地區」欄位的查詢。
如果您想變更鑽研欄位的任何內容 (例如新增或移除欄位),只需更新 user_details
集合即可。
您也可以在檢視畫面的 drill_fields
參數中參照集合,為該檢視畫面中尚未在欄位層級指定鑽研欄位的所有資料欄定義鑽研欄位。
範例:在探索中加入或略過一組欄位
假設您想為使用者簡化「探索」欄位挑選器,排除對使用者不重要的欄位。
舉例來說,假設您有一個 users
檢視畫面,其中包含客戶的相關資訊,包括「ID」、「First Name」、「Last Name」、「Email」和「Age」欄位,以及「City」、「State」、「Country」和「Zip」欄位等位置欄位。users
檢視畫面已與 orders
探索畫面連結:
如果您想從「探索」中排除使用者的「名字」、「姓氏」、「電子郵件」、「年齡」和「性別」欄位,該怎麼做?您可以建立名為 user_info
的集合,列出要從「訂單」探索功能中排除的欄位:
user_info
集合的 LookML 如下所示:
set: user_info {
fields: [first_name, last_name, email, age, gender]
}
如要定義標示為「無使用者資料的訂單」的「訂單」探索,請將 users
檢視畫面與 orders
探索畫面彙整。將 LookML 程式碼 fields: [ALL_FIELDS*, -users.user_info*]
新增至 orders
Explore,即可納入所有欄位,除了 users
檢視畫面 user_info
集的欄位:
explore: orders {
fields: [ALL_FIELDS*, -users.user_info*]
label: "Orders Without User Data"
join: users {
type: left_outer
sql_on: ${orders.user_id} = ${users.id} ;;
relationship: many_to_one
}
}
由於 orders
探索的 fields
參數中含有 -users.user_details*
語法,因此 user_details
集合會從探索中排除,沒有使用者資料的訂單探索中的「訂單」檢視畫面會從探索欄位挑選器中省略 users_user.info
集合中列出的欄位。
您可以重複使用 user_info
集合,針對已加入 users
檢視畫面的任何其他探索,從探索 UI 中省略這些欄位。如果您想變更 user_info
集合的任何內容,例如新增或移除欄位,只需更新 user_info
集合即可。