使用 LookML 创建测量和维度

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

GSP890

Google Cloud 自学实验的徽标

概览

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

在 Looker 中,维度是数据的独特属性,用于描述数据特征。例如,在机场数据集中,机场所在的城市和海拔可作为不同维度。测量是对一个或多个维度(或数据的独特属性)的聚合计算,如计数、平均值等。测量可用于计算关键绩效指标 (KPI),并帮助业务用户通过各类聚合属性开展数据分析。

在本实验中,您将以 Looker 开发者的身份学习如何在 LookML 中创建不同类型的维度和测量。您还将学习如何修改探索的模型。探索作为一种数据视图,是业务用户在 Looker 中自主开展数据探索的基础。

本实验已为您在 LookML 中创建了名为 qwiklabs-ecommerce 的项目。此项目基于模拟电子商务数据集构建,您可通过 LookML 创建维度和测量,进而生成业务 KPI。如需详细了解 LookML 建模相关信息,请参阅 Looker 文档。

您将执行的操作

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

  • 修改 Looker 管理员发布的现有 LookML 项目 (qwiklabs-ecommerce)。
  • 在 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 实例。

任务 1. 创建维度

在 Looker 中,维度是可分组字段,可用于过滤查询结果。它可以是:

  • 属性,与底层表中的列直接关联
  • 事实或数值
  • 派生值,根据单行中其他字段的值计算得出

例如,“产品”视图的维度可能包括产品名称、产品型号、产品颜色、产品价格、产品创建日期和产品停产日期。

维度可将数据点进行分类,帮助您通过不同属性分析 KPI。您可以创建不同类型的维度(例如 timenumericyesnostring 类型),对数据进行多维度剖析。

创建新的年龄段维度

在本部分中,您将基于 age 维度创建名为 age_tier 的新维度,用于展示年龄区间。为此,您需要添加一个维度,将各个年龄划分为不同年龄段,分别对应以下分层:18、25、35、45、55、65、75、90

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

“开发模式”切换按钮

  1. 点击开发标签页,然后选择 qwiklabs-ecommerce LookML 项目。

  2. 进入 qwiklabs-ecommerce 项目后,点击视图旁边的箭头,查看视图名称列表。

  3. 点击 users.view

  4. users.view 中,找到 age 维度。您的视图文件应如下所示:

users-view 文件

维度字段(例如 age)对应于底层数据库表,或基于其他维度计算得出。

编辑器会在您输入时提供建议,但如果您遇到困难或需要查看不同参数及其属性的列表,可以随时参考 IDE 右侧的“快速帮助”菜单。

  1. age 维度下另起一行,使用以下代码定义名为 age_tier 的新维度:
dimension: age_tier { }
  1. 接下来,添加维度类型。此维度类型为 tier(分层型),因此需要添加以下内容:
dimension: age_tier { type: tier }
  1. 接下来,为该维度添加具体分层。在本例中,您需要先按 18 岁及以下分组,再按每 10 年为一个区间分组:
dimension: age_tier { type: tier tiers: [18, 25, 35, 45, 55, 65, 75, 90] }
  1. 接下来,定义样式参数。该参数是分层型维度的特有参数,可改变分层在界面中的显示方式。在本例中,需要将样式设置为 integer
dimension: age_tier { type: tier tiers: [18, 25, 35, 45, 55, 65, 75, 90] style: integer }
  1. 最后,添加 SQL 参数。SQL 参数用于告知 Looker 如何为用户运行的查询生成 SQL 语句。对于此维度,您需要告知 SQL 参数从已有的 age 字段中提取数据:
dimension: age_tier { type: tier tiers: [18, 25, 35, 45, 55, 65, 75, 90] style: integer sql: ${age} ;; }

您的文件现在应如下所示:

包含 id、age 和 age_tier 维度的 users.view 文件

添加新维度后,您可进行测试以确保其正常运行。

  1. 点击保存更改,然后点击 IDE 右上角的验证 LookML 按钮,运行 LookML 代码验证。

  2. 您可以点击 IDE 顶部文件标题旁边的光标,然后选择 Explore Order Items(探索订单项),快速前往相应探索。

users.view 下拉菜单,其中突出显示了“Explore Order Items”(探索订单项)选项。

此文件菜单只会显示在 LookML 中定义了探索的视图。

  1. 接下来,前往 Users > Dimensions > Age Tier(用户 > 维度 > 年龄段),找到新创建的维度。

  2. 添加 Age(年龄)和 Age Tier(年龄段)维度,然后点击运行。可以看到每个年龄都归入了正确的区间:

“Users Age”(用户年龄)和“Users Age Tier”(用户年龄段)列中填充了年龄。

  1. 现在,移除 Age(年龄)维度,添加 Count(计数)测量,然后再次点击运行。结果将符合您的预期:Looker 已对不同年龄进行计数,并将其归入相应年龄段。操作成功!

“Users Age Tier”(用户年龄段)和“用户计数”(Users Count)列中显示的各类年龄数据

创建新的邮件来源维度

在本部分中,您将基于 traffic_source 维度创建名为 is_email_source 的新维度。此维度用于判断吸引用户访问网站的流量来源是否为邮件渠道。

  1. 返回 qwiklabs-ecommerce 项目,打开 users.view 文件。

  2. 找到 traffic_source 维度。您的视图文件应如下所示:

users.view 文件,其中显示了 traffic_source 维度

  1. traffic_source 维度下另起一行,使用以下代码定义名为 is_email_source 的新维度:
dimension: is_email_source { }
  1. 接下来,添加类型参数。由于这是布尔型分类,需使用 yesno 类型:
dimension: is_email_source { type: yesno }
  1. 最后,添加 SQL 参数。对于此维度,您需要告知 SQL 参数从已有的 traffic_source 字段中提取值为“Email”的数据

  2. 指定“Email”时,请务必使用英文双引号 (""),以确保语法准确:

dimension: is_email_source { type: yesno sql: ${traffic_source} = "Email" ;; }

您的文件现在应如下所示:

users.view 文件,其中 is_email_source 维度包含以下行:sql: ${traffic_source} = "Email"

添加新维度后,您可进行测试以确保其正常运行。

  1. 点击保存更改,然后点击 IDE 右上角的验证 LookML 按钮,运行 LookML 代码验证。

  2. 点击 IDE 顶部文件标题旁边的光标,然后选择 Explore Order Items(探索订单项)。

users.view 下拉菜单中突出显示了“Explore Order Items”(探索订单项)选项。

  1. 接下来,前往 Users > Dimensions > Is Email Source (Yes / No)(用户 > 维度 > 是否为邮件来源 [是/否]),找到新创建的维度。

  2. 添加 Is Email Source(是否为邮件来源)维度和 Count(计数)测量,然后点击运行。结果将显示通过邮件渠道和非邮件渠道吸引的用户数量。操作成功!

“Users is Email Source (Yes/No)”(用户是否为邮件来源 [是/否])列和“Users Count”(用户计数)列中显示的结果

创建新的配送天数维度

在本部分中,您将在 order_items 视图中创建名为 shipping days 的新维度,用于计算订单发货日期与订单创建日期之间的天数差。

  1. 返回 qwiklabs-ecommerce 项目,打开 order_items.view 文件。

  2. 找到 shipped 维度组。您的视图文件应如下所示:

order_items.view 文件

  1. shipped 维度组下另起一行,使用以下代码定义名为 shipping_days 的新维度:
dimension: shipping_days { }
  1. 接下来,添加类型参数。对于此维度,您需要使用 number 类型:
dimension: shipping_days { type: number }
  1. 最后,添加 SQL 参数。对于此维度,您需要告知 SQL 参数对 shipped_datecreated_date 维度运行 DATE_DIFF 函数DAY 为计算间隔单位:
dimension: shipping_days { type: number sql: DATE_DIFF(${shipped_date}, ${created_date}, DAY);; }

您的文件现在应如下所示:

order_items.view 文件

  1. 添加新维度后,您可进行测试以确保其正常运行。点击保存更改,然后点击 IDE 右上角的验证 LookML 按钮,运行 LookML 代码验证。

  2. 点击 IDE 顶部文件标题旁边的光标,然后选择 Explore Order Items(探索订单项)。

  3. 接下来,前往 Order Items > Dimensions > Shipping Days(订单项 > 维度 > 配送天数),找到新创建的维度。

  4. 添加 Shipping Days(配送天数)维度和 Order Count(订单数量)测量,然后点击运行。结果将显示各订单的配送天数及订单数量。操作成功!

  5. 返回 order_items.view 文件。

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

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

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

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

点击“检查我的进度”以验证是否完成了以下目标: 创建新维度

任务 2. 创建测量

测量是使用 SQL 聚合函数(如 COUNTSUMAVGMINMAX)计算得出的字段。基于其他测量值计算得出的字段也属于测量。测量可用于过滤分组值。例如,“销售”视图的测量可能包括销售商品总数(计数)、总销售额(求和)和平均售价(平均值)。

字段的行为和预期值取决于其声明的类型,例如 stringnumbertime。对于测量,类型包括聚合函数,例如 sumpercent_of_previous。如需了解详情,请参阅维度类型测量类型

创建订单去重计数测量

测量字段用于对多行数据的值进行聚合计算。在本部分,您将在 order_items 视图中创建名为 count_distinct_orders 的新测量,用于计算订单的去重数量。

  1. 返回 qwiklabs-ecommerce 项目,打开 order_items.view 文件。

  2. order_items.view 中,找到 order_item_count 测量。

  3. order_item_count 测量下另起一行,使用以下代码定义名为 count_distinct_orders 的新测量:

measure: count_distinct_orders { } 注意:请务必将默认测量名称 (order_count) 替换为 count_distinct_orders
  1. 接下来,添加类型参数。对于此测量,您需要使用 count_distinct 类型。count_distinct 类型用于计算给定字段中不同值的数量,通过 SQL 的 COUNT DISTINCT 函数来实现:
measure: count_distinct_orders { type: count_distinct }
  1. 最后,添加 SQL 参数。对于此测量,您需要告知 SQL 参数从已有的 order_id 字段中提取数据:
measure: count_distinct_orders { type: count_distinct sql: ${order_id} ;; }

您的文件现在应如下所示:

order_iems.view 文件

添加新测量后,您可进行测试以确保其正常运行。

  1. 点击保存更改,然后点击 IDE 右上角的验证 LookML 按钮,运行 LookML 代码验证。

  2. 点击 IDE 顶部文件标题旁边的光标,然后选择 Explore Order Items(探索订单项)。

  3. Order Items(订单项)> Measures(测量)下,点击 Count Distinct Orders(订单去重计数)。

  4. 点击运行查看新测量中的值,即可确认新测量是否正常运行。

创建总销售额测量

在本部分中,您将基于 sale_price 维度创建名为 total_sales 的新测量,用于计算总销售额。

  1. 返回 qwiklabs-ecommerce 项目,打开 order_items.view 文件。

  2. order_items.view 中,找到 order_item_count 测量。

  3. order_item_count 测量下另起一行,使用以下代码定义名为 total_sales 的新测量:

measure: total_sales { }
  1. 添加类型参数。此处需要使用 sum
measure: total_sales { type: sum }
  1. 添加 SQL 参数。对于此测量,您需要告知 SQL 参数从已有的 sale_price 字段中提取数据:
measure: total_sales { type: sum sql: ${sale_price} ;; }
  1. 最后,添加 value_format_name。借助 value_format_name 参数,您可以使用 Looker 内置格式或自定义可重用格式来设置数据值的格式。由于此处计算的是售价,需要使用美元格式 (usd_0):
measure: total_sales { type: sum sql: ${sale_price} ;; value_format_name: usd_0 }

您的文件现在应如下所示:

order_items.view 文件

添加新测量后,您可进行测试以确保其正常运行。

  1. 点击保存更改,然后点击 IDE 右上角的验证 LookML 按钮,运行 LookML 代码验证。

  2. 点击 IDE 顶部文件标题旁边的光标,然后选择 Explore Order Items(探索订单项)。

  3. Order Items(订单项)> Measures(测量)下,点击 Total Sales(总销售额)。

  4. 点击运行查看新测量中的值。

“结果”页面

  1. 返回 order_items.view 文件。

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

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

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

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

点击“检查我的进度”以验证是否完成了以下目标: 创建测量

任务 3. 创建高级测量

借助高级测量,您可以基于当前视图文件外部定义的维度创建额外的自定义测量。您还可通过指定特定过滤条件,创建特殊类型的过滤测量。

创建经过过滤的测量,计算仅通过邮件渠道引流至网站的用户所产生的总销售额

在本部分中,您将创建名为 total_sales_email_users 的新高级测量,用于计算仅通过邮件渠道引流至网站的用户所产生的总销售额。

  1. 返回 qwiklabs-ecommerce 项目,打开 order_items.view 文件。

  2. order_items.view 中,找到 order_item_count 测量。

  3. order_item_count 测量下另起一行,使用以下代码定义名为 total_sales_email_users 的新测量:

measure: total_sales_email_users { }
  1. 接下来,添加类型。由于此处计算的是总销售额,需要使用 sum
measure: total_sales_email_users { type: sum }
  1. 添加 SQL 参数。对于此测量,您需要告知 SQL 参数从已有的 sale_price 字段中提取数据:
measure: total_sales_email_users { type: sum sql: ${sale_price} ;; }

最后,添加 filters 参数。如需直接对测量应用过滤条件(而非过滤整个查询),可在测量的 LookML 定义中添加 filters 参数。该参数将以 CASE WHEN 语句的形式,在生成的 SQL 中对测量应用过滤条件,而非对整个查询添加全局 WHERE 子句。

因此,过滤后的测量不会在聚合后从查询中移除行,而是仅对符合指定条件的行进行聚合。这种方式支持您对比分析总体数据与各类子集数据。

  1. 添加以下过滤条件参数。此处将使用您之前在 users.view 文件中创建的 is_email_source 维度:
measure: total_sales_email_users { type: sum sql: ${sale_price} ;; filters: [users.is_email_source: "Yes"] } 注意: 您也可以使用以下代码引用 traffic_source 维度。 measure: total_sales_email_users { type: sum sql: ${sale_price} ;; filters: [users.traffic_source: "Email"] }

您的文件现在应如下所示:

order_items.view 文件

添加新测量后,您可进行测试以确保其正常运行。

  1. 点击保存更改,然后点击 IDE 右上角的验证 LookML 按钮,运行 LookML 代码验证。

  2. 点击 IDE 顶部文件标题旁边的光标,然后选择 Explore Order Items(探索订单项)。

  3. Order Items(订单项)> Measures(测量)下,点击 Total Sales Email Users(邮件来源用户总销售额)。

  4. 点击运行查看新测量中的值。

“结果”页面

创建一项测量,计算通过邮件渠道引流的用户所贡献销售额占总销售额的百分比

在本部分中,您将创建名为 percentage_sales_email_source 的新高级测量,用于计算通过邮件渠道引流的用户所贡献销售额占总销售额的百分比。

  1. 返回 qwiklabs-ecommerce 项目,打开 order_items.view 文件。

  2. order_items.view 中,找到 order_item_count 测量。

  3. order_item_count 测量下另起一行,使用以下代码定义名为 percentage_sales_email_source 的新测量:

measure: percentage_sales_email_source { }
  1. 接下来,添加类型。由于此处计算的是总销售额,需要使用 number
measure: percentage_sales_email_source { type: number }
  1. 接下来添加 value_format_name 参数。由于计算的是百分比,可使用 percent_2
measure: percentage_sales_email_source { type: number value_format_name: percent_2 }
  1. 添加 SQL 参数。对于此测量,您需要告知 SQL 参数从已有的 total_sales_email_users 字段中提取数据,并除以 total_sales
注意: 创建百分比测量时,通常需要确保百分比计算中不会出现除数为零的情况,可通过 NULLIF SQL 函数实现。 measure: percentage_sales_email_source { type: number value_format_name: percent_2 sql: 1.0*${total_sales_email_users} / NULLIF(${total_sales}, 0) ;; }

您的文件现在应如下所示:

order_items.view 文件

添加新测量后,您可进行测试以确保其正常运行。

  1. 点击保存更改,然后点击 IDE 右上角的验证 LookML 按钮,运行 LookML 代码验证。

  2. 点击 IDE 顶部文件标题旁边的光标,然后选择 Explore Order Items(探索订单项)。

  3. Order Items(订单项)> Measures(测量)下,点击 Percentage Sales Email Source(邮件来源销售占比)。

  4. 点击运行查看新测量中的值,操作成功!

“结果”页面

  1. 返回 order_items.view 文件。

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

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

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

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

点击“检查我的进度”以验证是否完成了以下目标: 创建高级测量

恭喜!

在本实验中,您以 Looker 开发者的身份学习了如何在 LookML 中创建不同类型的维度和测量。您还学习了如何修改探索的模型,以及如何创建带过滤条件的高级测量。探索作为一种数据视图,是业务用户在 Looker 中自主开展数据探索的基础。

后续步骤/了解详情

Google Cloud 培训和认证

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

本手册的最后更新时间:2024 年 4 月 22 日

本实验的最后测试时间:2023 年 5 月 18 日

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

准备工作

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

使用无痕浏览模式

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

登录控制台

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

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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