假设您有许多用户共用一个“探索”,但他们的用例因团队或区域而异。每个用户都希望只查看适用于其独特用例的字段。为了满足用户的多样化需求,您可以使用 LookML 优化来自定义现有视图和探索,而无需修改原始 LookML。然后,您可以将这些经过优化的视图和探索添加到单独的专用模型文件中,这些文件是针对用户定制的不同需求
本页提供了一个示例,展示了如何使用 LookML 精确化项自定义单个基本视图,并为贵公司中的两个不同团队创建不同的探索。此外,它还提供在优化内容中隐藏和添加字段的示例。
原料
- LookML 视图
- LookML 探索
- LookML 模型文件
- LookML 优化
- 用于住宅精确化设置的通用 LookML 文件
- LookML
include
参数 - LookML
hidden
参数(适用于字段) - (可选)由 Looker 管理员为查看者配置对特定模型的模型访问权限
前提条件
- 已配置的 LookML 项目
- 拥有开发 LookML 的权限
- 拥有在 LookML 中开发模型的经验,包括熟悉优化和扩展等更高级的 LookML 概念
示例:基于同一基本视图创建多个自定义探索
假设您有一个销售探索,其中包含有关客户、购买、运费和位置的数据。虽然贵公司的营销和物流团队都需要探索这些数据,但他们分别关注“销售”探索中的不同字段。
您想要在“探索”字段选择器中只显示对每个团队有用的字段,以便更轻松地进行探索。为此,您可以针对“销售”探索和作为其依据的 sales
视图定义两种不同的优化。营销团队的“探索”可以显示与客户和购买趋势相关的字段,而物流团队的“探索”可以显示与配送和地理位置相关的字段。您还可以为每个精细视图添加特定于各个团队需求的新字段。
目前,销售探索的字段选择器会显示销售视图中的所有字段:
字段选择器还会显示联接的 Users 视图中的所有字段:
您可以优化 sales
视图,按照以下步骤创建两个单独的探索,其中仅包含营销团队和物流团队感兴趣的字段:
创建一个新的 LookML 文件(在本例中为名为
base_analysis.lkml
的文件),其中包含基于sales
视图和联接的users
视图的销售探索的 LookML。由于您希望使用基本sales
探索及其对应的视图为每个团队创建自定义探索,因此您可以在一个位置(例如在单个文件中)定义所有共享字段和属性。# base_analysis.lkml include: "views/sales.view.lkml" include: "views/inventory_items.view.lkml" include: "views/users.view.lkml" explore: sales { join: inventory_items { type: left_outer sql_on: ${sales.inventory_item_id} = ${inventory_items.id} ;; relationship: many_to_one } join: users { type: left_outer sql_on: ${sales.user_id} = ${users.id} ;; relationship: many_to_one } }
创建两个单独的文件,以存储您要为每个小组定义的销售探索。您可以将文件命名为
marketing_analysis.lkml
和logistics_analysis.lkml
。下方的 LookML 代码会优化之前所示base_analysis.lkml
文件中定义的基础sales
“探索”卡片,以便在名为marketing_analysis.lkml
的新文件中添加营销团队的销售分析标签。include: "/base/base_analysis.lkml"
语句使base_analysis.lkml
文件的内容可供在marketing_analysis.lkml
文件中引用。# marketing_analysis.lkml include: "/base/base_analysis.lkml" explore: +sales { label: "Sales Analysis for Marketing Team" }
为每个团队创建一个单独的模型文件,例如
ecommerce_marketing.model
和ecommerce_logistics.model
。通过为每个团队将不同的优化结果存储在单独的专用模型中,您可以多次优化同一组视图和探索,而不会覆盖您为一个团队的使用情形所做的自定义设置。如需了解详情,请参阅 LookML 优化文档页面。使用
include
参数,在ecommerce_marketing.model
模型中添加marketing_analysis.lkml
,并在ecommerce_logistics.model
模型中添加logistics_analysis.lkml
。根据需要向
marketing_analysis.lkml
和logistics_analysis.lkml
文件添加任何其他优化。例如,您可以为每个团队的经过优化的探索隐藏不必要的字段,并添加新字段。
您可以选择让 Looker 管理员为每个专用模型配置模型访问权限,以向特定团队提供“探索”级访问权限。
隐藏经过优化的探索中不必要的字段
您可以按如下方式在 marketing_analysis.lkml
文件中优化 sales
视图,以隐藏“已退货”“已发货”“已送达”和“已创建”维度组以及“状态”维度,因为营销团队不使用:
# marketing_analysis.lkml
include: "/base/base_analysis.lkml"
explore: +sales {
label: "Sales Analysis for Marketing Team"
}
view: +sales
dimension_group: returned {
hidden: yes
}
dimension_group: shipped {
hidden: yes
}
dimension_group: delivered {
hidden: yes
}
dimension_group: created {
hidden: yes
}
dimension: status {
hidden: yes
}
}
同样,您可以在 logistics_analysis.lkml
文件中使用以下 LookML 来隐藏物流团队不需要的字段(如利润、促销价和平均售价):
# logistics_analysis.lkml
include: "/base/base_analysis.lkml"
explore: +sales {
label: "Sales Analysis for Logistics Team"
}
view: +sales {
dimension: profit {
hidden: yes
}
dimension: sale_price {
hidden: yes
}
measure: average_sale_price {
hidden: yes
}
}
由于物流团队不需要查看客户的个人信息(例如姓名、年龄或电子邮件地址),因此您还可以在 logistics_analysis.lkml
文件中为联接的 users
视图添加优化,以便在“探索”工具中隐藏这些字段:
view: +users {
dimension: age {
hidden: yes
}
dimension: email {
hidden: yes
}
dimension: first_name {
hidden: yes
}
dimension: last_name {
hidden: yes
}
dimension_group: created {
hidden: yes
}
}
向经过优化的探索添加新字段
您还可以在经过优化的 sales
视图中创建营销团队感兴趣的新字段。例如,您可以在经过优化的 sales
视图中添加平均销售价格、总销售价格和每位用户的平均支出字段:
您可以使用以下 LookML 将这些字段添加到 marketing_analysis.lkml
文件的优化 sales
视图中:
# marketing_analysis.lkml
view: +sales {
measure: average_sale_price {
type: average
value_format_name: usd
sql: ${sale_price} ;;
drill_fields: [detail*]
}
measure: total_sale_price {
type: sum
value_format_name: usd
sql: ${sale_price} ;;
drill_fields: [detail*]
}
measure: average_spend_per_user {
type: number
value_format_name: usd
sql: 1.0 * ${total_sale_price} / NULLIF(${users.count},0) ;;
drill_fields: [detail*]
}
}
您创建的营销探索除了会包含已联接的用户视图中的字段外,还会包含销售视图下的新字段。已退货、已发货、已送达和已创建维度组以及状态维度处于隐藏状态,因为营销团队不需要这些维度。
同样,您可以为物流团队创建对其有用的新字段,例如送货时间分桶和平均送货时间:
您可以使用以下 LookML 将这些字段添加到 logistics_analysis.lkml
文件的优化 sales
视图中:
# logistics_analysis.lkml
view: +sales {
dimension: shipping_time_buckets {
case: {
when: {
sql: ${shipping_time} <= 7 ;;
label: "One Week"
}
when: {
sql: ${shipping_time} > 7 AND ${shipping_time} <= 14 ;;
label: "Two Weeks"
}
when: {
sql: ${shipping_time} > 14 ;;
label: "Over Two Weeks"
}
else: "Note Shipped"
}
}
measure: average_shipping_time {
type: average
value_format_name: decimal_4
sql: ${shipping_time} ;;
}
}
您创建的物流探索除了会包含已联接的用户视图中的字段外,还会包含销售视图下的新字段。销售视图中的利润、促销价和平均售价字段以及用户探索中的年龄、电子邮件、名字、姓氏和已创建字段均处于隐藏状态,因为物流团队不需要这些字段。
现在,每个团队都有更符合其具体需求的“探索”页面。虽然这种方法需要预先进行一些设置,但通过将核心数据集中保存在一个位置,您可以更轻松地查找和使用这些数据。