如要提高 LookML 專案的效率並簡化維護作業,可以使用 LookML set
參數。set
參數可讓您在 fields
參數或鑽取欄位中,將專案中可能經常重複的欄位分組。如果您使用集合來分組重複欄位,則可在模型中建立單一位置,維護該欄位群組。
這個頁面包含下列範例,說明如何使用 LookML 集合,提升 LookML 專案的效率和可維護性:
- 為多項指標新增相同的下鑽欄位:定義下鑽欄位,方便使用者在下鑽至匯總資料時,查看他們經常想看的詳細資料。
- 在「探索」中納入或省略一組欄位:為使用者自訂「探索」體驗,並簡化使用者可在欄位挑選器中選擇的欄位清單。
食材
- LookML
set
參數 - LookML
fields
參數 (適用於 Explore) - LookML
drill_fields
參數 (適用於欄位) - LookML
drill_fields
參數 (適用於檢視)
必要條件
範例:將相同的下鑽欄位新增至多項指標
假設您希望使用者在「探索」、「Look」或資訊主頁中看到銷售指標時,能夠向下鑽研查看更精細的使用者詳細資料,因此在「探索」使用者介面中選取「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*]
}
與「計數」指標相同,當使用者在探索使用者介面中選取「訂單數」、「總銷售價格」或「平均銷售價格」的值時,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]
}
如要定義標籤為「Orders Without User Data」(沒有使用者資料的訂單) 的「Orders」(訂單) 探索,請將 users
檢視畫面加入 orders
探索。將 LookML 程式碼 fields: [ALL_FIELDS*, -users.user_info*]
新增至 orders
「探索」,納入 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
}
}
由於 user_details
集會從「探索」中排除,語法為 -users.user_details*
,位於「探索」的 orders
參數中,因此「沒有使用者資料的訂單」探索中的「訂單」檢視畫面會從「探索」欄位挑選器中省略 users_user.info
集列出的欄位。fields
您可以重複使用 user_info
集,從探索使用者介面中省略這些欄位,以供加入 users
檢視區塊的任何其他探索使用。如要變更 user_info
集的任何項目 (例如新增或移除欄位),只要更新 user_info
集即可。