使用 LookML 过滤探索数据

实验 1 小时 universal_currency_alt 免费 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
此内容尚未针对移动设备进行优化。
为获得最佳体验,请在桌面设备上访问通过电子邮件发送的链接。

GSP892

Google Cloud 自学实验的徽标

概览

Looker 是 Google Cloud 中的现代化数据平台,支持您以交互方式分析和可视化数据。您可以使用 Looker 展开深入数据分析、整合来自不同数据源的分析洞见,构建切实可行的数据驱动型工作流,以及创建自定义数据应用。

探索作为一种数据视图,是业务用户在 Looker 中自主开展数据探索的基础。在本实验中,您将学习如何通过对探索应用过滤条件,实现数据探索能力的进阶升级。

您将执行的操作

在本实验中,您将学习如何完成以下操作:

  • 使用 sql_always_wheresql_always_having 过滤器
  • 使用 always_filter
  • 使用 conditionally_filter

设置和要求

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。我们会为您提供新的临时凭据,让您可以在实验规定的时间内用来登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:如果您已有个人 Google Cloud 账号或项目,请不要在此实验中使用,以避免您的账号产生额外的费用。

如何开始实验并登录 Looker

  1. 准备就绪时,点击开始实验

    此时您会看到“实验详细信息”窗格,其中包含您在进行该实验时必须使用的临时凭据。

    如果该实验需要付费,系统会打开一个弹出式窗口供您选择支付方式。

    请注意,“实验详细信息”窗格中会显示实验凭据。您需要使用这些凭据来登录 Looker 实例以进行该实验。

    注意:如果您使用其他凭据,将会收到错误消息或承担相关费用
  2. 点击打开 Looker

  3. 电子邮件地址密码字段中输入提供的用户名和密码。

    用户名:

    {{{looker.developer_username | Username}}}

    密码:

    {{{looker.developer_password | Password}}} 重要提示:您必须使用本页面上“实验详细信息”窗格中的凭据。请勿使用您的 Google Cloud Skills Boost 凭据。如果您有自己的个人 Looker 账号,请不要在此实验中使用。
  4. 点击登录

    登录成功后,您会看到用于本实验的 Looker 实例。

探索过滤器的类型

如需过滤探索数据,您需要将默认的 WHEREHAVING 子句应用于该探索中生成的每个 SQL 查询。过滤探索数据的方法主要有三种:

  • sql_always_wheresql_always_having,两者功能相似,应用场景相同
  • always_filter
  • conditionally_filter

在后续部分中,您将了解每种过滤器的常见应用场景。

sql_always_where 和 sql_always_having 过滤器

sql_always_wheresql_always_having 都允许您为无法修改的探索添加过滤器。如果您希望始终从探索结果中排除某些数据行,此功能非常有用。

sql_always_where 过滤器用于在 SQL 查询中添加应用于维度WHERE 子句,而 sql_always_having 用于在 SQL 查询中添加应用于测量HAVING 子句。除了业务用户明确运行的查询之外,此限制还将应用于依赖于该探索的信息中心、预定的 Look 和嵌入的信息。

界面中不会显示过滤条件,因此业务用户不会知道数据已被过滤,除非他们有权查看生成的 SQL。如果您想过滤掉探索的某些值,例如测试数据或内部数据,此功能会很有用。

always_filter

使用 always_filter,您可以要求用户包含您定义的一组特定过滤条件。您还可以为这些过滤条件指定默认值。虽然用户可以更改查询的默认值,但无法完全移除过滤器。如果您希望用户始终按特定维度过滤数据(例如始终按订单状态或用户所在国家/地区过滤),以免一次性请求所有可能的数据,那么此功能会很有帮助。

always_filter 有一个子参数,用于使用与过滤维度和测量相同的 Looker 过滤表达式来定义特定过滤条件。filters 子参数中提供的维度用于标识用户必须提供值的维度,例如订单状态或用户所在国家/地区的具体值。

filters 子参数中提供的具体值是默认值,业务用户可以更改这些值。例如,默认订单状态为“已完成”,但业务用户可以将此值更改为“已退货”等其他状态。如需了解更多信息,请参阅 Looker 过滤表达式文档

conditionally_filter

always_filter 类似,conditionally_filter 会为探索前端添加可供业务用户操作的过滤器。通过 conditionally_filter 参数,您可以定义一组默认过滤条件,只要用户应用您所定义的第二个列表中的至少一个过滤条件,就可以覆盖这些默认过滤条件。

虽然用户确实可以更改过滤运算符和值,但除非对特定的替代字段应用过滤条件,否则无法移除过滤器本身。当您希望限制业务用户请求的数据量,同时为其提供一组可用于过滤数据的替代维度时,这一功能非常实用。

Conditionally_filter 有两个子参数:一个用于定义具体过滤条件,另一个用于定义可用于过滤数据的替代维度。例如,您可以使用 conditionally_filter 创建一个过滤条件,仅返回过去 1 年的数据,除非对用户 ID 或州/省维度应用了过滤条件。此功能通常用于防止用户意外创建大型查询,避免给数据库带来过高运行成本。

任务 1. 添加 always_filter

在本部分中,您将为“Order Items”(订单项)探索添加 always_filter 过滤器,要求用户必须按订单状态和用户所在国家/地区(电子商务数据集中的两个关键维度)进行过滤。

  1. 首先,在 Looker 界面的左下方,点击切换按钮进入开发模式

“开发模式”切换至开启状态。

  1. 接下来,点击开发标签页,然后选择 qwiklabs-ecommerce LookML 项目。

  2. qwiklab_ecommerce 项目中找到 training_ecommerce.model 文件。 请注意,“Order Items”(订单项)探索目前尚未配置任何过滤器。

training_ecommerce 模型已打开,其中显示了多行数据。

  1. 在定义 Order Items(订单项)探索的第一行下方,新增一行并输入 always_filter,后跟英文冒号 (:) 和大括号 ({}):
always_filter: {}

您将在这些大括号内添加代码来定义过滤条件。

training_ecommerce.model 数据中已添加“always_filter: {}”一行。

  1. 使用 filters 子参数定义过滤条件:order_items 表中的 status 默认值为“Complete”,users 表中的 country 默认值为“USA”,具体代码如下:
filters: [order_items.status: "Complete", users.country: "USA"] 注意: 请注意,虽然必须为这些过滤条件指定值,但业务用户可以为这些维度提供不同的值。

training_ecommerce.model 数据中已添加以下行:“filters: [order_items.status:"complete", users.country: "USA"]”

  1. 点击保存更改

  2. 点击 IDE 顶部文件标题旁边的光标,然后选择 Explore Order Items(探索订单项)。

training_ecommerce.model 文件的下拉菜单中突出显示了“Explore Order Items”(探索订单项)选项。

  1. 点击 Filters(过滤条件)旁边的箭头展开窗口,查看两个新过滤条件及其默认值:
  • Order Items Status(订单项状态),默认值为 Complete(已完成)
  • Users Country(用户所在国家/地区),默认值为 USA(美国)

列出了两个过滤条件:Order Items Status(订单项状态)等于 Complete(已完成),Users Country(用户所在国家/地区)等于 USA(美国)。

  1. Order Items(订单项)> Measures(测量)下,点击 Order Count(订单项数量)。

  2. 点击运行。现在,您应该会看到美国境内已完成订单项的数量。 请注意,您无法删除这些过滤条件,但可以修改它们。

过滤结果:订单项数量为 151, 200。

  1. 更改过滤条件。对于 Status(状态)过滤条件,将其更改为 Processing(正在处理)。对于 Country(国家/地区)过滤条件,将其更改为 UK(英国)。

过滤结果:订单项数量为 134。

  1. 点击运行。 订单项数量将随过滤条件一起更新!

  2. 返回到 training_ecommerce.model 文件。

提交更改并部署到生产环境

  1. 点击验证 LookML,然后点击提交更改并推送

  2. 添加提交消息,然后点击提交

  3. 最后,点击部署到生产环境

任务 2. 添加 sql_always_where 过滤器

在本部分中,您将为“Order Items”(订单项)探索添加 sql_always_where 过滤器,以仅包含 2021 年及之后的数据。如果您的数据库包含多年数据,而您只需要查询本年度及未来的数据,这一功能将非常实用。

  1. 返回到 qwiklab_ecommerce 项目中的 training_ecommerce.model 文件。

  2. 移除您在上一部分中创建的过滤器。

  3. 在定义 Order Items(订单项)探索的第一行下方,新增一行并输入 sql_always_where,后跟英文冒号 (:):

sql_always_where:

接下来,使用 created_date 表定义过滤条件,以仅包含 2021 年及之后的数据

  1. 在过滤器中添加以下代码:
sql_always_where: ${created_date} >= '2021-01-01' ;;

training_ecommerce 模型中的过滤条件:sql_always_where: ${created_date} >= '2021-01-01' ;;

  1. 点击保存更改

  2. 点击 IDE 顶部文件标题旁边的光标,然后选择 Explore Order Items(探索订单项)。

注意: 请注意,界面上不会显示任何过滤条件。除非用户查看其创建的查询的底层 SQL 语句,否则不会知道 sql_always_where 条件的存在。
  1. Order Items > Created Date(订单项 > 创建日期)下,点击 Date(日期)。

  2. Order Items(订单项)> Measures(测量)下,点击 Order Count(订单项数量)。

  3. 点击运行。此时您将看到,所有订单项的数据均来自 2021-01-01 及以后的日期!

订单项按“Created Date”(创建日期)和“Order Count”(订单项数量)这两个类别列出。

  1. 数据栏中,点击 SQL 标签页。 请注意,WHERE 子句中定义了针对所有数据的过滤条件。

SQL 标签页中的 WHERE 过滤条件设置为“(CAST(order_items.created_at AS DATE)) >= '2021-01-01'”

  1. 返回到 training_ecommerce.model 文件。

提交更改并部署到生产环境

  1. 点击验证 LookML,然后点击提交更改并推送

  2. 添加提交消息,然后点击提交

  3. 最后,点击部署到生产环境

任务 3. 添加 sql_always_having 过滤器

在本部分中,您将为“Order Items”(订单项)探索添加 sql_always_having 过滤器,防止用户查看包含多个商品的订单。该过滤器将用于排除探索结果中所有包含多个商品的订单。

  1. 返回到 qwiklab_ecommerce 项目中的 training_ecommerce.model 文件。

  2. 移除您在上一部分中创建的过滤器。

  3. 在定义 Order Items(订单项)探索的第一行下方,新增一行并输入 sql_always_having,后跟英文冒号 (:):

sql_always_having:
  1. 接下来,使用 order_item_count 测量定义过滤条件,仅包含订单项数量为 1 的数据:
sql_always_having: ${order_item_count} = 1 ;;

training_ecommerce 模型中的过滤条件:sql_always_having: ${order_item_count} = 1 ;;

  1. 点击保存更改

  2. 点击 IDE 顶部文件标题旁边的光标,然后选择 Explore Order Items(探索订单项)。

注意: 同样,界面上不会显示任何过滤条件。除非用户查看其创建的查询的底层 SQL 语句,否则不会知道 sql_always_having 条件的存在。
  1. Order Items(订单项)下,点击 Order ID(订单 ID)。

  2. Order Items(订单项)> Measures(测量)下,点击 Average Sale Price(平均售价)和 Order Item Count(订单项数量)。

  3. 点击运行。此时您将看到不同的订单及其对应的平均售价。可以看到,所有订单项数量均为 1!

订单项列表划分为三类:Order ID(订单 ID)、Order Item Count(订单项数量)和 Average Sale Price(平均售价)。

  1. 返回到 training_ecommerce.model 文件。

提交更改并部署到生产环境

  1. 点击验证 LookML,然后点击提交更改并推送

  2. 添加提交消息,然后点击提交

  3. 最后,点击部署到生产环境

任务 4. 添加 conditionality_filter

在本部分中,您将为“Order Items”(订单项)探索添加 conditionality_filter 过滤器,以便仅返回过去 3 年的数据,除非对用户 ID 或州/省维度应用了过滤条件。

  1. 返回到 qwiklab_ecommerce 项目中的 training_ecommerce.model 文件。

  2. 移除您在上一部分中创建的过滤器。

  3. 在定义 Order Items(订单项)探索的第一行下方,新增一行并输入 conditionally_filter,后跟英文冒号 (:) 和大括号 ({}):

conditionally_filter: {}

您将在这些大括号内添加代码来定义过滤条件。

  1. 添加 filters 子参数以定义此过滤条件。

此处,您希望订单创建日期为过去 3 年。同时,定义 unless 子参数作为可用于过滤的替代维度。此处选择用户 ID 和州/省维度:

filters: [created_date: "3 years"] unless: [users.id, users.state]

training_ecommerce 模型中使用的过滤条件:“filters: [created_date: "3 years"]”和“unless: [users.id, users.state]:

  1. 点击保存更改

  2. 点击 IDE 顶部文件标题旁边的光标,然后选择 Explore Order Items(探索订单项)。

  3. 点击 Filters(过滤条件)旁边的箭头展开窗口,查看您创建的条件过滤器。操作成功!

条件过滤器设置为“过去 3 年内”。

  1. 接下来,在 Order Items(订单项)下,点击 Order ID(订单 ID)。

  2. Order Items > Created Date(订单项 > 创建日期)下,点击 Year(年份)。

  3. Order Items(订单项)> Measures(测量)下,点击 Average Sale Price(平均售价)。

  4. 点击运行

此时您将看到,探索结果中的创建日期已按过去一年过滤。

过滤结果列出了过去一年创建的订单。

  1. 现在测试过滤器的条件性。在 Users(用户)下,将鼠标悬停在 State(州/省)上,然后点击过滤按钮。

“State”(州/省)类别中,过滤按钮突出显示。

  1. 在过滤窗口中,将 State(州/省)过滤条件设置为 California(加利福尼亚州)。

  2. 点击另一个过滤条件旁边的 X 将其删除。

“Created date = is in the past 3 years”(创建日期 = 过去 3 年内)过滤条件中,删除按钮突出显示。

  1. 再次点击运行

订单按三个类别列出:Order ID(订单 ID)、Created Year(创建年份)和 Average Sale Price(平均售价)。

  1. 最后,点击 State(州/省)旁边的 X 移除该过滤条件。您会看到 Created Date(创建日期)过滤条件自动重新出现。

“Create Date”(创建日期)过滤条件目前设置为“is in the past 3 years”(过去 3 年内)。

太棒了!您已成功掌握条件过滤器的工作原理。虽然您可以更改设置的默认值,但无法完全移除该过滤器,除非您应用了 unless 子参数中指定的至少一个过滤条件。

  1. 返回到 training_ecommerce.model 文件。

提交更改并部署到生产环境

  1. 点击验证 LookML,然后点击提交更改并推送

  2. 添加提交消息,然后点击提交

  3. 最后,点击部署到生产环境

点击“检查我的进度”以验证是否完成了以下目标: 为“Order Items”(订单项)探索添加 conditionally_filter 过滤器

恭喜!

在本实验中,您学习了如何使用 LookML 过滤探索数据。您首先使用了 always_filter 来要求按订单状态和用户所在国家/地区过滤数据。然后,您使用 sql_always_wheresql_always_having 过滤器按订单创建日期和订单项数量过滤数据。最后,您使用了 conditionally_filter 为“Order Items”(订单项)探索添加过滤器,以便仅返回过去 3 年的数据,除非对用户 ID 或州/省维度应用了过滤条件。

后续步骤/了解详情

Google Cloud 培训和认证

…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。

本手册的最后更新时间:2024 年 4 月 22 日

本实验的最后测试时间:2023 年 7 月 14 日

版权所有 2025 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。