在標籤中使用 Liquid 的趣味方式

本頁將重點介紹如何搭配使用 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 ;; }

廣告空間項目「探索」欄位挑選器,顯示「The Money Zone」檢視畫面標籤下整理的「費用」、「費用 (歐元)」和「費用 (不含加值稅)」。

注意:如不想在選單中顯示引號,請將 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」

    如要進一步瞭解如何自訂欄位對使用者的顯示方式,請參閱「變更『探索』選單和欄位挑選器」說明文件頁面。