LookML 中的缓存和数据组

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

GSP893

Google Cloud 自学实验的徽标

概览

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

Looker 会不断生成 SQL 查询并将其发送到连接的数据库。每当有人在 Looker 中运行查询,SQL 结果都会被缓存并存储到 Looker 实例上的加密文件中。

缓存会利用之前执行的查询所保存的结果,从而避免对数据库重复运行相同的查询。这有助于降低数据库负载。缓存还有助于优化 Looker 性能。在本实验中,您将了解 Looker 中的缓存机制,并探索如何使用 LookML 数据组定义缓存政策。

您将执行的操作

  • 在 LookML 中定义缓存和不同的数据组对象
  • 将数据组应用于 LookML 模型中的单个探索

设置和要求

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

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 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 实例。

Looker 中的缓存机制

Looker 就像数据库的前台服务人员。当用户运行查询时,Looker 会确定之前是否运行过完全相同的查询。如果没有,则允许在数据库上运行查询。返回结果后,Looker 会缓存这些结果以供日后参考。

如果之前运行过相同的查询,Looker 会检查缓存政策,以确定结果是否仍然有效。如果是,Looker 会将缓存的结果返回给业务用户。这个过程耗时不到一秒。

如果之前运行过相同的查询,但根据缓存政策,结果不再有效,Looker 会将查询发送到数据库。然后,它会缓存新结果以供日后参考。

数据组

在 Looker 中,“数据组”指已命名的缓存政策或规则。LookML 开发者使用数据组来管理 Looker 实例上的缓存。不同的缓存政策需要不同的数据组定义。您需要创建的数据组的数量和类型取决于您数据的提取、转换和加载 (ETL) 流程以及业务需求。

例如,您可能需要在模型级别、针对各个探索或针对永久性派生表 (PDT) 定义数据组,具体取决于数据的更新频率。

  • 如需将数据组作为所有探索的默认设置,请在模型级别使用 persist_with 参数。
  • 如需将数据组应用于特定的探索,请在该探索的定义中使用 persist_with 参数。
  • 如需将数据组应用于特定的一组探索,而不是模型中的所有探索,请在每个探索的定义中使用 persist_with 参数,并指定相同的数据组名称。

可以使用数据组的对象

persist_with

如果您在模型级别应用数据组,Looker 默认会将相同的缓存规则应用于该模型中的所有探索。

不过,您也可以在单个探索中应用数据组,这会覆盖模型级别的任何设置。由于探索是所有内容的基础,因此相同的缓存逻辑也适用于探索中的 Look 和信息中心。

注意:如果您的数据库连接在 Looker 中配置为使用动态用户名,则无法为使用该连接的模型使用数据组。您可以改为使用 persist_for 参数对探索查询执行固定时间的缓存,并针对永久性派生表使用 sql_trigger_valuepersist_for

datagroup_trigger

对于 PDT,您可以应用数据组来指定如何重建 PDT。

时间表

Look 和信息中心的时间表也可以在数据组上运行。您可以指示 Looker 在缓存政策到期时自动运行 Look 或信息中心,以便检索新数据并为需要新数据的业务用户“预缓存”这些数据。

数据组配置

数据组接受两个参数:max_cache_agesql_trigger

  • max_cache_age 指定缓存结果的保留时间(以小时为单位),例如 24 小时。
  • sql_trigger 用于编写 SELECT 语句,该语句可以告诉 Looker 结果是否发生了变化。sql_trigger 应编写为仅返回一个值。Looker 会定期将此语句发送到连接的数据库。如果结果发生了变化,Looker 会刷新缓存。

虽然只需要一个参数,但最好同时使用这两个参数,以实现理想的缓存结果。例如,如果 sql_trigger 检查未检测到任何变化,则可能意味着 ETL 流程或 sql_trigger 本身出了问题。如果您添加了 max_cache_age 参数,则无论 sql_trigger 检查的结果如何,缓存都会在设定的时长后刷新。

注意:虽然只需要其中一个参数,但建议同时使用这两个参数。

任务 1. 将数据组应用于探索

在 LookML 模型中为各个探索定义并应用数据组。具体来说,您需要更新“Order Items”探索中所有视图的缓存配置,以便在添加新的 order_item_id 时进行刷新,因为 order_item_id 是“Order Items”的主键。

打开模型

  1. 点击切换按钮进入开发模式

  2. 开发标签页中,选择 qwiklabs-ecommerce LookML 项目。

  3. 打开 training_ecommerce.model 文件。

“文件浏览器”页面,其中显示了 training_ecommerce.model 文件

请注意,此模型文件有一个默认数据组,其 max_cache_age 为 1 小时。每当您通过让 Looker 根据数据库架构生成模型来创建新的 LookML 项目时,Looker 都会自动创建一个默认数据组,其名称为模型名称(在本例中为 training_ecommerce)后跟 _default_datagroup

删除默认数据组并替换它

由于此默认数据组目前是在模型级别定义的,因此它会应用于模型中定义的所有探索。您需要将新的数据组应用于探索,因此必须移除默认数据组并进行更新。要完成新数据组的定义,您需要为两个参数提供值:sql_triggermax_cache_age

  1. 删除默认数据组和 persist_with 定义(第 8-13 行)。

  2. 要为特定探索(例如 Order Items)创建新的数据组,请输入以下代码:

datagroup: order_items_datagroup {}
  1. 对于 sql_trigger,要选择 order_item_id 的最大 ID,请输入以下代码:
sql_trigger: SELECT MAX(order_item_id) from order_items ;;
  1. 设置 max_cache_age,以便即使数据更新出现问题,缓存也会继续每小时刷新一次。输入以下代码:
max_cache_age: "1 hour"

training_ecommerce.model 文件,更新了最大缓存期限

应用数据组

请注意,配置数据组本身不会产生任何影响,这是一个两步流程。定义数据组后,您需要使用名为 persist_with 的参数将数据组应用于对象。

  1. 要将数据组应用到 Order Items 探索的定义中,请在 explore: order_items 行的正下方输入以下代码:
persist_with: order_items_datagroup

training_ecommerce.model 文件,其中已向 order_items explore 添加 persist_with 代码

  1. 点击保存更改

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

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

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

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

太棒了!您刚刚定义了自己的缓存策略(数据组),使其在每当新增订单号时进行更新;同时使用了设为 1 小时的最大缓存期限参数,以确保无论数据是否更新,缓存都会每小时刷新一次。然后,您将此数据组应用于单个 Order Items 探索,而非整个模型。

点击“检查我的进度”以验证是否完成了以下目标: 将数据组应用于探索

恭喜!

在本实验中,您学习了如何在 Looker 中定义和使用缓存,并探索了如何使用 LookML 数据组来定义缓存政策。

后续步骤/了解详情

Google Cloud 培训和认证

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

本手册的最后更新时间:2025 年 4 月 24 日

本实验的最后测试时间:2025 年 4 月 24 日

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

准备工作

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

使用无痕浏览模式

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

登录控制台

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

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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