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

本页重点介绍了如何将 Looker 的 parameter 字段与接受 Liquid 变量的某些 label 子形参搭配使用。

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

使用 view_label 作为动态视图名称

Looker 的 view_label 参数用于在“探索”字段选择器中将维度分组在一起,并使用更具情境化且更易于理解的名称。如需详细了解视图标签,请访问 view_label(针对字段)文档页面。

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

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

例如,假设您在名为“库存商品”的探索中,将字段整理到“财务和会计”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 财务与会计更改为理财天地,该怎么做?使用 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 MarginUser A 的“探索”字段选择器中显示为 Operating Margin

根据 LookML,字段 Gross Margin用户 B 的“探索”字段选择器中显示为 Standard Margin

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

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

此示例结合了之前示例中的技术,创建了一个“探索”功能,其字段标签会因用户所在区域而异。

在此示例中,有两个区域团队(Finance East 和 Finance West)使用名为 Company Sales 的 Explore。两个团队都需要在查询中使用总利润总收入指标:

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:利润”,并将“总收入”字段显示为“Finance_West:收入”。

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