假设您有许多用户共用一个探索,但他们的用例因所属团队或区域而异。每位用户只希望看到适用于其独特用例的字段。为了满足用户的多样化需求,您可以使用 LookML 优化来自定义现有视图和探索,而无需修改原始 LookML。然后,您可以将这些经过优化的视图和探索包含在单独的专用模型文件中,这些文件会根据用户的不同需求进行自定义。
本页提供了一个示例,展示了如何使用 LookML 精确化项自定义单个基本视图,并为贵公司中的两个不同团队创建不同的探索。其中还包含在经过优化的内容中隐藏和添加字段的示例。
成分
- LookML 视图
- LookML 探索
- LookML 模型文件
- LookML 优化
- 用于住宅精确化设置的通用 LookML 文件
- LookML
include
参数 - LookML
hidden
参数(适用于字段) - (可选)为查看者提供对特定模型的模型访问权限,由 Looker 管理员配置
前提条件
- 已配置的 LookML 模型
- 开发 LookML 的权限
- 体验在 LookML 中开发模型,包括熟悉优化和扩展等更高级的 LookML 概念
示例:基于同一基本视图创建多个自定义探索
假设您有一个销售探索,其中包含有关客户、购买交易、配送和位置的数据。贵公司的营销团队和物流团队都需要探索这些数据,但他们各自侧重于销售探索中的不同字段。
您希望在“探索”字段选择器中仅显示对每个团队都很有用的字段,以便更轻松地进行探索。为此,您可以为销售探索和基于它的 sales
视图定义两种不同的细化条件。营销团队的“探索”可以显示与客户和购买趋势相关的字段,而物流团队的“探索”可以显示与配送和地理位置相关的字段。您还可以根据每个团队的需求,向每个精细视图添加新字段。
目前,销售“探索”的字段选择器会显示销售视图中的所有字段:
字段选择器还会显示已联接的用户视图中的所有字段:
您可以优化 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} ;;
}
}
您创建的物流探索除了会包含已联接的用户视图中的字段外,还会包含销售视图下的新字段。由于物流团队不需要,因此隐藏了销售视图中的利润、促销价和平均促销价字段,以及用户“探索”中的年龄、电子邮件地址、名字、姓氏和创建时间字段。
现在,每个团队的“探索”页面都更贴合其具体需求。虽然这种方法需要事先进行一些额外的设置,但通过将核心数据集中在一个位置,您可以更轻松地查找和使用这些数据。