准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Create fields that leverage existing fields and descriptive naming conventions
/ 30
Provide context to fields and Explores with labels and descriptions
/ 30
Limit fields to only those needed in a specific Explore
/ 20
Group similar fields or Explores into useful categories
/ 20
Looker 是 Google Cloud 中的一个现代化数据平台,支持您以交互方式分析和直观呈现数据。在该平台中,LookML 开发者可以通过创建新字段、表、视图和探索来自定义和整理数据工作流,从而精心挑选供业务用户使用的数据,进而创建自定义数据应用。
在本实验中,您将学习编写 LookML 代码的最佳实践,这些最佳实践可提升业务用户和开发者的体验。其中包括通过重用现有对象和应用描述性命名惯例,来提高 LookML 项目的易用性和可持续性。您还可以使用 LookML 参数来提供更多背景信息并自定义对业务用户可见的对象,从而让探索更易于使用。
需要熟悉 LookML。建议您先完成了解在 Looker 中如何使用 LookML 课程,然后开始本实验。
请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。
此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。我们会为您提供新的临时凭据,让您可以在实验规定的时间内用来登录和访问 Google Cloud。
为完成此实验,您需要:
准备就绪时,点击开始实验。
此时您会看到“实验详细信息”窗格,其中包含您在进行该实验时必须使用的临时凭据。
如果该实验需要付费,系统会打开一个弹出式窗口供您选择支付方式。
请注意,“实验详细信息”窗格中会显示实验凭据。您需要使用这些凭据来登录 Looker 实例以进行该实验。
点击打开 Looker。
在电子邮件地址和密码字段中输入提供的用户名和密码。
用户名:
密码:
点击登录。
登录成功后,您会看到用于本实验的 Looker 实例。
本部分简要介绍了编写 LookML 代码时可以采用的五大最佳实践,这些实践可以提升业务用户和开发者的体验。在本实验中,您将重点了解其中的前四项。
请使用描述性字段名称来定义维度和测量,这有助于业务用户和开发者找到所需内容(最佳实践中的第 1 项)。此实践的一些示例包括:
total_[FIELD](表示总和)、count_[FIELD]、avg_[FIELD] 等。percent_orders_by_returning_customer 比 percent_returning 更清楚明了。order_is_returned 或 is_order_returned,而不是 returned。created_date 会变为 created_date_date。利用附加参数有助于整理面向业务用户显示的数据,并提供更多背景信息。您应添加标签和说明,以帮助业务用户确定应在工作流中使用哪些字段和探索(最佳实践中的第 1 项和第 4 项)。
您还应使用 group_label 参数对类似的字段和探索进行逻辑归类,以使其便于浏览(最佳实践中的第 2 项)。
最后,您应使用 drill_fields 来挑选业务用户可在点击表单元格中的值后看到的其他选项,以便其探索数据。
请在确保业务用户仍可轻松获取所需答案的前提下,创建并显示尽可能少的字段和探索;这是一项非常有用的最佳实践(最佳实践中的第 3 项)。每项业务的最佳字段数和探索数各不相同,但如果字段数和探索数过多,往往会让最终用户感到困惑。
您可以使用 fields 参数来限制在单个探索中向业务用户显示的字段,也可以使用 hidden 参数来在整个模型中隐藏某个字段或探索。
编写可持续且可维护的 LookML 代码是维持项目正常运转的关键,因为这类代码便于更新、维护和重复使用。
底层 LookML 代码的组织方式和质量水平虽然可能并不会产生立竿见影的效果,但同样会影响业务用户的整体体验。具体来说,如果您(作为 LookML 开发者)可以减少编写和维护基础代码的时间,那么就可以更快地修改或实现业务用户请求的属性和功能。
以下几点建议可助您编写可持续且模块化的 LookML 代码:
如需为业务用户优化探索查询的性能,请遵循以下原则:
relationship 参数定义联接关系,以确保生成正确的聚合。many_to_one 联接。如需详细了解这些主题,请参阅 Looker 注意事项和优化 LookML 查询的性能。
创建新的维度和测量时,请务必查看模型中现有的 LookML 对象,考虑是否可以重复使用。为了便于进行代码更新,最佳实践是在代码中统一使用替换运算符,以最大限度减少对底层数据库中对象的硬编码引用。
在创建新对象时,除了利用现有对象之外,还应选择描述性名称,因为这有助于开发者和业务用户找到用于代码或分析的字段。在此任务中,您将利用现有的 status 维度创建一个新的 yesno 维度(用于标识已取消的订单),创建利用现有对象的新测量(用于计算因已取消的订单而损失的收入百分比),并对新维度和新测量应用描述性命名惯例。
点击切换按钮进入开发模式。
在开发菜单中,选择 qwiklabs_ecommerce 项目。
打开 views 下的 order_items.view。
查看名为 status 的维度。
请注意,这里的语法使用了替换运算符 ${TABLE}.column_name,它将引用视图文件顶部的 sql_table_name 参数所标识的表中的某个列。
在本例中,${TABLE}.status 引用的是 cloud-training-demos.looker_ecomm.order_items 表中的“status”列。您可以利用此现有维度创建一个新的 yesno 维度,用于标识订单是否处于已取消状态。
order_is_canceled 和 is_order_canceled 都遵循了有关描述性名称的最佳实践,因为它们都可以清楚地标识作为订单的被取消对象。这两者之间的选择属于命名惯例层面的决策,可以在团队内部决定。
status 维度下,添加以下代码以创建新的 yesno 维度:请注意,这里的语法使用了替换运算符 ${field_name},它将引用当前视图中的现有维度或测量。在本例中,${status} 引用的是 order_items 视图中的 status 维度。
另请注意,此代码尚未包含 status 值。虽然您可以利用现有的 status 维度,但仍需了解该维度中的哪个值用于标识已取消的订单。
从技术上讲,以上所有方式都可以用于确定正确的值。不过,凭经验猜测的方式效率低下,并且可能会得到错误的值;您必须不断地在相应探索中针对新维度运行查询来测试代码,直到得到预期的结果。
在“订单项”探索的“订单项”视图中针对 status 维度运行查询会得到该维度的值,但探索中显示的值可能会反映通过 LookML 代码所应用的其他格式。
在 SQL Runner 中直接对 order_items 表运行查询,即可查看 status 列中的原始数据值。
将 IDE 所在的浏览器标签页保持打开状态,然后在新的浏览器标签页中打开一个新的 Looker 窗口。
依次点击开发 > SQL Runner。
点击“连接”旁边的设置 (),然后点击搜索公开项目。
在项目字段中,输入 cloud-training-demos,然后按 Enter 键。
在数据集字段中,选择 looker_ecomm。
系统会列出此 BigQuery 数据集中的可用表。
如需选择 status 列中的不同值,请将以下查询添加到 SQL 查询窗口中,然后点击运行:
关闭 SQL Runner 所在的浏览器标签页,然后返回到 IDE 所在的浏览器标签页。
完成新 yesno 维度的 LookML 代码:
点击保存更改。
请勿关闭此浏览器标签页,以便稍后继续使用 Looker IDE。
在浏览器标签页中打开一个新的 Looker 窗口。
依次点击探索 > 订单项。
在“数据”窗格中,点击 SQL 标签页。
在订单项 > 维度下,选择:
在运行查询之前,请注意 CASE 语句会根据 order_item.status 的值是否等于 Cancelled 来返回“是”或“否”结果:
点击运行。
打开结果标签页以查看结果。
关闭探索所在的浏览器标签页,然后返回到 IDE 所在的浏览器标签页。
打开 order_items.view。
查看名为 total_revenue_from_completed_orders 的测量。
请注意,该名称遵循了求和测量的最佳实践,因为它以“total”开头,清楚地表明该值是求和值或总计值。另请注意,它包含对现有 status 维度的过滤条件,要求其值为“已完成”。
total_canceled_orders 虽然以“total”开头,但却并未明确指出该总和是收入的总和,而不是订单数的总和。相比之下,revenue_from_canceled_orders 包含描述性详细信息,但名称开头却缺少“total”。
第一个测量名为 total_revenue_from_canceled_orders。它遵循了命名求和测量的最佳实践,以“total”一词开头,并明确指明了该总和是已取消订单的收入总和。
但请注意,它使用的过滤条件有所不同。total_revenue_from_canceled_orders 并未使用 status 维度,而是使用了您在之前的步骤中创建的 yesno 维度。这两种方式都符合重复使用现有 LookML 对象的最佳实践,具体取决于模型中可用的对象。
第二个测量遵循了以描述性方式命名比率的最佳实践,在名称中包含了“percent”和“canceled orders”字样。该测量还利用以下两个现有测量来计算归已取消订单所占的收入百分比:第一个测量和 total_revenue 测量。
点击保存更改。
请勿关闭此浏览器标签页,以便稍后继续使用 Looker IDE。
在浏览器标签页中打开一个新的 Looker 窗口。
依次点击探索 > 订单项。
在“数据”窗格中,点击 SQL 标签页。
在订单项 > 测量下,选择:
在运行查询之前,请注意 CASE 语句现在与 SUM 结合使用,以计算 order_items.sale_price 在 order_items.status 等于“Cancelled”条件下的总和,然后除以 order_items.sale_price 中所有值的总和:
点击运行。
打开结果标签页以查看结果。
关闭探索查询所在的浏览器标签页,然后返回到显示 Looker IDE 的浏览器标签页。
点击项目健康状况图标 ()。
在“项目健康状况”>“LookML 验证”部分中,点击验证 LookML。
结果应显示未发现任何 LookML 错误。
点击验证 LookML,然后点击提交更改并推送。
添加提交消息,然后点击提交。
最后,点击部署到生产环境。
在继续执行下一个任务时,请继续留在 Looker IDE 所在的浏览器标签页中。
点击检查我的进度以验证是否完成了以下目标:
为 LookML 对象添加标签和说明是一种非常简单的方法,可以帮助业务用户确定要在工作流中使用的字段和探索。在此任务中,您将为上一个任务中创建的新 yesno 维度和各个测量添加标签和说明。你还将为用于向业务用户显示这些字段的现有“订单项”探索添加标签和说明。
在新的浏览器标签页中打开一个新的 Looker 窗口。
依次点击探索 > 订单项。
展开订单项,然后将指针悬停在名为订单是否已取消(是/否)的维度上,以查看其他选项。
点击信息图标 () 即可查看此维度的详细信息。
信息控件会提供 SQL 参数等详细信息,但对于 SQL 知识有限的业务用户,则没有额外的说明可帮助他们轻松了解该维度的预期用途。在接下来的步骤中,您将向订单是否已取消维度添加 description 参数,以便为业务用户提供更多背景信息。
将探索所在的浏览器标签页保持打开状态,然后返回到 Looker IDE 所在的浏览器标签页。
打开 order_items.view。
为之前创建的 order_is_canceled 维度添加说明:
点击保存更改,然后点击验证 LookML。
返回“订单项”探索所在的浏览器标签页,然后刷新页面。
展开订单项,然后将指针悬停在名为订单是否已取消(是/否)的维度上,以查看其他选项。
点击信息图标 () 即可查看此维度的详细信息。
现在,清晰的说明可帮助业务用户了解如何解读该维度中的值。
将探索所在的浏览器标签页保持打开状态,然后返回到 Looker IDE 所在的浏览器标签页。
再次查看 order_is_canceled 维度所对应的 LookML 代码。
请注意,您未添加 label 参数,因为这里不需要。维度名称已在探索中明确显示为“订单是否已取消(是/否)”。
在接下来的步骤中,您将为上一个任务中创建的测量同时添加说明和标签,以修改测量在探索中显示的名称,并添加有关如何解读测量值的更多详细信息。
total_revenue_from_canceled_orders 和 percent_revenue_canceled_orders 的测量添加说明和标签:点击保存更改,然后点击验证 LookML。
为这些测量添加标签有助于强调已取消的订单代表的是损失的收入,而说明则提供了有关如何解读测量类型和 SQL 参数的更多背景信息。
返回“订单项”探索所在的浏览器标签页,然后刷新页面。
展开订单项,然后注意这两个测量的修订标签:“因已取消的订单而损失的收入百分比”和“因已取消的订单而损失的总收入”。
点击每个测量旁边的信息图标 () 即可查看详细信息。
除了标签之外,现在还提供了实用的说明,可帮助业务用户了解如何解读这些测量中的值。
在订单项 > 维度下,选择:订单是否已取消(是/否)。
在订单项 > 测量下,选择:
在“数据”窗格中,将鼠标悬停在相应列名称上,即可看到与点击订单是否已取消、因已取消的订单而损失的总收入和因已取消的订单而损失的收入百分比的“信息”按钮时相同的说明。
点击运行。
该查询会根据订单是否已取消维度返回两行:一行表示“是”,另一行表示“否”。如果业务用户对这些结果有任何疑问,现在可以参考这些维度和测量的说明,了解更多背景信息。
关闭探索所在的浏览器标签页,然后返回到 Looker IDE 所在的浏览器标签页。
打开 models 下的 training_ecommerce.model。
在 users 联接之前,为现有的“订单项”探索添加标签和说明:
点击保存更改,然后点击验证 LookML。
将 IDE 所在的浏览器标签页保持打开状态,然后在新的浏览器标签页中打开一个新的 Looker 窗口。
点击探索以查看包含各种探索的菜单列表。
“订单项”探索的新标签为订单和用户。另请注意,该探索名称旁边现在有一个信息控件。
将指针悬停在信息图标 () 上即可查看该探索的详细信息。
现在有了清晰的说明,其中详细介绍了该探索中可提供的数据,以便业务用户轻松确定此探索是否适合其工作流。
关闭该探索所在的浏览器标签页,但保留 IDE 所在的浏览器标签页。
点击验证 LookML,然后点击提交更改并推送。
添加提交消息,然后点击提交。
最后,点击部署到生产环境。
点击检查我的进度以验证是否完成了以下目标:
在模型中创建新的 LookML 对象时,需注意应将哪些字段和探索直接提供给业务用户使用。通过仅显示经过精心挑选的部分字段和探索,可让业务用户快速找到所需的数据。
在此任务中,您将使用 hidden 参数在整个 training_ecommerce 模型范围内隐藏额外的字段,并利用 fields 参数限制在现有“订单项”探索中向业务用户显示的字段。
在新的浏览器标签页中打开一个新的 Looker 窗口。
依次点击探索 > 事件。
展开用户。
在新的浏览器标签页中打开另一个新的 Looker 窗口。
依次点击探索 > 订单和用户。
展开用户,然后比较这两个探索。
请注意,您会在“事件”探索中看到与“订单和用户”探索中相同的“用户”维度(包括“纬度”维度和“经度”维度),而您有时可能并不希望向业务用户显示这些维度。
将这两个探索所在的浏览器标签页保持打开状态,然后返回到 Looker IDE。
打开 views 下的 users.view。
向 latitude 和 longitude 维度添加 hidden 参数:
点击保存更改,然后点击验证 LookML。
返回到订单和用户探索所在的浏览器标签页,然后刷新页面。
展开用户,查看可用的维度。
请注意,latitude 和 longitude 维度不再显示在“订单和用户”探索中。
返回到事件探索所在的浏览器标签页,然后刷新页面。
展开用户,查看可用的维度。
这两个探索中均已不再显示 latitude 和 longitude 维度。不过,假设您并不想在所有探索中都隐藏某个维度或测量,而只想在特定探索中将其隐藏。例如,“事件”探索包含与“订单和用户”探索相同的所有用户信息,但其中许多字段提供的个人身份信息超出了“事件”探索中的实际需求。
在接下来的步骤中,您将仅在“事件”探索中隐藏“用户”视图中的大部分维度和测量,因为在该探索中,只需极少的信息即可用于选择用户或识别总体趋势。
将探索所在的浏览器标签页保持打开状态,然后返回到 IDE 所在的浏览器标签页。
打开 training_ecommerce.model。
将 fields 参数添加到现有事件探索中,置于 event_session_facts 联结之前:
fields 参数的语法表明,除了字段名称前带有减号 (-) 的字段(例如 users.city)将在该探索中隐藏之外,所有字段都将在该探索中保持可见。
点击保存更改,然后点击验证 LookML。
返回到订单和用户探索所在的浏览器标签页,然后刷新页面。
展开用户,查看可用的维度。
请注意,“订单和用户”探索中没有隐藏任何其他维度。
返回到事件探索所在的浏览器标签页,然后刷新页面。
展开用户,查看可用的维度。
请注意,在“事件”探索中,只剩少数几个“用户”维度可用,这些维度是未在 fields 参数中使用减号 (-) 明确标记的维度。
“事件”探索现在支持对用户和事件进行更概括的分析,而“订单和用户”探索包含更具体的用户详细信息,例如个人身份信息。
在用户 > 维度下,选择国家/地区。
在用户 > 测量下,选择计数。
在事件 > 维度下,选择事件类型。
点击运行。
该查询会针对每种事件类型返回每个国家/地区的用户数量,包括国家/地区值为 null 的用户。
关闭显示探索的两个浏览器标签页,但保留 IDE 所在的浏览器标签页。
点击验证 LookML,然后点击提交更改并推送。
添加提交消息,然后点击提交。
最后,点击部署到生产环境。
点击检查我的进度以验证是否完成了以下目标:
作为 LookML 开发者,您可以使用 group_label 参数对类似的字段或探索进行逻辑归类,从而让探索更便于浏览。在此任务中,您会将 users.view 中的各种位置维度归为一组,并使用按团队命名的不同标题,在 training_ecommerce.model 中分别为“订单和用户”探索和“事件”探索创建单独的分组。
请注意,有多个维度包含位置信息,例如城市、国家/地区、州/省/直辖市/自治区和邮政编码。
根据介绍字段的 group_label 参数的文档,您可以向多个维度添加 LookML 语法 group_label: "组名称",以将这些维度归入同一类别。
group_label 参数添加到 city、country、state 和 zip 维度,以将这些维度归入一个名为“位置信息”的类别:点击保存更改,然后点击验证 LookML。
将 IDE 所在的浏览器标签页保持打开状态,然后在新的浏览器标签页中打开一个新的 Looker 窗口。
依次点击探索 > 订单和用户。
展开用户,然后查看可用的维度。
在用户 > 维度 > 位置信息下,选择:
点击运行,查看结果。
关闭订单和用户探索所在的浏览器标签页,然后返回到 IDE 所在的浏览器标签页。
请注意,第 15 行的模型级 label 参数的值为“电子商务培训”。这是“探索”菜单中当前显示的标题。在“探索”菜单中,“订单和用户”探索和“事件”探索均显示在此标题下。
请查看有关探索的 group_label 文档页面,然后回答以下问题。
group_label:group_label:点击保存更改,然后点击验证 LookML。
在新的浏览器标签页中打开一个新的 Looker 窗口。
展开探索菜单,然后查看相关选项。
请注意,每个探索现在都显示在各自的标题下。添加新的探索时,您可以使用相同的 group_label 值来继续扩展现有分组,也可以分配新的 group_label 值来创建具有自己标题的新分组。
点击验证 LookML,然后点击提交更改并推送。
添加提交消息,然后点击提交。
最后,点击部署到生产环境。
点击检查我的进度以验证是否完成了以下目标:
在本实验中,您通过重用现有对象、应用描述性命名惯例以及使用 fields 和 hidden 等附加参数,提高了 LookML 项目的易用性和可持续性。然后,您限制了在特定探索中显示的字段,使其仅显示所需字段;并使用 group_label 参数对类似的字段和探索进行逻辑归类,让探索变得更便于浏览。
…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。
本手册的最后更新时间:2026 年 2 月 2 日
本实验的最后测试时间:2025 年 12 月 3 日
版权所有 2026 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验