准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Add the conditionally_filter filter to the Order Items Explore
/ 100
Looker 是 Google Cloud 中的现代化数据平台,支持您以交互方式分析和可视化数据。您可以使用 Looker 展开深入数据分析、整合来自不同数据源的分析洞见,构建切实可行的数据驱动型工作流,以及创建自定义数据应用。
探索作为一种数据视图,是业务用户在 Looker 中自主开展数据探索的基础。在本实验中,您将学习如何通过对探索应用过滤条件,实现数据探索能力的进阶升级。
在本实验中,您将学习如何完成以下操作:
sql_always_where 和 sql_always_having 过滤器always_filter
conditionally_filter
请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。
此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。我们会为您提供新的临时凭据,让您可以在实验规定的时间内用来登录和访问 Google Cloud。
为完成此实验,您需要:
准备就绪时,点击开始实验。
此时您会看到“实验详细信息”窗格,其中包含您在进行该实验时必须使用的临时凭据。
如果该实验需要付费,系统会打开一个弹出式窗口供您选择支付方式。
请注意,“实验详细信息”窗格中会显示实验凭据。您需要使用这些凭据来登录 Looker 实例以进行该实验。
点击打开 Looker。
在电子邮件地址和密码字段中输入提供的用户名和密码。
用户名:
密码:
点击登录。
登录成功后,您会看到用于本实验的 Looker 实例。
如需过滤探索数据,您需要将默认的 WHERE 或 HAVING 子句应用于该探索中生成的每个 SQL 查询。过滤探索数据的方法主要有三种:
sql_always_where 和 sql_always_having,两者功能相似,应用场景相同always_filterconditionally_filter在后续部分中,您将了解每种过滤器的常见应用场景。
sql_always_where 和 sql_always_having 都允许您为无法修改的探索添加过滤器。如果您希望始终从探索结果中排除某些数据行,此功能非常有用。
sql_always_where 过滤器用于在 SQL 查询中添加应用于维度的 WHERE 子句,而 sql_always_having 用于在 SQL 查询中添加应用于测量的 HAVING 子句。除了业务用户明确运行的查询之外,此限制还将应用于依赖于该探索的信息中心、预定的 Look 和嵌入的信息。
界面中不会显示过滤条件,因此业务用户不会知道数据已被过滤,除非他们有权查看生成的 SQL。如果您想过滤掉探索的某些值,例如测试数据或内部数据,此功能会很有用。
使用 always_filter,您可以要求用户包含您定义的一组特定过滤条件。您还可以为这些过滤条件指定默认值。虽然用户可以更改查询的默认值,但无法完全移除过滤器。如果您希望用户始终按特定维度过滤数据(例如始终按订单状态或用户所在国家/地区过滤),以免一次性请求所有可能的数据,那么此功能会很有帮助。
always_filter 有一个子参数,用于使用与过滤维度和测量相同的 Looker 过滤表达式来定义特定过滤条件。filters 子参数中提供的维度用于标识用户必须提供值的维度,例如订单状态或用户所在国家/地区的具体值。
filters 子参数中提供的具体值是默认值,业务用户可以更改这些值。例如,默认订单状态为“已完成”,但业务用户可以将此值更改为“已退货”等其他状态。如需了解更多信息,请参阅 Looker 过滤表达式文档。
与 always_filter 类似,conditionally_filter 会为探索前端添加可供业务用户操作的过滤器。通过 conditionally_filter 参数,您可以定义一组默认过滤条件,只要用户应用您所定义的第二个列表中的至少一个过滤条件,就可以覆盖这些默认过滤条件。
虽然用户确实可以更改过滤运算符和值,但除非对特定的替代字段应用过滤条件,否则无法移除过滤器本身。当您希望限制业务用户请求的数据量,同时为其提供一组可用于过滤数据的替代维度时,这一功能非常实用。
Conditionally_filter 有两个子参数:一个用于定义具体过滤条件,另一个用于定义可用于过滤数据的替代维度。例如,您可以使用 conditionally_filter 创建一个过滤条件,仅返回过去 1 年的数据,除非对用户 ID 或州/省维度应用了过滤条件。此功能通常用于防止用户意外创建大型查询,避免给数据库带来过高运行成本。
在本部分中,您将为“Order Items”(订单项)探索添加 always_filter 过滤器,要求用户必须按订单状态和用户所在国家/地区(电子商务数据集中的两个关键维度)进行过滤。
接下来,点击开发标签页,然后选择 qwiklabs-ecommerce LookML 项目。
在 qwiklab_ecommerce 项目中找到 training_ecommerce.model 文件。
请注意,“Order Items”(订单项)探索目前尚未配置任何过滤器。
always_filter,后跟英文冒号 (:) 和大括号 ({}):您将在这些大括号内添加代码来定义过滤条件。
order_items 表中的 status 默认值为“Complete”,users 表中的 country 默认值为“USA”,具体代码如下:点击保存更改。
点击 IDE 顶部文件标题旁边的光标,然后选择 Explore Order Items(探索订单项)。
Complete(已完成)USA(美国)在 Order Items(订单项)> Measures(测量)下,点击 Order Count(订单项数量)。
点击运行。现在,您应该会看到美国境内已完成订单项的数量。 请注意,您无法删除这些过滤条件,但可以修改它们。
Processing(正在处理)。对于 Country(国家/地区)过滤条件,将其更改为 UK(英国)。点击运行。 订单项数量将随过滤条件一起更新!
返回到 training_ecommerce.model 文件。
点击验证 LookML,然后点击提交更改并推送。
添加提交消息,然后点击提交。
最后,点击部署到生产环境。
在本部分中,您将为“Order Items”(订单项)探索添加 sql_always_where 过滤器,以仅包含 2021 年及之后的数据。如果您的数据库包含多年数据,而您只需要查询本年度及未来的数据,这一功能将非常实用。
返回到 qwiklab_ecommerce 项目中的 training_ecommerce.model 文件。
移除您在上一部分中创建的过滤器。
在定义 Order Items(订单项)探索的第一行下方,新增一行并输入 sql_always_where,后跟英文冒号 (:):
接下来,使用 created_date 表定义过滤条件,以仅包含 2021 年及之后的数据。
点击保存更改。
点击 IDE 顶部文件标题旁边的光标,然后选择 Explore Order Items(探索订单项)。
sql_always_where 条件的存在。
在 Order Items > Created Date(订单项 > 创建日期)下,点击 Date(日期)。
在 Order Items(订单项)> Measures(测量)下,点击 Order Count(订单项数量)。
点击运行。此时您将看到,所有订单项的数据均来自 2021-01-01 及以后的日期!
WHERE 子句中定义了针对所有数据的过滤条件。training_ecommerce.model 文件。点击验证 LookML,然后点击提交更改并推送。
添加提交消息,然后点击提交。
最后,点击部署到生产环境。
在本部分中,您将为“Order Items”(订单项)探索添加 sql_always_having 过滤器,防止用户查看包含多个商品的订单。该过滤器将用于排除探索结果中所有包含多个商品的订单。
返回到 qwiklab_ecommerce 项目中的 training_ecommerce.model 文件。
移除您在上一部分中创建的过滤器。
在定义 Order Items(订单项)探索的第一行下方,新增一行并输入 sql_always_having,后跟英文冒号 (:):
order_item_count 测量定义过滤条件,仅包含订单项数量为 1 的数据:点击保存更改。
点击 IDE 顶部文件标题旁边的光标,然后选择 Explore Order Items(探索订单项)。
sql_always_having 条件的存在。
在 Order Items(订单项)下,点击 Order ID(订单 ID)。
在 Order Items(订单项)> Measures(测量)下,点击 Average Sale Price(平均售价)和 Order Item Count(订单项数量)。
点击运行。此时您将看到不同的订单及其对应的平均售价。可以看到,所有订单项数量均为 1!
training_ecommerce.model 文件。点击验证 LookML,然后点击提交更改并推送。
添加提交消息,然后点击提交。
最后,点击部署到生产环境。
在本部分中,您将为“Order Items”(订单项)探索添加 conditionality_filter 过滤器,以便仅返回过去 3 年的数据,除非对用户 ID 或州/省维度应用了过滤条件。
返回到 qwiklab_ecommerce 项目中的 training_ecommerce.model 文件。
移除您在上一部分中创建的过滤器。
在定义 Order Items(订单项)探索的第一行下方,新增一行并输入 conditionally_filter,后跟英文冒号 (:) 和大括号 ({}):
您将在这些大括号内添加代码来定义过滤条件。
filters 子参数以定义此过滤条件。此处,您希望订单创建日期为过去 3 年。同时,定义 unless 子参数作为可用于过滤的替代维度。此处选择用户 ID 和州/省维度:
点击保存更改。
点击 IDE 顶部文件标题旁边的光标,然后选择 Explore Order Items(探索订单项)。
点击 Filters(过滤条件)旁边的箭头展开窗口,查看您创建的条件过滤器。操作成功!
接下来,在 Order Items(订单项)下,点击 Order ID(订单 ID)。
在 Order Items > Created Date(订单项 > 创建日期)下,点击 Year(年份)。
在 Order Items(订单项)> Measures(测量)下,点击 Average Sale Price(平均售价)。
点击运行。
此时您将看到,探索结果中的创建日期已按过去一年过滤。
在过滤窗口中,将 State(州/省)过滤条件设置为 California(加利福尼亚州)。
点击另一个过滤条件旁边的 X 将其删除。
太棒了!您已成功掌握条件过滤器的工作原理。虽然您可以更改设置的默认值,但无法完全移除该过滤器,除非您应用了 unless 子参数中指定的至少一个过滤条件。
training_ecommerce.model 文件。点击验证 LookML,然后点击提交更改并推送。
添加提交消息,然后点击提交。
最后,点击部署到生产环境。
点击“检查我的进度”以验证是否完成了以下目标:
在本实验中,您学习了如何使用 LookML 过滤探索数据。您首先使用了 always_filter 来要求按订单状态和用户所在国家/地区过滤数据。然后,您使用 sql_always_where 和 sql_always_having 过滤器按订单创建日期和订单项数量过滤数据。最后,您使用了 conditionally_filter 为“Order Items”(订单项)探索添加过滤器,以便仅返回过去 3 年的数据,除非对用户 ID 或州/省维度应用了过滤条件。
…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。
本手册的最后更新时间:2024 年 4 月 22 日
本实验的最后测试时间:2023 年 7 月 14 日
版权所有 2025 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验