在标签中使用 Liquid 的趣味方法

本页重点介绍了将 Looker 的 parameter 字段与接受 Liquid 变量的某些 label 子参数搭配使用的一些实用方法。

若要了解本页中的示例,您需要了解 Liquid。如需了解如何在 Looker 中使用 Liquid,请访问我们的 Liquid 变量参考文档页面。

使用 view_label 作为动态视图名称

Looker 的 view_label 参数用于在“探索”字段选择器中将维度按更具上下文且易于用户理解的名称分组。如需详细了解 View 标签,请访问 view_label(适用于字段)文档页面。

为维度分配相同的 view_label 可为用户简化探索功能。清晰、描述性强的字段组可确保用户能够找到所需的数据。

示例:使用 Liquid view_label 编写 DRY(避免重复)代码

例如,假设您在名为“Inventory Items”(商品目录项)的探索中,有在 view_label Finance & Accounting(财务和会计)下整理的字段:

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 Finance & Accounting 更改为 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 ;; }

“Inventory Items Explore”(商品目录探索)字段选择器,其中显示了“Cost”(费用)、“Cost Eur”(费用,欧元)和“Cost Ex Vat”(费用,不含增值税),这些字段均在视图标签“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,用户 A 的“探索”字段选择器中,毛利润字段显示为运营利润

根据 LookML,用户 B 的“探索”字段选择器中,毛利润字段显示为标准利润

此模式还可用于按用户创建低级本地化,如下例所示。

示例:为多个探索自定义字段名称

此示例结合了前面示例中介绍的技术,创建了一个“探索”页面,其中字段标签会因用户所在的地区而异。

在此示例中,有两个区域团队(东部财务团队和西部财务团队)使用名为“公司销售”的探索。这两个团队都需要在查询中使用总利润总收入衡量指标:

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

    如需了解自定义字段在用户面前的显示方式的其他方法,请访问更改“探索”菜单和字段选择器文档页面。