本页重点介绍了将 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 ;; }
注意:如果您不希望菜单中显示引号,则必须将 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。
如需了解自定义字段在用户面前的显示方式的其他方法,请访问更改“探索”菜单和字段选择器文档页面。