arrow_back

Dataflow:Qwik Start - 模板

登录 加入
欢迎加入我们的社区,一起测试和分享您的知识!
done
学习 700 多个动手实验和课程并获得相关技能徽章

Dataflow:Qwik Start - 模板

实验 45 分钟 universal_currency_alt 1 个积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
欢迎加入我们的社区,一起测试和分享您的知识!
done
学习 700 多个动手实验和课程并获得相关技能徽章

GSP192

Google Cloud 自定进度实验

概览

在本实验中,您将学习如何使用 Google 的 Dataflow 模板之一创建流处理流水线。具体来说,您将使用 Pub/Sub to BigQuery 模板,该模板会从 Pub/Sub 主题中读取以 JSON 格式编写的消息,并将其推送到 BigQuery 表。您可以在有关 Google 提供的模板的入门指南中找到关于此模板的文档。

您可以选择使用 Cloud Shell 命令行或 Cloud 控制台来创建 BigQuery 数据集和表。请选择一种方法,然后在本实验的后续操作中始终使用该方法。如果您两种方法都想体验,可以再次挑战本实验。

您将执行的操作

  • 创建 BigQuery 数据集和表
  • 创建 Cloud Storage 存储桶
  • 使用 Pub/Sub to BigQuery Dataflow 模板创建流处理流水线

设置

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

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。我们会为您提供新的临时凭据,让您可以在实验规定的时间内用来登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:如果您已有自己的个人 Google Cloud 账号或项目,请不要在此实验中使用,以避免您的账号产生额外的费用。

如何开始实验并登录 Google Cloud 控制台

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个弹出式窗口供您选择付款方式。左侧是实验详细信息面板,其中包含以下各项:

    • 打开 Google Cloud 控制台按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。

    该实验会启动资源并打开另一个标签页,显示登录页面。

    提示:请将这些标签页安排在不同的窗口中,并将它们并排显示。

    注意:如果您看见选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。

    {{{user_0.username | "<用户名>"}}}

    您也可以在实验详细信息面板中找到用户名

  4. 点击下一步

  5. 复制下面的密码,然后将其粘贴到欢迎对话框中。

    {{{user_0.password | "<密码>"}}}

    您也可以在实验详细信息面板中找到密码

  6. 点击下一步

    重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本次实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  7. 继续在后续页面中点击以完成相应操作:

    • 接受条款及条件。
    • 由于该账号为临时账号,请勿添加账号恢复选项或双重验证。
    • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:如需查看列有 Google Cloud 产品和服务的菜单,请点击左上角的导航菜单导航菜单图标

激活 Cloud Shell

Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。

  1. 点击 Google Cloud 控制台顶部的激活 Cloud Shell “激活 Cloud Shell”图标

如果您连接成功,即表示您已通过身份验证,且当前项目会被设为您的 PROJECT_ID 环境变量所指的项目。输出内容中有一行说明了此会话的 PROJECT_ID

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud 是 Google Cloud 的命令行工具。它已预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。

  1. (可选)您可以通过此命令列出活跃账号名称:
gcloud auth list
  1. 点击授权

  2. 现在,输出的内容应如下所示:

输出:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (可选)您可以通过此命令列出项目 ID:
gcloud config list project

输出

[core] project = <project_ID>

输出示例

[core] project = qwiklabs-gcp-44776a13dea667a6 Note: For full documentation of gcloud, in Google Cloud, refer to the gcloud CLI overview guide.

任务 1. 确保已成功重新启用 Dataflow API

为了确保能访问这个必要的 API,请重新启动与 Dataflow API 的连接。

  1. 在 Cloud 控制台的顶部搜索栏中输入“Dataflow API”。点击 Dataflow API 的搜索结果。

  2. 点击管理

  3. 点击停用 API

如果系统要求您确认,请点击停用

  1. 点击启用

该 API 再次启用后,页面将显示停用选项。

验证您已完成的任务

点击检查我的进度,验证您已完成的任务。

停用并重新启用 Dataflow API。

任务 2. 使用 Cloud Shell 创建 BigQuery 数据集、BigQuery 表和 Cloud Storage 存储桶

我们首先创建一个 BigQuery 数据集和表。

注意:此任务使用 bq 命令行工具。如果您想使用 Cloud 控制台完成这些步骤,请跳转至任务 3。
  1. 运行以下命令,创建名为 taxirides 的数据集:
bq mk taxirides

您的输出应如下所示:

Dataset '' successfully created

验证您已完成的任务

点击检查我的进度,验证您已完成的任务。如果您成功创建了 BigQuery 数据集,系统会显示一个评估分数。

创建 BigQuery 数据集(名称:taxirides)。

创建好数据集后,您将在后面的步骤中使用该数据集来实例化一个 BigQuery 表。

  1. 运行以下命令来进行实例化:
bq mk \ --time_partitioning_field timestamp \ --schema ride_id:string,point_idx:integer,latitude:float,longitude:float,\ timestamp:timestamp,meter_reading:float,meter_increment:float,ride_status:string,\ passenger_count:integer -t taxirides.realtime

您的输出应如下所示:

Table 'myprojectid:taxirides.realtime' successfully created

验证您已完成的任务

点击检查我的进度,验证您已完成的任务。如果您在 BigQuery 数据集中成功创建了表,系统会显示一个评估分数。

在 BigQuery 数据集中创建表。

bq mk 命令看起来有点复杂。不过,借助 BigQuery 命令行文档,您可以分解此处的操作。例如,该文档会帮助我们稍微深入地了解架构

  • 此元素可以是本地 JSON 架构文件的路径,或者是一个以英文逗号分隔的列定义列表,格式如下:[FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE]

在本实验中,我们将使用后者,即逗号分隔列表。

使用 Cloud Shell 创建 Cloud Storage 存储桶

完成表的实例化后,我们来创建一个存储桶。

使用项目 ID 作为存储桶名称,以确保该名称是全局唯一的:

  • 运行以下命令来创建该存储桶:
export BUCKET_NAME={{{project_0.project_id | "Bucket Name"}}} gsutil mb gs://$BUCKET_NAME/

验证您已完成的任务

点击检查我的进度,验证您已完成的任务。如果您成功创建了 Cloud Storage 存储桶,系统会显示一个评估分数。

创建 Cloud Storage 存储桶。

创建完存储桶后,向下滚动到运行流水线部分。

任务 3. 使用 Google Cloud 控制台创建 BigQuery 数据集、BigQuery 表和 Cloud Storage 存储桶

注意:如果已完成任务 2,请不要再完成任务 3,因为任务 3 会在命令行执行相同的任务!
  1. 在左侧菜单的“大数据”部分,点击 BigQuery

  2. 然后,点击完成

  3. 探索器部分下,点击您的项目名称旁边的三个点,然后点击创建数据集

  4. 输入 taxirides 作为您的数据集 ID:

  5. 在“数据位置”中选择 us(美国的多个区域)

  6. 保留所有其他默认设置,然后点击创建数据集

验证您已完成的任务

点击检查我的进度,验证您已完成的任务。如果您成功创建了 BigQuery 数据集,系统会显示一个评估分数。

创建 BigQuery 数据集(名称:taxirides)。
  1. 您现在应该在左侧控制台的项目 ID 下方看到 taxirides 数据集。

  2. 点击 taxirides 数据集旁边的三个点,选择打开

  3. 然后选择控制台右侧的创建表

  4. 目标位置 > 表名称字段中,输入 realtime

  5. 在“架构”下方,切换以文本形式修改滑块,并输入以下内容:

ride_id:string,point_idx:integer,latitude:float,longitude:float,timestamp:timestamp, meter_reading:float,meter_increment:float,ride_status:string,passenger_count:integer

您的控制台应如下图所示:

“创建表”页面

  1. 现在,点击创建表

验证您已完成的任务

点击检查我的进度,验证您已完成的任务。如果您在 BigQuery 数据集中成功创建了表,系统会显示一个评估分数。

在 BigQuery 数据集中创建表。

使用 Cloud 控制台创建 Cloud Storage 存储桶

  1. 返回 Cloud 控制台,然后依次访问 Cloud Storage > 存储桶 > 创建存储桶

  2. 使用项目 ID 作为存储桶名称,以确保该名称是全局唯一的:

  3. 保留所有其他默认设置,然后点击创建

验证您已完成的任务

点击检查我的进度,验证您已完成的任务。如果您成功创建了 Cloud Storage 存储桶,系统会显示一个评估分数。

创建 Cloud Storage 存储桶。

任务 4. 运行流水线

部署 Dataflow 模板:

gcloud dataflow jobs run iotflow \ --gcs-location gs://dataflow-templates-{{{project_0.default_region | "Region"}}}/latest/PubSub_to_BigQuery \ --region {{{project_0.default_region | "Region"}}} \ --worker-machine-type e2-medium \ --staging-location gs://{{{project_0.project_id | "Bucket Name"}}}/temp \ --parameters inputTopic=projects/pubsub-public-data/topics/taxirides-realtime,outputTableSpec={{{project_0.project_id | "Table Name"}}}:taxirides.realtime

Google Cloud 控制台导航菜单中,点击 Dataflow > 作业,您就会看到自己的 Dataflow 作业。

如需了解详情,请参阅此文档

注意:您可能需要等待片刻,留出时间让活动跟踪操作完成。

验证您已完成的任务

点击检查我的进度,验证您已完成的任务。如果您成功运行了 Dataflow 流水线,系统会显示一个评估分数。

运行流水线。

您将看到您的资源创建成功,可供使用。

现在,点击导航菜单中的 BigQuery,查看写入 BigQuery 的数据。

  • BigQuery 界面打开后,您会看到 taxirides 数据集已添加到您的项目名称下方,而 realtime 表则显示在该数据集下方。
注意:您可能需要等待片刻,留出时间让 BigQuery 表的数据填充操作完成。

任务 5. 提交查询

您可以使用标准 SQL 提交查询。

  1. 在 BigQuery 编辑器中,添加以下代码以查询项目中的数据:
SELECT * FROM `{{{project_0.project_id | "Bucket Name"}}}.taxirides.realtime` LIMIT 1000
  1. 现在,点击运行

如果您遇到任何问题或错误,请再次运行该查询(流水线需要几分钟才能启动)。

  1. 成功运行查询后,您将在查询结果面板中看到如下输出:

“查询结果”页面

太棒了!您刚刚从一个 Pub/Sub 主题中拉取了 1000 条出租车行程并推送至一个 BigQuery 表。如您亲眼所见,模板是运行 Dataflow 作业的一种简单实用的方法。请务必查阅 Dataflow 文档,在有关 Google 提供的模板的入门指南中,了解其他的一些 Google 模板。

任务 6. 检验您的掌握情况

下面的选择题可加强您对本实验所涉概念的理解。请尽您所能回答问题。

恭喜!

您已使用 Pub/Sub to BigQuery Dataflow 模板创建了一个流处理流水线,该模板会从 Pub/Sub 主题中读取以 JSON 格式编写的消息,并将其推送到 BigQuery 表。

后续步骤/了解详情

本实验是 Qwik Starts 系列实验的其中一项。通过这些实验,您可以一窥 Google Cloud 的诸多功能。请在 Google Cloud Skills Boost 目录中搜索“Qwik Starts”,找到您要参与的下一项实验!

Google Cloud 培训和认证

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

上次更新手册的时间:2024 年 2 月 4 日

上次测试实验的时间:2023 年 11 月 10 日

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

此内容目前不可用

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

太好了!

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