本頁將重點介紹如何搭配使用 Looker 的 parameter 欄位和一些接受 Liquid 變數的 label 子參數。
本頁面的範例需要瞭解 Liquid。如要瞭解如何在 Looker 中使用 Liquid,請參閱 Liquid 變數參考資料說明文件頁面。
使用 view_label 做為動態檢視區塊名稱
Looker 的 view_label 參數用於在「探索」欄位挑選器中,以更符合情境且容易記住的名稱,將維度分組。如要進一步瞭解檢視畫面標籤,請參閱 view_label (適用於欄位) 說明文件頁面。
為維度指派相同的 view_label,可簡化使用者的探索。清楚且說明詳盡的欄位群組,可確保使用者能找到所需的資料。
範例:使用 Liquid view_label 撰寫 DRY (不要重複) 程式碼
舉例來說,假設您在名為「Inventory Items」的「探索」中,有歸類在「Finance & Accounting」view_label 底下的欄位:
dimension: cost {
view_label: "Finance & Accounting"
type: number
sql: ${TABLE}.COST ;;
}
dimension: cost_ex_vat {
view_label: "Finance & Accounting"
type: number
sql: ${TABLE}.COST_EX_VAT ;;
}
dimension: cost_eur {
view_label: "Finance & Accounting"
type: number
sql: ${TABLE}.COST_EUR ;;
}
如果想將使用者的「財務與會計」view_label變更為「The Money Zone」,該怎麼做?使用 Liquid 可避免重複重寫程式碼。
您可以使用 Looker 的 parameter 欄位,建立所需檢視畫面名稱的虛擬變數類型。在 parameter 中變更檢視畫面名稱後,所有欄位都會更新。
parameter: view_label {
type: string
default_value: "The Money Zone"
}dimension: cost {
view_label: "{% parameter view_label %}"
type: number
sql: ${TABLE}.COST ;;
}
dimension: cost_ex_vat {
view_label: "{% parameter view_label %}"
type: number
sql: ${TABLE}.COST_EX_VAT ;;
}
dimension: cost_eur {
view_label: "{% parameter view_label %}"
type: number
sql: ${TABLE}.COST_EUR ;;
}
注意:如不想在選單中顯示引號,請將 parameter 設為 type:unquoted,且 default_value 必須是不含空格的字串,例如 The_Money_Zone。如果參數是 type:string,系統會顯示引號。
動態欄位標籤
您可能有多個使用者群組,對欄位名稱的解讀方式不同。舉例來說,部分使用者可能會將毛利率稱為營業利益率,而其他使用者則可能會將毛利率稱為標準利潤率,具體取決於他們的用途。
根據您結合使用者屬性和 Liquid 變數的方式,不同使用者看到的欄位名稱可能不同。
範例:不同使用者屬性的標籤
以上述範例為基礎,您可以讓「毛利率」欄位對部分使用者顯示為「標準利潤」,對其他使用者顯示為「營業利潤」,以配合不同的業務邏輯。下列 LookML 會運用使用者屬性和 Liquid 變數。
dimension: gross_margin {
label: "{% if _user_attributes['customer'] == 'A' %} Standard Margin
{% elsif _user_attributes['customer'] == 'B' %} Operating Margin
{% else %} Gross Margin
{% endif %}"
type: number
value_format_name: usd
sql: ${sale_price} - ${inventory_items.cost} ;;
}
根據 LookML,欄位「Gross Margin」在「User A」的「探索」欄位挑選器中會顯示為「Operating Margin」。
根據 LookML,欄位「Gross Margin」在「User B」的「探索」欄位挑選器中會顯示為「Standard Margin」。
這個模式也可用於以使用者為單位建立低階本地化內容,如下一個範例所示。
範例:多個探索的自訂欄位名稱
這個範例結合了先前範例的技術,建立「探索」功能,其中的欄位標籤會因使用者所在區域而異。
在這個範例中,有兩個區域團隊 (Finance East 和 Finance West) 使用名為「Company Sales」的探索。兩個團隊都需要在查詢中使用「總利潤」和「總收益」指標:
measure: total_profit {
label: "{{ _explore._name}}: Profit"
type: sum
sql: ${profit} ;;
}
measure: total_revenue {
label: "{{ _explore._name}}: Revenue"
type: sum
sql: ${sale_price} ;;
value_format_name: usd
}
不過,每個團隊都希望欄位名稱能反映團隊的區域。
開發人員可以讓 Finance East 的使用者看到一種欄位名稱,而 Finance West 的使用者看到另一種。他們可以使用下列 Liquid 參數,透過 DRY LookML 達成此目的:
from 參數會指定探索的基礎檢視區塊。explore_label 用於顯示兩個別名探索的相同名稱 (「公司銷售額」),為兩個團隊建立相同的探索體驗。
{{ _explore._name}} Liquid 變數,根據團隊所在區域變更指標標籤,擷取並顯示探索名稱。探索:
explore: Finance_East{
from: order_items
label: "Company Sales"
view_label: "The Money Zone"
}
explore: Finance_West{
from: order_items
label: "Company Sales"
view_label: "The Money Zone"
}
探索時,Finance East 團隊會看到「總利潤」欄位顯示為「Finance_East: Profit」,而「總收益」欄位則顯示為「Finance_East: Revenue」。
探索時,Finance West 團隊會看到「總利潤」欄位顯示為「Finance_West: Profit」,而「總收益」欄位則顯示為「Finance_West: Revenue」。
如要進一步瞭解如何自訂欄位對使用者的顯示方式,請參閱「變更『探索』選單和欄位挑選器」說明文件頁面。