正在加载…
未找到任何结果。

Google Cloud Skills Boost

在 Google Cloud 控制台中运用您的技能

02

Google Cloud Big Data and Machine Learning Fundamentals

访问 700 多个实验和课程

使用 Dataflow 为实时信息中心创建流式数据流水线

实验 1 小时 universal_currency_alt 5 个积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

概览

在本实验中,您是纽约市一个出租车车队的负责人,希望实时监控业务运行情况。您构建了一个流式数据流水线来捕获出租车收入、乘客数量和乘车状态等信息,然后将结果直观呈现在管理信息中心。

目标

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

  • 通过模板创建 Dataflow 作业
  • 将 Dataflow 流水线数据流式传输到 BigQuery
  • 在 BigQuery 中监控 Dataflow 流水线
  • 使用 SQL 分析结果
  • 在 Looker Studio 中直观呈现关键指标

设置和要求

对于每个实验,您都会免费获得一个新的 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 产品和服务的菜单,请点击左上角的导航菜单,或在搜索字段中输入服务或产品的名称。

激活 Google Cloud Shell

Google Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。

Google Cloud Shell 提供了可用于访问您的 Google Cloud 资源的命令行工具。

  1. 在 Cloud 控制台右上角的工具栏中,点击“打开 Cloud Shell”按钮。

  2. 点击继续

预配并连接到环境需要一些时间。如果您连接成功,即表示您已通过身份验证,且项目 ID 会被设为您的 PROJECT_ID。例如:

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

  • 您可以通过以下命令列出有效的账号名称:
gcloud auth list

输出:

Credentialed accounts: - @.com (active)

输出示例

Credentialed accounts: - google1623327_student@qwiklabs.net
  • 您可以通过以下命令列出项目 ID:
gcloud config list project

输出:

[core] project =

输出示例

[core] project = qwiklabs-gcp-44776a13dea667a6 注意:有关 gcloud 的完整文档,请参阅 gcloud CLI 概览指南

任务 1. 创建 BigQuery 数据集

在此任务中,您将创建 taxirides 数据集。您有两种方式来创建此数据集,分别是使用 Google Cloud Shell 和使用 Google Cloud 控制台。

在本实验中,您将使用从纽约市出租车和豪华轿车委员会的开放数据集中提取的数据。本实验将使用一个以逗号分隔的小型数据文件来模拟定期更新的出租车数据。

BigQuery 是一个无服务器数据仓库。BigQuery 中的表整理为数据集的形式。在本实验中,出租车数据将通过 Dataflow 从独立文件传送并存储到 BigQuery 中。通过此配置,任何保存到来源 Cloud Storage 存储桶中的新数据文件都将自动进行处理,以便加载。

请使用以下任一选项来创建新的 BigQuery 数据集:

选项 1:命令行工具

  1. Cloud Shell () 中,运行以下命令来创建 taxirides 数据集。
bq --location={{{project_0.default_region|Region}}} mk taxirides
  1. 运行以下命令来创建 taxirides.realtime 表(稍后,您需要将数据流式传输到此空架构中)。
bq --location={{{project_0.default_region|Region}}} 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

选项 2:BigQuery 控制台界面

注意:如果您已使用命令行创建表,请跳过这些步骤。
  1. 在 Google Cloud 控制台中,点击导航菜单 () 下的 BigQuery

  2. 如果您看到“欢迎”对话框,点击完成

  3. 点击项目 ID 旁边的查看操作 (),然后点击创建数据集

  4. 在“数据集 ID”中,输入 taxirides

  5. 在“数据位置”中,选择:

{{{project_0.default_region|Region}}}

然后点击创建数据集

  1. 在“探索器”窗格中,点击展开节点 () 以显示新的 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. 分区和聚簇设置中,选择时间戳

  2. 点击创建表

任务 2. 复制所需要的实验工件

在此任务中,您要将所需的文件移动到项目中。

使用 Cloud Storage,您可以在全球范围内随时存储和检索任意数量的数据。您可以在各种各样的场景中使用 Cloud Storage,包括传送网站内容、存储数据以用于归档和灾难恢复,或者通过直接下载向用户分发大型数据对象。

实验启动时已为您创建了一个 Cloud Storage 存储桶。

  1. Cloud Shell () 中,运行以下命令来移动 Dataflow 作业所需要的文件。
gcloud storage cp gs://cloud-training/bdml/taxisrcdata/schema.json gs://{{{project_0.project_id|Project_ID}}}-bucket/tmp/schema.json gcloud storage cp gs://cloud-training/bdml/taxisrcdata/transform.js gs://{{{project_0.project_id|Project_ID}}}-bucket/tmp/transform.js gcloud storage cp gs://cloud-training/bdml/taxisrcdata/rt_taxidata.csv gs://{{{project_0.project_id|Project_ID}}}-bucket/tmp/rt_taxidata.csv

任务 3. 设置 Dataflow 流水线

在此任务中,您将设置一个流式数据流水线,以便从 Cloud Storage 存储桶中读取文件并将数据写入 BigQuery。

Dataflow 是一种不需要服务器的数据分析方式。

重新启动与 Dataflow API 的连接。

  1. 在 Cloud Shell 中运行以下命令,确保已在项目中明确启用了 Dataflow API。
gcloud services disable dataflow.googleapis.com gcloud services enable dataflow.googleapis.com

创建新的流处理流水线:

  1. 在 Cloud 控制台的导航菜单 () 中,点击查看所有产品 > 分析 > Dataflow

  2. 在顶部菜单栏中,点击基于模板创建作业

  3. 输入 streaming-taxi-pipeline 作为 Dataflow 作业的名称。

  4. 区域端点中,选择:

{{{project_0.default_region|Region}}}
  1. Dataflow 模板中,选择连续处理数据(流处理)下的 Cloud Storage Text to BigQuery (Stream) 模板。
注意:务必选择与下列参数匹配的模板选项。
  1. Cloud Storage 输入文件中,粘贴或输入:
{{{project_0.project_id|Project_ID}}}-bucket/tmp/rt_taxidata.csv
  1. 您的 BigQuery 架构文件的 Cloud Storage 位置,以 JSON 格式描述中,粘贴或输入:
{{{project_0.project_id|Project_ID}}}-bucket/tmp/schema.json
  1. BigQuery 输出表中,粘贴或输入:
{{{project_0.project_id|Project_ID}}}:taxirides.realtime
  1. BigQuery 加载过程的临时目录中,粘贴或输入:
{{{project_0.project_id|Project_ID}}}-bucket/tmp
  1. 点击必需参数

  2. 临时位置(用于写入临时文件)中,粘贴或输入:

{{{project_0.project_id|Project_ID}}}-bucket/tmp
  1. Cloud Storage 中的 JavaScript UDF 路径中,粘贴或输入:
{{{project_0.project_id|Project_ID}}}-bucket/tmp/transform.js
  1. JavaScript UDF 名称中,粘贴或输入:
transform
  1. 工作器数量上限中,输入 2

  2. 工作器数量中,输入 1

  3. 取消选中使用默认机器类型

  4. 通用部分,进行以下选择:

系列:E2
机器类型:e2-medium(2 个 vCPU、4 GB 内存)

  1. 点击运行作业

新的流处理作业已启动!您现在可以看到直观呈现的数据流水线。数据大概需要 3-5 分钟的时间就会开始移动到 BigQuery。

注意:如果 Dataflow 作业第一次运行失败,您可以使用新作业名称重新创建一个新作业模板,并运行该作业。

任务 4. 使用 BigQuery 分析出租车数据

在此任务中,您将在流处理过程中分析数据。

  1. 在 Cloud 控制台中,点击导航菜单 () 下的 BigQuery

  2. 如果“欢迎”对话框出现,则点击完成

  3. 在查询编辑器中输入以下命令,然后点击运行

SELECT * FROM taxirides.realtime LIMIT 10 注意:如果查询未返回任何记录,请稍等 1 分钟,然后重新运行上述查询(Dataflow 可能需要 3-5 分钟的时间来设置流处理作业)。

输出将如下所示:

任务 5. 对流处理作业执行聚合以进行报告

在此任务中,您将计算流处理作业的聚合数据,以便进行报告。

  1. 查询编辑器中,清除当前查询。

  2. 复制和粘贴以下查询,然后点击运行

WITH streaming_data AS ( SELECT timestamp, TIMESTAMP_TRUNC(timestamp, HOUR, 'UTC') AS hour, TIMESTAMP_TRUNC(timestamp, MINUTE, 'UTC') AS minute, TIMESTAMP_TRUNC(timestamp, SECOND, 'UTC') AS second, ride_id, latitude, longitude, meter_reading, ride_status, passenger_count FROM taxirides.realtime ORDER BY timestamp DESC LIMIT 1000 ) # calculate aggregations on stream for reporting: SELECT ROW_NUMBER() OVER() AS dashboard_sort, minute, COUNT(DISTINCT ride_id) AS total_rides, SUM(meter_reading) AS total_revenue, SUM(passenger_count) AS total_passengers FROM streaming_data GROUP BY minute, timestamp 注意:请确保 Dataflow 正在 BigQuery 中注册数据,然后才能继续执行下一个任务。

结果将显示每辆载客的出租车每分钟的关键指标。

  1. 依次点击保存 > 保存查询

  2. 在“保存查询”对话框的名称字段中,输入 My Saved Query

  3. 区域中,确保该区域与 Qwiklabs 实验区域一致。

  4. 点击保存

任务 6. 停止 Dataflow 作业

在此任务中,您将停止 Dataflow 作业以便为项目释放资源。

  1. 在 Cloud 控制台的导航菜单 () 中,点击查看所有产品 > 分析 > Dataflow

  2. 点击 streaming-taxi-pipeline 或新作业名称。

  3. 点击停止,然后依次选择取消 > 停止作业

任务 7. 创建实时信息中心

在此任务中,您将创建一个实时信息中心来直观显示数据。

  1. 在 Cloud 控制台中,点击导航菜单 () 下的 BigQuery

  2. 在“探索器”窗格中,展开项目 ID

  3. 展开查询,然后点击我保存的查询

您的查询已加载到查询编辑器中。

  1. 点击运行

  2. 在“查询结果”部分,依次点击打开方式 > Looker Studio

    Looker Studio 打开。点击开始使用

  3. 在 Looker Studio 窗口中,点击您的条形图。

(

图表窗格打开。

  1. 点击添加图表,然后选择组合图表

  2. 在设置窗格中,将光标悬停在“数据范围维度”中的分钟(日期)上,然后点击 X 将其移除。

  3. 在数据窗格中,点击 dashboard_sort,并将其拖放到设置 > 数据范围维度 > 添加维度

  4. 设置 > 维度中,点击分钟,然后选择 dashboard_sort

  5. 设置 > 指标中,点击 dashboard_sort,然后选择 total_rides

  6. 设置 > 指标中,点击 Record Count,然后选择 total_passengers

  7. 设置 > 指标中,点击添加指标,然后选择 total_revenue

  8. 设置 > 排序中,点击 total_rides,然后选择 dashboard_sort

  9. 设置 > 排序中,点击升序

图表应类似于以下形式:

注意:Looker Studio 目前不支持使用分钟粒度级别作为时间戳来直观显示数据。因此,我们自行创建了 dashboard_sort 维度。
  1. 在对信息中心感到满意后,点击保存并分享来保存此数据源。

  2. 如果系统提示您完成账号开设,请输入您的国家/地区和公司详细信息,同意条款及条件,然后点击继续

  3. 如果系统提示您选择希望接收的更新,请一律回答,然后点击继续

  4. 如果出现保存前查看数据访问权限 (Review data access before saving) 提示窗口,请点击确认并保存 (Acknowledge and save)。

  5. 如果系统提示您选择账号,请选择您的学生账号

  6. 不论何时有人访问您的信息中心,它都会显示最新的内容以及近期交易。您可以亲自试试,只需点击更多选项 (),然后点击刷新数据

任务 8. 创建时序信息中心

在此任务中,您将创建一个时序图表。

  1. 点击此 Looker Studio 链接,在一个新的浏览器标签页中打开 Looker Studio。

  2. 报告页面的从模板开始部分,点击 [+] 空白报告模板。

  3. 一个新的空白报告将会打开,并显示为报告添加数据窗口。

  4. Google 连接器列表中,选择 BigQuery 图块。

  5. 点击自定义查询,然后选择您的项目 ID。此 ID 的格式如下所示:qwiklabs-gcp-xxxxxxx

  6. 在“输入自定义查询”中,粘贴以下查询:

SELECT * FROM taxirides.realtime WHERE ride_status='enroute'
  1. 依次点击添加 > 添加到报告

    一个新的未命名报告将会打开。屏幕最多可能需要 1 分钟的时间才会完成刷新。

创建时序图表

  1. 数据窗格中,依次点击添加字段 > 添加计算字段

  2. 点击左侧角落的所有字段

  3. 时间戳字段类型更改为日期和时间 > 日期 小时 分钟 (YYYYMMDDhhmm)

  4. 在“更改时间戳”对话框中,点击继续,然后点击完成

  5. 在顶部菜单中,点击添加图表

  6. 选择时序图表

  7. 将图表放置在左下角的空白空间内。

  8. 设置 > 维度中,点击时间戳(日期),然后选择时间戳

  9. 设置 > 维度中,点击时间戳,然后选择 日历

  10. 数据类型中,选择日期和时间 > 日期 小时 分钟

  11. 在对话框外点击一下鼠标,将其关闭。您无需添加名称。

  12. 设置 > 指标中,点击 Record Count,然后选择 meter reading

恭喜!

在本实验中,您使用 Dataflow 通过流水线对数据进行流处理并传输到 BigQuery。

结束实验

完成实验后,请点击结束实验。Google Cloud Skills Boost 会移除您使用过的资源并为您清理帐号。

系统会提示您为实验体验评分。请选择相应的星级数,输入评论,然后点击提交

星级数的含义如下:

  • 1 颗星 = 非常不满意
  • 2 颗星 = 不满意
  • 3 颗星 = 一般
  • 4 颗星 = 满意
  • 5 颗星 = 非常满意

如果您不想提供反馈,可以关闭该对话框。

如果要留言反馈、提出建议或做出更正,请使用支持标签页。

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

上一步 下一步

Please sign in to access this content.

close

准备工作

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

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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