准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Create a dynamic dimension using a Liquid parameter
/ 40
Create a dynamic dimension using templated filters
/ 30
Create a dynamic measure using templated filters
/ 30
Looker 是 Google Cloud 中的现代化数据平台,支持您以交互方式分析和可视化数据。您可以使用 Looker 展开深入数据分析、整合来自不同数据源的分析洞见,构建切实可行的数据驱动型工作流,以及创建自定义数据应用。
在本实验中,您将学习如何使用 Liquid 参数和模板化过滤条件来增强 Looker 的用户互动性,并使用 Liquid 参数和模板化过滤条件来创建动态维度和测量。
在本实验中,您将学习如何完成以下操作:
需要熟悉 LookML 和 Liquid。开始本实验之前,建议先完成“开始使用 Liquid 自定义 Looker 用户体验”实验。
请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。
此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。我们会为您提供新的临时凭据,让您可以在实验规定的时间内用来登录和访问 Google Cloud。
为完成此实验,您需要:
准备就绪时,点击开始实验。
此时您会看到“实验详细信息”窗格,其中包含您在进行该实验时必须使用的临时凭据。
如果该实验需要付费,系统会打开一个弹出式窗口供您选择支付方式。
请注意,“实验详细信息”窗格中会显示实验凭据。您需要使用这些凭据来登录 Looker 实例以进行该实验。
点击打开 Looker。
在电子邮件地址和密码字段中输入提供的用户名和密码。
用户名:
密码:
点击登录。
登录成功后,您会看到用于本实验的 Looker 实例。
在 LookML 中,我们将很多变量定义为参数,例如维度或测量类型、sql 和 drill_fields。还有一个本身就叫 parameter(参数)的对象,为清晰起见,我们将其称为 Liquid 参数。
参数和模板化过滤条件使用 Liquid 来增强探索、Look 和信息中心内的互动性。其应用场景是:有时您希望能够更灵活地影响生成的 SQL。使用维度过滤条件时,它仅更新外层查询的 WHERE 子句。使用测量过滤条件时,它会更新外层查询的 HAVING 子句。这两种选项都有可能“过度”过滤结果集。
“参数和模板化过滤条件”这两个词通常放在一起表述,因为在使用 Liquid 时,它们实现的目的基本相同。主要区别在于,参数仅支持一个特定的“固定值”,而模板化过滤条件则可利用给定数据类型的“所有过滤条件运算符”。对于字符串,这些运算符包括“等于”“不等于”“包含”“开头是”等。参数与模板化过滤条件的区别概述如下:
使用参数和模板化过滤条件,在通过用户输入影响编写的 SQL 查询方面提供了更大的灵活性。您可以使用参数和模板化过滤条件来创建:
这一切听起来都很棒,但这种行为周期在 Looker 中是什么样的呢?
参数的概念更简单易懂,所以我们先从它开始。
“Liquid 参数”被定义为接收用户选择的特定硬编码值,这些值随后会被传递到生成的 SQL 查询中。
在本部分,您将在 order_items 视图中创建一个参数和动态维度,让用户能够在 Order Items 探索中选择不同的订单创建日期字段。用户应能够选择 Date(日期)、Week(周)和 Month(月),并且会看到所选内容不同,查询结果也会发生相应的变化。
order_items 视图文件。首先,您需要在界面中添加一些互动元素,以便用户进行操作。这就是 parameter 对象。像命名维度或测量那样为它命名,例如:select_timeframe。类型应为 unquoted(不带引号),因为您不希望 Looker 为我们生成的值带有单引号。
接下来,对一个或多个 allowed_values 进行硬编码。value 子参数是实际插入到 SQL 查询中的内容,label 子参数则决定该值在界面中的显示方式。您也可以选择将这些 allowed_value 值中的一个设置为 default_value。在这里,您可以选择“month”(月)。
现在,您将创建一个可以接收用户输入的 Liquid 参数;只有三个值是硬编码的,因此可供用户选择的是:created_date、created_week 和 created_month。
drill_fields 下方的第 6 行):总结一下,子参数定义如下:
您的文件现在应如下所示:
接下来,您可能希望信息中心或 Look 中显示的字段能动态变化,即根据用户所选指标或希望看到的数据粒度做出调整。现在,您可以使用刚才创建的 LookML 参数,将其应用到一个维度上,该维度会将参数的过滤条件值与不同的时间范围字段关联起来。
现在,系统会根据用户在信息中心内选择的参数值,返回对应的时间范围字段。请注意,您正在使用 label_from_parameter 将所选值标签传递给模块。
由于 ${created_week} 和 ${created_month} 时间范围(可能还有 ${created_date},具体取决于数据库方言)会被 Looker 转换为字符串,因此整个 dynamic_timeframe 维度需要是字符串才能相互匹配。
这意味着,当业务用户在探索中使用此维度时,他们需要记得核查排列顺序。Looker 的默认排序行为是:检查是否存在日期或时间维度;如果不存在,则按第一个测量进行排序。由于这实际上属于字符串类型,所以 Looker 将首先按测量进行排序,而这可能会打乱时间顺序。
您可能会想,那这样做的意义何在?这难道不是引入了不必要的复杂性吗?请注意以下两点:Looker 的大多数业务用户都是 Viewer(查看者),而不是 Explorer(探索者)。也就是说,他们可以查看已准备好的信息中心和 Look,但不能在探索中自由选择不同的字段,例如“Created Date”和“Created Week”。过滤条件是他们更改所见内容的唯一方式。
由于 Viewer 用户只会查看他人创建的内容,因此 dynamic_timeframe 实际上是字符串且需要手动排序这一点,对他们没有任何影响。
您的文件现在应如下所示:
label_from_parameter 和 sql 参数中都有引用。在“可视化图表”标签页中,时间范围选项将显示为“Month”(月)、“Week”(周)、“Date”(日期),而不是维度的名称 (Dynamic Timeframe)。
现在,您可以在 Order Items 探索中测试动态维度。
点击保存更改。接下来,前往 Order Items 探索。
在 Order Items 视图下,选择新的 Dynamic Timeframe 维度和 Order Count 测量。
点击名为 Select Timeframe 的新的“只有过滤条件的字段”旁边的过滤图标。
对于界面顶部的过滤条件选项,保持选中“是”。
从下拉菜单中选择 Month。
接下来,选择 Week 和 Date 过滤条件。点击运行,即可查看每个过滤条件对应的更新结果。
每次运行后,点击 SQL 标签页,查看参数是如何变化并被插入到 SQL 查询中的。
返回到 Order Items 视图。
点击验证 LookML,然后点击提交更改并推送。
添加提交消息,然后点击提交。
最后,点击部署到生产环境。
点击检查我的进度,验证您已完成上述任务。
模板化过滤条件遵循与参数相同的逻辑模式。同样,主要区别在于,模板化过滤条件允许最终用户选择使用多种过滤条件运算符。对于数字数据类型,这可以是“等于”“大于”“介于下列二者之间”等。
在过滤条件中,值并不是硬编码的,而是由用户输入,然后传递到生成的 SQL 查询中。不过,您可以在过滤条件定义中指定探索和维度,以显示包含选项的下拉菜单。
在本部分,您将创建一个动态维度,它会获取产品类别的输入值,并在结果中创建两个分组:所选的原始类别和所有其他类别。
与 Liquid 参数一样,您首先需要在界面中创建元素,供最终用户与之互动。对于模板化过滤条件,您需要一个 filter 对象。
explore: products {}),仅查询建议值所需的基本视图。
如您所见,模板化过滤条件不能像参数那样硬编码 allowed_values。
suggest_explore 和 suggest_dimension 为最终用户提供过滤条件建议下拉菜单:总结一下,子参数定义如下:
您的文件现在应如下所示:
接下来,在某处实现用户的过滤条件输入。现在,您将在同一视图文件中定义动态维度。
使用语法 {% condition filter_name %} 在 Liquid 块内引用模板化过滤条件。这可以让 Liquid 准备好应用模板化过滤条件。然后,指定要应用该过滤条件的字段名称,并使用 {% endcondition %} 标记结束该 Liquid 块。请注意,这与引用参数的方式略有不同;在这里,您需要指定一个要应用模板化过滤条件的字段和一个 endcondition。
sql 参数中引用了在上一步中创建的过滤条件:在这里,您从 select_category 获取用户的过滤条件,并将其应用到 ${category} 维度。如果类别值确实符合条件,则应显示在 category_comparison 维度中。如果类别值不符合条件,则应与所有其他不匹配的项一起归类为“All Other Categories”(所有其他类别)。
您的文件现在应如下所示:
现在,您可以在 Order Items 探索中测试动态维度。
点击保存更改。接下来,前往 Order Items 探索。
在 Products 视图下,选择名为 Category Comparison 的维度。
点击名为 Select Category 的新的“只有过滤条件的字段”旁边的过滤图标(注意:这是模板化过滤条件,列在 Products 视图下的 Dimensions 列表上方)。
在 Order Items 视图下,选择 Order Count 测量。
对于界面顶部的过滤条件选项,保持选中“等于”。
点击空文本框即可看到下拉菜单,或输入 Jeans(您还会在下拉菜单中看到其他可能的值)。
当用户更新过滤条件时,模板化过滤条件逻辑会自动适配。亲自尝试以下操作:
每次运行后,点击 SQL 标签页查看 SQL。
点击验证 LookML,然后点击提交更改并推送。
添加提交消息,然后点击提交。
最后,点击部署到生产环境。
点击检查我的进度,验证您已完成上述任务。
您可以将模板化过滤条件与“隐藏”维度结合使用,以动态调整某个测量所带的过滤条件,从而生成动态测量值。
例如,营销团队的一个常见应用场景是需要分析来自各个流量来源的用户占比。在本部分,您将能够通过创建一个测量来解决此应用场景,该测量允许用户选择任何可用流量来源,并查看所选流量来源的动态用户计数(按维度,如国家/地区)。
同样,您先要在界面中创建元素,供最终用户与之互动。对于模板化过滤条件,您需要 filter 对象。
drill_fields 下方第 6 行):没有任何值是硬编码的,但是有针对探索和维度的建议值,将用于填充可供用户使用的下拉菜单。用户仍然可以输入其他值。
order_items,将维度设置为 users.traffic_source。
您的文件现在应如下所示:
sql 参数中引用了在上一步中创建的过滤条件:您的文件现在应如下所示:
您的文件现在应如下所示:
现在,您可以在 Order Items 探索中测试动态测量。
点击保存更改。接下来,前往 Order Items 探索。
在 Users 视图下,选择 Country 维度(或其他维度,以按属性获取计数)。
在 Users 视图下,选择新的 Dynamic Count 测量。
点击名为 Select Traffic Source 的新的“只有过滤条件的字段”旁边的过滤图标(注意:这是模板化过滤条件,列在探索左侧菜单中的维度上方)。
对于界面顶部的过滤条件值,保持选中“等于”。
点击空文本框即可看到下拉菜单,或输入 Email(您还会在下拉菜单中看到其他可能的值)。
点击检查我的进度,验证您已完成上述任务。
尝试使用其他过滤条件值进行操作,并点击 SQL 标签页,查看参数在每次运行时是如何变化并插入到 SQL 查询中的。
返回到 Users 视图。
点击验证 LookML,然后点击提交更改并推送。
添加提交消息,然后点击提交。
最后,点击部署到生产环境。
在本实验中,您在 Looker 中使用 Liquid 创建了参数、模板化过滤条件以及动态维度和测量。首先,您创建了一个参数和动态维度,使用户能够选择不同的订单创建日期字段。然后,您创建了一个动态维度,该维度获取了“产品类别”输入值,并在结果中创建了两个分组:所选的原始类别和所有其他类别。最后,您创建了一个动态测量,使用户能够选择任何可用流量来源,并查看其动态用户计数。
…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。
本手册的最后更新时间:2026 年 2 月 3 日
本实验的最后测试时间:2026 年 2 月 3 日
版权所有 2026 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验