假设您的许多用户都共用一个探索功能,但根据他们的团队或区域,使用不同的应用场景。每个用户都希望只查看适用于其独特用例的字段。为了满足用户的多样化需求,您可以使用 LookML 优化来自定义现有视图和探索,而无需修改原始 LookML。然后,您可以根据用户的不同需求,将这些经过优化的视图和“探索”添加到单独的专用模型文件中。
本页面提供了一个示例,展示了如何使用 LookML 优化来自定义单个基本视图,并为公司内的两个不同团队创建不同的探索。以及有关如何在优化内容中隐藏和添加字段的示例。
所需要素
- LookML 视图
- LookML 探索
- LookML 模型文件
- LookML 优化
- 用于住房优化的通用 LookML 文件
- LookML
include
参数 - LookML
hidden
参数(适用于字段) - (可选)由 Looker 管理员配置对查看者特定模型的模型访问权限
前提条件
- 已配置的 LookML 项目
- 开发 LookML 的权限
- 体验使用 LookML 开发模型的经验,包括熟悉优化和extends等更高级的 LookML 概念
示例:从同一基本视图创建多个自定义探索
假设您有一个“销售”探索,其中包含有关客户、购买交易、配送和地理位置的数据。贵公司的营销和物流团队都需要对此数据进行探索,但他们分别会关注“销售”探索中的不同字段。
您希望在“探索”字段选择器中仅显示对每个团队有用的字段,以便更轻松地探索。为此,您可以为“销售”探索及其所基于的 sales
视图定义两种不同的优化条件。营销团队的“探索”部分可以显示与客户和购买趋势相关的字段,而物流团队的“探索”部分可以显示与配送和地点相关的字段。您还可以针对每个团队的具体需求向每个经过优化的数据视图添加新字段。
目前,“销售”探索的字段选择器会显示“销售”视图中的所有字段:
字段选择器还会显示联接的 Users 视图中的所有字段:
您可以优化 sales
视图,创建两个仅包含营销和物流团队感兴趣的字段的单独探索:
创建一个新的 LookML 文件(在本示例中为名为
base_analysis.lkml
的文件),其中包含用于销售探索的 LookML,该探索基于sales
视图和联接的users
视图。由于您想使用基础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
的新文件中添加“Sales Analysis for Marketing Team”标签。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} ;;
}
}
除了已加入的用户视图中的字段外,您创建的“物流探索”中还将包含销售视图下的新字段。由于物流团队不需要,因此隐藏了“销售”数据视图中的“利润”“促销价”和“平均售价”字段。
现在,每个团队都有一个更根据自身具体需求量身定制的“探索”功能。虽然这种方法需要一些额外的前期设置,但通过将核心数据保存在一个位置,您可以更轻松地查找和使用。