本頁將重點介紹如何搭配使用 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」。
如要進一步瞭解如何自訂欄位對使用者的顯示方式,請參閱「變更『探索』選單和欄位挑選器」說明文件頁面。