开始使用 Liquid 自定义 Looker 用户体验

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

GSP933

Google Cloud 自学实验的徽标

概览

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

在本实验中,您将探索 Liquid 的常见应用场景,并学习如何使用它来自定义维度和测量。

学习内容

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

  • 列出 Looker 中 Liquid 的常见应用场景
  • 使用 Liquid 为维度(例如,网页搜索、Looker 信息中心、“探索”及其他公司应用)添加链接
  • 使用 Liquid 通过 html 参数自定义维度和测量值

前提条件:

需要熟悉 LookML。建议您先完成了解在 Looker 中如何使用 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 实例。

什么是 Liquid?

Liquid 是 Shopify 开发的基于 Ruby 的开源模板语言。您可以将其与 LookML 结合使用,以构建更灵活的动态代码。

Liquid 代码分为 3 类:

  • 对象 - 用于告知 Liquid 在网页上的什么位置显示内容。它们本质上是变量或占位符,在运行时会插入值。对象名称用两对大括号括起来(在标记内引用时除外)。
    • 此类用法在电子商务邮件中能找到真实案例。您是否曾有过这样的经历:在网购下单后,收到的订单确认邮件或促销邮件里写着“{{ last_name }}{{ first_name }},您好!”?许多这类邮件模板都采用了 Liquid 语言,若模板编写存在纰漏,当系统未能成功填充您的真实姓名时,这些占位对象就可能直接显示出来了。
  • 标记 - 用于为模板创建逻辑和控制流。标记决定逻辑的执行方式。标记以大括号和百分号开头,并以百分号和大括号结尾。这类语法主要用于编写条件判断规则(如 if-then 语句),同时也可实现变量赋值等操作。
  • 过滤条件 - 用于处理 Liquid 对象的输出内容。您可以通过输入竖线 |,后跟受支持的关键字(例如 append)来应用过滤条件。
    • 如果您使用 Looker 已有一段时间,但从未接触过 Liquid,可能会对上述概念感到困惑。在 Looker 中,过滤条件的作用是筛选搜索结果,例如“仅显示红色服饰”或“仅显示评分不低于四星(满分五星)的商品”。

在 Looker 中使用 Liquid

您只能在某些 LookML 参数中使用 Liquid,详情请参阅 Liquid 变量参考Liquid 变量定义表尤其有用。“用法”列显示各类 LookML 参数分别支持哪些变量类型。您应该先查看一下该列,确认 LookML 区域受支持,不然可能会花半小时来排查为什么完美无缺的 Liquid 代码却无法运行!

您可能会注意到,此页面上未提及 appendconcat 等过滤条件。相关内容请查阅 Shopify 自己的 Liquid 文档。大多数(如果不是全部)Liquid 过滤条件在 Looker 中也可以正常使用。

具体来说,在 LookML 中,以下几个位置可以使用 Liquid 语法:

  • action 参数
    • action 参数用于创建一项数据操作,支持用户直接在 Looker 中,借助其他工具完成字段级任务。例如,该操作可触发邮件发送、在其他应用中设定值,或执行为接收服务器配置好的任何其他操作。接收服务器必须能够接收 JSON 格式的 POST 请求。
  • html 参数
    • html 参数支持您指定某一字段要包含的 HTML 内容。借助 Liquid 变量,您可以获取该字段通常包含的值。这使您能够创建许多实用的功能,包括链接到其他相关的 Look、链接到外部网站,或嵌入图片。
  • 字段的 label 参数
    • 用于指定操作名称的字符串,该名称将显示在用户端的“操作”菜单中。
  • link 参数
    • link 参数支持您为维度和测量添加网页链接,方便用户直接在 Looker 中跳转至相关内容。本实验后续部分将对此展开详细说明。
  • sql 开头的参数:sqlsql_onsql_table_name

使用 Liquid 变量

Liquid 变量的基本用法非常简单。确定要使用的变量后,只需将其插入有效的 LookML 参数中即可。您可以在 Liquid 变量定义文档中查看可在特定 LookML 参数中使用的具体 Liquid 变量。

可通过以下两种方式使用 Liquid 变量:

  1. 输出语法:该用法可用于插入文本内容,可能是在 Looker 中使用 Liquid 最常见的方式。在此方法中,需将 Liquid 变量括在两对大括号中,例如 {{ value }}
  2. 标记语法:该用法通常用于逻辑比较和其他 Liquid 操作,而不是插入文本内容。在此方法中,需将 Liquid 变量括在一对“大括号 + 百分号”的组合符号中,例如 {% if value > 10000 %}

基本示例

在此 HTML 用法示例中,系统会将产品 ID 插入 <img> 标记中,以生成产品图片:

dimension: product_image { sql: ${product_id} ;; html: <img src="http://www.brettcase.com/product_images/{{ value }}.jpg" /> ;; }

在此网址使用示例中,系统会将艺术家姓名插入网址中,以生成针对该艺术家的 Google 搜索。

dimension: artist_name { sql: ${TABLE}.artist_name ;; link: { label: "Google" url: "http://www.google.com/search?q={{ value }}" icon_url: "http://google.com/favicon.ico" } }

获取其他字段中的变量

Liquid 变量通常基于其所在的字段。但如有需要,您也可以获取其他字段中的值。

使用 {{ view_name.field_name._liquid-variable-name }} 格式可获取查询结果中同一行内其他字段的值。将 _liquid-variable-name 替换为任何 Looker Liquid 变量。如果变量名称通常不以下划线开头,请确保在变量名称前添加下划线,例如:

  • {{ view_name.field_name._value }}
  • {{ view_name.field_name._rendered_value }}
  • {{ view_name.field_name._model._name }}

本示例演示了如何通过该用法,从其他字段中获取网站网址:

dimension: linked_name { sql: ${name} ;; html: <a href="{{ website.url._value }}" target="_new">{{ value }}</a> ;; }

常见应用场景

在 Looker 中,Liquid 的用途非常广泛。一些最常见的应用场景包括:

  • 创建动态链接或渲染动态图片
  • 设置自定义深入分析
  • 根据所用模型更改字段的标签
  • 汇总感知
  • 添加自定义条件格式
  • 集成模板化过滤条件和参数

link 参数

大多数链接都是使用 link 参数添加到维度和测量中的。link 参数用于创建自定义链接或深入分析。此参数包含 3 个子参数:

突出显示的 link 参数

  • label - 此链接在深入分析菜单中的名称,以及链接选项在界面中的显示方式
  • url - 目标网址,通常包含动态 {{ value }} 对象。该子参数支持完整的 Liquid(但不支持完整的 HTML)
  • icon_url - 要用作此链接的图标的图片网址。如果不需要图标,则无需提供 icon_url 参数。如果需要公司徽标,可以尝试使用 http://www.google.com/s2/favicons?domain=[相关公司网站] 模式运行 Google 搜索,以查找网站图标 (.ico) 格式的图片

如需详细了解 link 参数,请参阅 Looker 的 link 参数文档。

任务 1. 向维度添加带链接的网页搜索

在本部分中,您将在 Users 视图中添加指向 City 维度的链接,以便在用户点击界面中的某个城市时,能够跳转至 Google 搜索来搜索该城市。

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

  2. 点击开发标签页,然后选择 qwiklabs-ecommerce LookML 项目。找到 Users 视图文件。

  3. Users 视图文件中,找到 city 维度:

users.view 文件,其中显示 dimension: city {

  1. 在现有 city 维度下,按如下方式创建新的 city_link 维度,并添加 link 参数。点击保存更改
dimension: city_link { type: string sql: ${TABLE}.city ;; link: { label: "Search the web" url: "http://www.google.com/search?q={{ value | url_encode }}" icon_url: "http://www.google.com/s2/favicons?domain=www.{{ value | url_encode }}.com" } }

在您刚刚添加的 link 参数中,子参数定义如下:

  • label - 对于此处的 label,您可以使用“Search the web”字符串,该字符串可简单明了地传达点击链接后执行的操作。
  • url - 对于此子参数,您可以使用维度中的城市值,并应用 url_encode 过滤条件,将任何不安全的网址字符转换为百分号编码字符。
  • icon_url - 这是要用作链接图标的图片网址。上述网址用于在城市网站上查找该城市的网站图标图片(如果适用)。
注意:大多数城市都会显示通用网站图标(例如 Allentown),但有些城市会显示通过搜索找到的自定义图标(例如 Abbeville)。

新的 city_link 维度现在应如下所示:

users.view 文件,其中显示 dimension: city_link {

  1. 前往 Order Items“探索”。

  2. Users 视图下,选择 City Link 维度。点击运行

  3. 点击“City”值(例如 Abbeville)旁边的三个点。

“City”值菜单

  1. 选择在网络上搜索。太棒了!您刚刚为维度添加了第一个链接。

  2. 返回到 Users 视图文件。

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

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

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

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

点击检查我的进度,验证是否完成了上述任务。 向维度添加带链接的网页搜索

任务 2. 使用 html 参数将维度值呈现为带链接的按钮

有时,业务用户不喜欢链接参数在界面中生成的三个点,或者他们对字体样式或链接启动方式等方面有其他要求。html 参数可让您更灵活地处理此类情况。使用 html 参数可实现灵活度更高的自定义深入分析与链接:

  • 维度值将显示在 Looker 中,并且也会是超链接
  • 点击该值会将用户带到 html 中的指定链接
  • 您还可以进行其他调整来自定义用户体验

如需详细了解 html 参数,请参阅 Looker 的 html 文档

在本部分中,您将创建一个新维度,其值将呈现为带链接的按钮,指向预先配置好的、所选用户 ID 对应的订单记录“探索”页面。

  1. 返回到 Users 视图文件。

  2. Users 视图中,添加一个新维度 order_history_button,如下所示:

dimension: order_history_button { label: "Order History" sql: ${TABLE}.id ;; html: <a href="/explore/training_ecommerce/order_items?fields=order_items.order_item_id, users.first_name, users.last_name, users.id, order_items.order_item_count, order_items.total_revenue&f[users.id]={{ value }}"><button>Order History</button></a> ;; }
  1. 点击保存更改

在您刚刚添加的 html 参数中,Order History 按钮维度的值全部为 ID,但我们没有直接展示这些对业务用户而言可能毫无意义的 ID,而是将其显示为“Order History”字样。

此链接指向 Ecommerce Training 模型中的“Order Items”探索,其中包含特定字段(请注意,我们可借助集合更方便地列出多个字段),同时还会根据所选用户 ID 应用过滤条件。此外,由于 html 参数本身不会生成任何表明该值包含超链接的视觉提示,因此您可以使用 <button> 标记将其样式设置为按钮,使其明显可点击。供参考:创建带超链接的按钮维度

注意:href 参数值也可作为网址值使用,以创建与上一部分中类似的链接。

您的文件应如下所示:

users.view

  1. 前往 Order Items“探索”。

  2. Users 视图中,选择 IDFirst NameLast NameOrder History 维度。点击运行

Users 视图

  1. 右键点击用户的 Order History 按钮,然后在新标签页中打开。例如,如果您点击 Sam Aguilar 的这个按钮,将会看到他有两笔过往订单。太棒了!您已创建了一个实用维度,其渲染后的值为带链接的按钮。

  2. 返回到 Users 视图。

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

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

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

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

点击检查我的进度,验证是否完成了上述任务。 使用 html 参数将维度值呈现为带链接的按钮

任务 3. 使用 html 参数自定义测量值的格式

在 Looker 的可视化图表中,业务用户可以启用条件格式来创建热点图。不过,此功能仅为表格单元格提供不同的填充颜色。为了更灵活地自定义字体颜色或大小等样式,LookML 开发者需要使用 html 参数。使用此参数,您可以:

  • 向维度标签或标题背景添加自定义颜色
  • 在显示的值中包含图片或图标
  • 更改所显示文字的大小或字体
  • 通过下拉菜单将自定义详细信息添加到表格单元格中
  • 在表格单元格中构建一个进度条,用于将单元格值与目标值进行比较

在本部分中,您将修改现有测量,以根据值是高于还是低于定义的金额来自定义值的格式。

  1. 前往 Order Items 视图文件。

  2. Order Items 视图中,找到 total_revenue 测量。

order-items.view

  1. 在现有 total_revenue 测量下,按如下方式创建 total_revenue_conditional 测量,并添加 html 参数:
measure: total_revenue_conditional { type: sum sql: ${sale_price} ;; value_format_name: usd html: {% if value > 1300.00 %} <p style="color: white; background-color: ##FFC20A; margin: 0; border-radius: 5px; text-align:center">{{ rendered_value }}</p> {% elsif value > 1200.00 %} <p style="color: white; background-color: #0C7BDC; margin: 0; border-radius: 5px; text-align:center">{{ rendered_value }}</p> {% else %} <p style="color: white; background-color: #6D7170; margin: 0; border-radius: 5px; text-align:center">{{ rendered_value }}</p> {% endif %} ;; }
  1. 点击保存更改

在您刚刚添加的 html 参数中,测量的格式现在会根据值进行自定义。借助 if-then 逻辑,您已定义以下内容:

  • 如果总收入值高于 1300 美元,则将背景颜色设为黄色
  • 如果总收入值高于 1200 美元,则将背景颜色设为蓝色
  • 否则(如果总收入低于 1200 美元),将背景颜色设为灰色

您的文件应如下所示:

order_items.view,其中突出显示了 html 参数 total_revenue_conditional

  1. 前往 Order Items“探索”。

  2. Users 视图中,选择 IDFirst NameLast Name。在 Order Items 视图中,选择 Total Revenue Conditional。点击运行

Users 视图

太棒了!您刚刚在总收入测量中使用了 html 参数,根据值是高于还是低于定义的金额来为值着色。

  1. 返回到 Order Items 视图。

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

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

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

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

点击检查我的进度,验证是否完成了上述任务。 使用 html 参数自定义测量值的格式

任务 4. 使用 Liquid 进行高级链接

对于更高级的应用场景,如果需要在不同的“探索”中使用不同的链接,您可以使用 Liquid 标记将条件纳入链接中。在本部分中,您将向链接添加一个条件,以检查“探索”名称,然后根据用户开始的位置将用户跳转到特定链接。

  1. 返回到 Users 视图文件。

  2. Users 视图中,找到 state 维度。

Users 视图,显示 dimension: state {

  1. 在现有 state 维度下,按如下方式创建新的 state_link 维度,并添加 html 参数。
dimension: state_link { type: string sql: ${TABLE}.state ;; map_layer_name: us_states html: {% if _explore._name == "order_items" %} <a href="/explore/training_ecommerce/order_items?fields=order_items.detail*&f[users.state]= {{ value }}">{{ value }}</a> {% else %} <a href="/explore/training_ecommerce/users?fields=users.detail*&f[users.state]={{ value }}">{{ value }}</a> {% endif %} ;; }
  1. 点击保存更改

这是一个更高级的示例,其中包含用于实现 if-then 逻辑的 Liquid 标记。当用户点击 state 维度中的某个值时,如果该用户当前位于 order_items“探索”中,则应重定向到同一“探索”,该“探索”已加载一些字段并应用一个过滤条件。如果用户在任何其他恰好包含此视图和维度的“探索”中,系统会将他们引导至“Users”探索,并加载一些其他字段和应用一个过滤条件。供参考:基于“探索”的条件网址链接

  1. 前往 Order Items“探索”。

  2. Users 视图中,选择 IDFirst NameLast NameState Link。点击运行

  3. 点击其中一个州,看看系统如何将您重定向到同一“探索”,并加载一些字段和应用一个过滤条件。尝试在包含相同视图和维度的其他“探索”中按照相同的步骤操作,看看 Liquid 逻辑会如何反应。

  4. 返回到 Order Items 视图。

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

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

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

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

点击检查我的进度,验证是否完成了上述任务。 使用 Liquid 进行高级链接

恭喜!

在本实验中,您在 Looker 中使用 Liquid 添加了指向维度的链接,使用 html 参数将维度值呈现为带链接的按钮,自定义了测量值的格式,并将条件纳入到链接中。

后续步骤/了解详情

Google Cloud 培训和认证

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

本手册的最后更新时间:2026 年 2 月 3 日

本实验的最后测试时间:2026 年 2 月 3 日

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

准备工作

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

使用无痕浏览模式

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

登录控制台

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

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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