
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Run Cloud Dataprep jobs to BigQuery
/ 100
本实验由 Google 与我们的合作伙伴 Alteryx 共同开发。如果您在账号个人资料中选择接收产品动态、通知和优惠信息,那么您的个人信息可能会分享给实验赞助商 Alteryx。
Dataprep by Trifacta 是一项智能数据服务,可以让您直观地探索、清理和准备结构化数据和非结构化数据,以进行分析。在本实验中,您将探索如何利用 Dataprep 界面 (UI) 构建将结果输出到 BigQuery 的数据转换流水线。
本实验将使用一个电子商务数据集,其中包含 Google Merchandise Store 的上百万条 Google Analytics 会话记录,这些记录已加载到 BigQuery 中。在本实验中,您将探索可用字段和行,并准备供分析使用的数据。
在本实验中,您将学习如何执行以下任务:
在尝试本实验之前,建议您先完成在 Google Cloud 上使用 Cloud Dataprep 实验。
请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。
此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。我们会为您提供新的临时凭据,让您可以在实验规定的时间内用来登录和访问 Google Cloud。
为完成此实验,您需要:
点击开始实验按钮。如果该实验需要付费,系统会打开一个弹出式窗口供您选择付款方式。左侧是实验详细信息面板,其中包含以下各项:
点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。
该实验会启动资源并打开另一个标签页,显示登录页面。
提示:请将这些标签页安排在不同的窗口中,并将它们并排显示。
如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。
您也可以在实验详细信息面板中找到用户名。
点击下一步。
复制下面的密码,然后将其粘贴到欢迎对话框中。
您也可以在实验详细信息面板中找到密码。
点击下一步。
继续在后续页面中点击以完成相应操作:
片刻之后,系统会在此标签页中打开 Google Cloud 控制台。
您应该会看到指出已创建服务身份的消息。
在 Cloud 控制台中,找到导航菜单,选择分析下的 Dataprep。
要进入 Dataprep,请确认您已同意 Google Dataprep 服务条款,然后点击接受。
点击相应复选框,当系统提示您将与 Alteryx 分享账号信息时,点击同意并继续。
点击允许以授予 Alteryx 对您项目的访问权限。
选择您的 Qwiklabs 凭据进行登录,然后点击允许。
选中相应复选框,然后点击接受以同意 Alteryx 服务条款。
当系统提示您将使用存储桶的默认位置时,点击继续。
本实验主要用到的是 Cloud Dataprep,不过您需要将 BigQuery 作为将数据集注入流水线的端点,以及流水线完成后的输出目标。
在 Cloud 控制台中,选择导航菜单 > BigQuery。
您会看到欢迎在 Cloud 控制台中使用 BigQuery 消息框,其中会显示快速入门指南的链接以及界面更新。
点击完成。
在探索器窗格中,选择您的项目名称:
ecommerce
。点击创建数据集。现在,左侧窗格中您的项目下会显示您的数据集。
复制以下 SQL 查询并粘贴到查询编辑器中:
点击运行。此查询会将公共原始电子商务数据集的一个子集(一天的会话数据,约有 56,000 条记录)复制到名为 all_sessions_raw_dataprep
的一个新表中,该表已添加到您的电子商务数据集中,以便您在 Cloud Dataprep 中探索和清理。
确认该新表存在于您的 ecommerce
数据集中。
在此任务中,您需要将 Cloud Dataprep 连接到您的 BigQuery 数据源。在 Cloud Dataprep 页面上:
点击右上角的 Create a flow(创建流)。
将 Untitled Flow(未命名的流)重命名,并指定以下详细信息:
Ecommerce Analytics Pipeline
Revenue reporting table
点击 Ok(确定)。
如果弹出提示 What's a flow?
(什么是流?),选择Don't show me any helpers(不再显示任何帮助信息)。
点击“Dataset”(数据集)框中的 Add(添加)图标。
在 Add Datasets to Flow(将数据集添加到流)对话框中,选择 Import Datasets(导入数据集)。
在左侧窗格中,点击 BigQuery。
您的 ecommerce 数据集加载完毕后,点击该数据集。
点击 all_sessions_raw_dataprep
表左侧的 Create dataset(创建数据集)图标(“+”号)。
点击右下角的 Import & Add to Flow(导入并添加到流)。
数据源会自动更新。现在,您就可以开始执行下一个任务了。
在此任务中,您将在 Cloud Dataprep 中加载并探索一个数据集样本。
Cloud Dataprep 会将数据集样本加载到 Transformer 视图中。此过程可能需要几秒钟的时间。现在,您就可以开始探索数据了!
请回答以下问题:
答案:32 列。
答案:约 12,000 行。
channelGrouping
列中最常见的值是什么?channelGrouping
列标题下的直方图上即可找到答案。
答案:Referral。引荐网站通常是指包含指向您内容的链接的任何其他网站。比如,评论了我们电子商务网站上的某件商品并关联到该商品的另一个网站就是一个引荐网站。相对于来自搜索引擎的访问者,这被视为另一种流量获取渠道。
答案:美国、印度、英国
答案:totalTransactionRevenue
字段缺少值。这意味着此样本中的很多会话都没有产生收入。稍后,我们将滤除这些值,让最终的表仅包含客户交易和相关收入。
timeOnSite
(以秒为单位)、最大 pageviews
和最大 sessionQualityDim
分别是多少?(提示:点击 timeOnSite
列右侧的 要关闭详细信息窗口,请点击右上角的关闭列详细信息 (X) 按钮。然后重复上述过程,以查看 pageviews
和 sessionQualityDim
列的详细信息。
答案:
timeOnSite
这样的字段,在每个会话中只会统计一次。在后面的实验中,我们将探索访问者数据和会话数据的唯一性。
sessionQualityDim
的直方图,其中的数据值是均匀分布的吗?答案:不是。它们偏向较低的值(低质量会话),这是正常的。
答案:2017 年 8 月 1 日(一天的数据)
productSKU
列下看到一个红色条。如果看到了这个红色条,那么它可能代表什么?答案:红色条表示存在不匹配的值。在对数据进行采样时,Cloud Dataprep 会尝试自动识别每个列的类型。如果您没有看到 productSKU
列的红色条,则表明 Cloud Dataprep 正确识别了该列的类型(即“字符串”类型)。如果您看到了这个红色条,则表明 Cloud Dataprep 在采样过程中发现了足够多的数字值,从而错误地判断该类型应该是整数值。Cloud Dataprep 还检测到了一些非整数值,因此将这些值标记为不匹配。事实上,productSKU
并不一定是整数值(例如,正确的值可能是“GGOEGOCD078399”)。所以在这种情况下,Cloud Dataprep 错误地识别了列类型。列类型应为“字符串”,而非“整数值”。稍后,您将在本实验中修复此错误。
v2ProductName
列,最热门的商品是什么?答案:Nest 产品
v2ProductCategory
列,最热门的商品类别有哪些?答案:
最热门的商品类别是:
Nest
Bags
(not set)(表示部分会话没有关联的类别)
判断正误。最常见的 productVariant
是 COLOR
。
答案:错误。正确答案是 (not set),因为大部分商品都没有变体(80% 以上)
答案:PAGE
和 EVENT
用户在浏览您的网站时可能会进行多种不同类型的互动。其中包括在查看某个页面 (PAGE) 或完成点击某件商品等特殊事件 (EVENT) 时记录会话数据以及其他互动类型。多种命中类型可能会在完全相同的时间触发,因此您通常需要对类型进行过滤以免重复统计。我们将在稍后的分析实验中进一步探索此话题。
productQuantity
是多少?答案:100(您的答案可能会有所不同)
productQuantity
表示添加到购物车的某个商品的数量。“100”表示添加的单个商品的件数为 100。
currencyCode
是什么?答案:USD(美元)
itemQuantity
或 itemRevenue
存在有效值吗?答案:不存在。它们都是 NULL
值(缺失值)。
transactionId
值中的有效值所占百分比是多少?这对我们的 ecommerce
数据集意味着什么?eCommerceAction_type
值有多少个?最常见的值是什么?答案:我们的样本中有 7 个值。最常见的值是零 0
,表示类型未知。这是合理的,因为我们网站上发生的大多数网络会话都未执行任何电子商务操作,只是进行了浏览。
eCommerceAction_type = 6
代表什么?eCommerceAction
类型并查看相关映射说明
答案:“6”映射到“已完成购买”。在本实验的后面部分,我们会在数据流水线中注入此映射。
在此任务中,您将通过删除未使用的列、消除重复项、创建计算字段和滤除不需要的行来清理数据。
前面提到过,我们将删除 itemQuantity 和 itemRevenue 列,因为它们只包含 NULL 值,对于此实验没有用处。
您的团队通知您,源数据集中可能包含重复的会话值。我们将通过新的去重步骤来移除这些值。
点击右侧面板中的 Add(添加)。
检查您目前为止创建的配方,其内容应如下所示:
您的团队要求您创建一个表,在其中包含从该网站至少购买了一件商品的所有用户会话。您需要滤除收入为 NULL 值的用户会话。
此步骤将过滤您的数据集,以仅包含产生收入的交易(即 totalTransactionRevenue 不为 NULL)。
该数据集包含了不同类型的会话,例如 PAGE(表示网页浏览量)或 EVENT(表示触发的事件,如“查看了商品类别”或“添加到购物车”)。为避免重复统计会话中的网页浏览量,请添加一个过滤器,以仅包含与网页浏览量相关的命中。
在直方图中的 type(类型)列下,点击 PAGE 条。现在,类型为 PAGE 的所有行都以绿色突出显示。
在 Suggestions(建议)面板中的 Keep rows(保留行)中,点击 Add(添加)。
在架构文档中搜索 visitId 并阅读相关说明,以确定该 ID 是在所有用户会话中具有唯一性,还是仅对相应用户具有唯一性。
visitId
:此会话的标识符。它是通常存储为 utmb
Cookie 的值的一部分,仅对相应用户具有唯一性。要获得完全唯一的 ID,应将 fullVisitorId 与 visitId 结合使用。可以看到,visitId
在用户中不是唯一的。我们需要创建一个唯一标识符。
您已经注意到了,该数据集没有记录唯一身份访问者会话的单个列。通过串联 fullVisitorId 和 visitId 字段,为每个会话创建唯一 ID。
对于 Columns(列),选择 fullVisitorId
和 visitId
。
对于 Separator(分隔符),输入一个连字符:-
。
对于 New column name(新列名),输入 unique_session_id
。
unique_session_id
现在由 fullVisitorId
和 visitId
组合而成。在后面的实验中,我们将探索此数据集中的每一行是处于唯一会话级别(一行对应一个用户会话),还是更精细的级别。
正如您之前看到的,eCommerceAction_type
列中的值是整数,这些整数映射到该会话中执行的实际电子商务操作。例如,3 =“添加到购物车”或 5 =“结账”。这种映射对最终用户而言不太直观,因此我们来创建一个计算字段提取这些值的名称。
对于 Column to evaluate(要评估的列),指定 eCommerceAction_type
。
在 Case (1) 旁边点击 Add(添加)8 次,总共添加 9 个 Case 语句。
Comparison(比较) |
New value(新值) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
在 New column name(新列名)部分,输入 eCommerceAction_label
。将其他字段保留默认值。
点击 Add(添加)。
如架构文档中所述,totalTransactionRevenue 列包含的是传递给 Analytics 的值乘以 10^6 之后得出的值(例如,2.40 将表示为 2400000)。现在,您需要将该列的内容除以 10^6,以获得原始值。
DIVIDE(totalTransactionRevenue,1000000)
,对于 New column name(新列名),输入 totalTransactionRevenue1
。留意看此转换的预览:totalTransactionRevenue1
列下看到一个红色条。点击 totalTransactionRevenue1
列右侧的 在 Run Job(运行作业)页面,对于 Running Environment(运行环境),选择 Dataflow + BigQuery。
在 Publishing Actions(发布操作)下,点击 Create-CSV(创建 CSV)右侧的 Edit(修改)。
在随即显示的页面中,选择左侧菜单中的 BigQuery。
选择您的 ecommerce 数据集。
点击右侧面板中的 Create a New Table(创建新表)。
将该表命名为 revenue_reporting。
选择 Drop the Table every run(每次运行时删除表)。
点击 Update(更新)。
点击 RUN(运行)。
Cloud Dataprep 作业完成后,刷新 BigQuery 页面,确认输出表 revenue_reporting 存在。
点击检查我的进度以验证是否完成了以下目标:
您成功探索了电子商务数据集,并使用 Cloud Dataprep 创建了一个数据转换流水线。
…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。
上次更新手册的时间:2024 年 2 月 11 日
上次测试实验的时间:2023 年 9 月 20 日
版权所有 2025 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
One lab at a time
Confirm to end all existing labs and start this one