准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Disable and re-enable the Dataflow API
/ 10
Create a Cloud Storage Bucket
/ 10
Copy Files to Your Bucket
/ 10
Create the BigQuery Dataset (name: lake)
/ 20
Build a Data Ingestion Dataflow Pipeline
/ 10
Build a Data Transformation Dataflow Pipeline
/ 10
Build a Data Enrichment Dataflow Pipeline
/ 10
Build a Data lake to Mart Dataflow Pipeline
/ 20
Disable and re-enable the Dataflow API
/ 10
Create a Cloud Storage Bucket
/ 10
Copy Files to Your Bucket
/ 10
Create the BigQuery Dataset (name: lake)
/ 20
Build a Data Ingestion Dataflow Pipeline
/ 10
Build a Data Transformation Dataflow Pipeline
/ 10
Build a Data Enrichment Dataflow Pipeline
/ 10
Build a Data lake to Mart Dataflow Pipeline
/ 20
Dataflow 是一项 Google Cloud 服务,支持大规模的统一流式数据处理和批量数据处理操作。它基于 Apache Beam 项目构建,该项目是一种开源模型,用于定义批量数据和流式数据并行处理流水线。借助其中一个开源 Apache Beam SDK,您可以构建一个程序来定义流水线,然后使用 Dataflow 执行该流水线。
在本实验中,您将使用 Python 版 Apache Beam SDK 在 Dataflow 中构建和运行流水线,将 Cloud Storage 中的数据注入 BigQuery,然后在 BigQuery 中转换和丰富数据。
在本实验中,您将学习如何构建和运行 Dataflow 流水线 (Python),以便执行以下任务:
请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。
此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。
为完成此实验,您需要:
点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。右侧是实验设置和访问权限面板,其中包含以下内容:
请注意,实验计时器位于页面顶部附近,将显示剩余时间。
点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。
该实验会启动资源并打开另一个标签页,显示“登录”页面。
提示:可以将这些标签页分别放在不同的窗口中,并排显示。
如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。
您也可以在实验设置和访问权限面板中找到“用户名”。
点击下一步。
复制下面的密码,然后将其粘贴到欢迎对话框中。
您也可以在实验设置和访问权限面板中找到“密码”。
点击下一步。
依次点击进入后续页面:
片刻之后,系统会在此标签页中打开 Google Cloud 控制台。
Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。
点击 Google Cloud 控制台顶部的激活 Cloud Shell 。
在弹出的窗口中执行以下操作:
如果您连接成功,即表示您已通过身份验证,且项目 ID 会被设为您的 Project_ID
gcloud 是 Google Cloud 的命令行工具。它已预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。
输出:
输出:
gcloud 的完整文档,请参阅 gcloud CLI 概览指南。
为了确保能访问这个必要的 API,请重新启动与 Dataflow API 的连接。
重新启用该 API 后,页面会显示停用选项。
点击检查我的进度以验证您已完成的任务。
下载要在本实验中使用的 Dataflow Python 示例。
在 Cloud Shell 中创建一个 Cloud Storage 存储桶,然后将文件复制到该存储桶。这些文件是 Dataflow Python 示例。
点击检查我的进度以验证您已完成的任务。
gsutil 命令将文件复制到刚才创建的 Cloud
Storage 存储桶中:
点击检查我的进度以验证您已完成的任务。
创建一个 BigQuery 数据集。您的表将加载到 BigQuery 中的这个数据集中。
lake 的数据集:
点击检查我的进度以验证您已完成的任务。
在此任务中,您将查看流水线代码,了解其工作原理。然后,您将设置并运行流水线。
数据注入流水线使用 TextIO 作为来源、BigQueryIO 作为目的地,将 Cloud Storage 中的数据注入到 BigQuery 表中。具体而言,该流水线将执行以下操作:
您可以在集成开发环境 (IDE)(例如 Cloud Shell)中使用 Gemini Code Assist,以获取代码方面的指导或解决代码问题。您需要先启用 Gemini Code Assist,然后才能使用该功能。
点击屏幕底部状态栏中的 Cloud Code - 无项目。
按照说明对插件进行授权。如果系统未自动选择项目,请点击选择 Google Cloud 项目,然后选择
检查您的 Google Cloud 项目 (
在本部分中,请向 Gemini Code Assist 发出提示,以便获取有关数据注入流水线的更多信息,从而为新团队成员提供概览。
在 Cloud Shell 编辑器的文件探索器中,前往 dataflow_python_examples > dataflow_python_examples > data_ingestion.py。
打开 data_ingestion.py 文件。此操作会启用 Gemini Code
Assist,启用后,编辑器右上角会显示
图标。
点击 Gemini Code Assist:智能操作
图标,然后选择 Explain this(解释此内容)。
Gemini Code Assist 会打开一个聊天窗格,其中预填充了
Explain this 提示。在 Code Assist
聊天窗格的内嵌文本框中,将预填充的提示替换为以下内容,然后点击发送:
这些代码会使用 Cloud Storage 中的数据文件填充 BigQuery 表。data_ingestion.py
文件中代码的详细说明会显示在 Gemini Code Assist 聊天中。
在本部分中,您将返回 Cloud Shell 会话,以便设置所需的 Python 库。
在本实验中,Dataflow 作业需要使用
Python3.8。为确保您使用的是正确的版本,请在 Python 3.8 Docker
容器中运行 Dataflow 进程。
此命令会拉取包含 Python 3.8 最新稳定版的 Docker 容器,并执行一个命令
shell,以便在容器内运行后续命令。-v
标志会将源代码作为容器的一个卷提供,这样,我们在 Cloud Shell
编辑器中修改源代码的同时,仍能在运行的容器中访问源代码。
apache-beam 安装在运行的容器中:
这些代码会启动所需的工作器,并在流水线完成后将它们关闭。
Dataflow 页面打开后,查看作业的状态。
作业状态显示为成功后,您便可执行下一步。此注入流水线从启动、完成工作到关闭,大约需要五分钟时间。
前往 BigQuery(导航菜单 > BigQuery),确认是否已填充数据。
点击项目名称,查看 lake 数据集下的
usa_names 表。
usa_names 数据的示例。
usa_names 表,请尝试刷新页面或使用经典版 BigQuery 界面来查看此表。
点击检查我的进度以验证您已完成的任务。
在此任务中,您将查看数据转换流水线,了解其工作原理。然后,您将运行该流水线来处理 Cloud Storage 文件,并将结果输出到 BigQuery。
数据转换流水线还将使用 TextIO 作为来源、BigQueryIO 作为目的地,将 Cloud Storage 中的数据注入 BigQuery 表中,但会进行额外的数据转换。具体而言,该流水线将执行以下操作:
在本部分中,您将输入提示,让 Gemini Code Assist 提供有关数据转换流水线的更多信息,以便进一步为新团队成员提供帮助。
在 Cloud Shell 菜单栏中点击打开编辑器。
在 Cloud Shell 编辑器中的同一目录下,找到
data_transformation.py 文件。与之前一样,请注意编辑器右上角的
图标。
点击 Gemini Code Assist:智能操作
图标,然后选择 Explain this(解释此内容)。
Gemini Code Assist 会打开一个聊天窗格,其中预填充了
Explain this 提示。在 Code Assist
聊天窗格的内嵌文本框中,将预填充的提示替换为以下内容,然后点击发送:
针对 data_transformation.py 文件中代码的说明会显示在
Gemini Code Assist 聊天中。
在 Google Cloud 控制台标题栏的搜索字段中输入 Dataflow,然后点击搜索结果中的 Dataflow。
点击此作业名称可查看作业状态。
此 Dataflow 流水线从启动、完成工作到关闭,大约需要五分钟时间。
您应该可在 lake 数据集下看到
usa_names_transformed 表。
usa_names_transformed 数据的示例。
usa_names_transformed 表,请尝试刷新页面或使用经典版 BigQuery 界面来查看此表。
点击检查我的进度以验证您已完成的任务。
现在,您将构建一个数据丰富化流水线,以实现以下目标:
在本部分中,您将利用 Gemini Code Assist 中 AI 赋能的功能,来查看和修改数据丰富化流水线的 Python 代码。
在 Cloud Shell 菜单栏中点击打开编辑器。
在 Cloud Shell 编辑器中,仍在同一目录中,找到
data_enrichment.py。与之前一样,请注意编辑器右上角的
图标。
点击工具栏上的 Gemini Code Assist:智能操作
图标。
如需更新第 83 行的代码,请将以下提示粘贴到从工具栏中打开的 Gemini Code Assist 内嵌文本字段中。
如需提示 Gemini Code Assist 按要求修改代码,请按 Enter 键。
在 Gemini Diff 视图中看到提示时,点击接受。
data_enrichment.py 文件中更新后的第 83 行现在如下所示:
此 Dataflow 流水线从启动、完成工作到关闭,大约需要五分钟时间。
您应该可在 lake 数据集下看到
usa_names_enriched 表。
usa_names_enriched 数据的示例。
usa_names_enriched 表,请尝试刷新页面或使用经典版 BigQuery 界面来查看此表。
点击检查我的进度以验证您已完成的任务。
接下来,您需要构建一条 Dataflow 流水线,从两个 BigQuery 数据源读取数据,然后联接这两个数据源。具体操作如下:
您首先要查看
data_lake_to_mart.py
代码,了解其作用。然后,您将在云端运行该流水线。
data_lake_to_mart.py 文件。
查看文件中的注释,这些注释解释了代码的作用。此代码会联接两个表,并将结果写入 BigQuery 中的新表。
在 Google Cloud 控制台标题栏的搜索字段中输入 Dataflow,然后点击搜索结果中的 Dataflow。
点击此新作业以查看作业状态。
此 Dataflow 流水线从启动、完成工作到关闭,大约需要五分钟时间。
您应该可在 lake 数据集下看到
orders_denormalized_sideinput 表。
orders_denormalized_sideinput 数据的示例。
orders_denormalized_sideinput 表,请尝试刷新页面或使用经典版 BigQuery 界面来查看此表。
点击检查我的进度以验证您已完成的任务。
下面有一道选择题可强化您对此实验所涉概念的理解。请尽您所能回答。
您借助 Gemini Code Assist,使用 Dataflow 执行了 Python 代码,将 Cloud Storage 中的数据注入到 BigQuery 中,然后在 BigQuery 中转换并丰富了数据。
想要查找更多参考信息?请点击以下链接查看官方文档:
…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。
本手册的最后更新时间:2025 年 9 月 1 日
本实验的最后测试时间:2025 年 9 月 1 日
版权所有 2026 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验
完成此快速步骤即可开始实验。