实验设置说明和要求
保护您的账号和进度。请务必在无痕浏览器窗口中,使用实验凭证运行此实验。

将数据流式传输到 Bigtable

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

GSP1055

Google Cloud 自学实验的徽标

概览

Bigtable 是 Google 的全托管式可扩缩 NoSQL 数据库服务。Bigtable 非常适合将大量数据存储在键值对存储区中,并适合个性化、广告技术、金融技术、数字媒体和物联网 (IoT) 等应用场景。Bigtable 支持以低延迟方式实现高读写吞吐量,以便快速访问大量数据并进行处理和分析。

对于来自传感器的流式数据,Bigtable 可以处理高写入量,以捕获大量实时数据。

在本实验中,您将使用命令创建一个 Bigtable 实例,其中包含一个用于存储模拟交通传感器数据的表。然后,您要启动 Dataflow 流水线,将模拟的流式数据从 Pub/Sub 加载到 Bigtable 中。在 Dataflow 作业将流式数据从 Pub/Sub 加载到 Bigtable 的同时,您要验证是否已成功填充表。您需要停止流式处理作业并删除 Bigtable 数据,才能完成实验。

您将执行的操作

在本实验中,您将学习如何使用命令创建 Bigtable 实例和表,以及如何使用 Dataflow 加载流式数据。

  • 使用 Google Cloud CLI (gcloud CLI) 命令创建 Bigtable 实例。
  • 使用 Cloud Bigtable CLI (cbt CLI) 命令创建包含列族的 Bigtable 表。
  • 启动 Dataflow 流水线,从 Pub/Sub 读取流式数据并写入 Bigtable。
  • 验证流式数据是否已加载到 Bigtable 中。
  • 使用命令删除 Bigtable 表和 Bigtable 实例。

前提条件

设置和要求

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

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 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”图标

  2. 在弹出的窗口中执行以下操作:

    • 继续完成 Cloud Shell 信息窗口中的设置。
    • 授权 Cloud Shell 使用您的凭据进行 Google Cloud API 调用。

如果您连接成功,即表示您已通过身份验证,且项目 ID 会被设为您的 Project_ID 。输出内容中有一行说明了此会话的 Project_ID

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

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

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

输出:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (可选)您可以通过此命令列出项目 ID:
gcloud config list project

输出:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注意:如需查看在 Google Cloud 中使用 gcloud 的完整文档,请参阅 gcloud CLI 概览指南

任务 1. 使用命令创建 Bigtable 实例和表

要在 Bigtable 中创建新表,您首先需要创建一个 Bigtable 实例来存储该表。如需创建 Bigtable 实例,您可以使用 Google Cloud 控制台、gcloud CLI 命令cbt CLI 命令

在此任务中,您将使用 Cloud Shell 先运行 gcloud CLI 命令来创建新的 Bigtable 实例,然后运行 cbt CLI 命令来连接到 Bigtable 并创建一个新表。

如需查看如何访问 Cloud Shell,请点击本页面右侧菜单中的设置和要求

创建 Bigtable 实例。

  • 如需创建新的 Bigtable 实例,请在 Cloud Shell 中运行以下命令:
gcloud bigtable instances create sandiego \ --display-name="San Diego Traffic Sensors" \ --cluster-storage-type=SSD \ --cluster-config=id=sandiego-traffic-sensors-c1,zone={{{project_0.default_zone | ZONE}}},nodes=1

此命令会创建一个具有以下属性的新 Bigtable 实例:

属性
实例 ID sandiego
实例显示名称 San Diego Traffic Sensors
存储空间类型 SSD
集群 ID sandiego-traffic-sensors-c1
可用区
节点扩缩模式 手动分配
节点数 1

收到输出消息后,请继续执行下一步。

Creating bigtable instance sandiego...done.

配置 Bigtable CLI

如需使用 cbt CLI 命令连接到 Bigtable,您首先需要使用 Cloud Shell 将项目 ID 和 Bigtable 实例 ID 更新到 .cbtrc 配置文件中。

  1. 如需使用项目 ID 和实例 ID 修改 .cbtrc 文件,请运行以下命令:
echo project = `gcloud config get-value project` \ >> ~/.cbtrc echo instance = sandiego \ >> ~/.cbtrc
  1. 如需验证您是否已成功修改 .cbtrc 文件,请运行以下命令:
cat ~/.cbtrc

输出应类似于以下内容:

project = <project-id> instance = sandiego

创建包含列族的 Bigtable 表

在 Cloud Shell 中配置 .cbtrc 配置文件后,您可以运行简单的 cbt CLI 命令来创建包含列族的新 Bigtable 表。

  • 如需创建一个名为 current_conditions 的新表,并且其中包含一个名为 lane 的列族,请运行以下命令:
cbt createtable current_conditions \ families="lane"

点击“检查我的进度”以验证是否完成了以下目标: 创建 Bigtable 实例和表。

任务 2. 将流式交通传感器数据模拟到 Pub/Sub 中

在此任务中,您将从为此实验创建的 Compute Engine 虚拟机 (VM) 来运行流式数据模拟器。要开始此任务,您需要在名为 training-vm 的虚拟机上输入命令,以设置环境并下载流式数据模拟器所需的文件。

连接到虚拟机

  1. 在 Google Cloud 控制台的导航菜单中,点击 Compute Engine > 虚拟机实例

  2. 找到 training-vm 实例所在的行,然后在连接下点击 SSH

    系统会打开 training-vm 的终端窗口。

    training-vm 会在后台安装一些软件。在下一步中,您将通过检查新目录的内容来验证设置是否已完成。

  3. 如需列出名为 training 的目录中的内容,请运行以下命令:

ls /training

ls 命令的输出结果如下所示时,虚拟机即可供您继续使用:

bq_magic.sh project_env.sh sensor_magic.sh

如果未列出这三个脚本,请等待几分钟,然后重试。

注意:完成所有后台操作可能需要 2 到 3 分钟时间。

运行脚本来模拟流式数据

  1. 如需下载本实验要用到的代码库,请运行以下命令:
git clone https://github.com/GoogleCloudPlatform/training-data-analyst
  1. 如需设置所需的环境变量,请运行以下命令:
source /training/project_env.sh

此脚本会设置 $DEVSHELL_PROJECT_ID$BUCKET 环境变量,这样您就不必为这些变量手动设置项目 ID 和 Cloud Storage 存储桶名称。

在初始化实验资源期间,系统已创建一个 Cloud Storage 存储桶。

  1. 如需启动流式数据模拟器,请运行以下命令:
/training/sensor_magic.sh

此脚本从 CSV 文件中读取示例数据,并将其发布到 Pub/Sub。它会在 1 分钟内发送 1 小时的数据。

继续在当前终端上运行此脚本,然后继续执行后续任务。

点击“检查我的进度”以验证是否完成了以下目标: 将流式交通传感器数据模拟到 Pub/Sub 中。

任务 3. 启动 Dataflow 流水线,将数据从 Pub/Sub 写入 Bigtable

在此任务中,您将在 training_vm 上打开第二个 SSH 终端,并运行命令来启动 Dataflow 作业,以将来自 Pub/Sub 的流式数据写入 Bigtable。

打开第二个 SSH 终端

  1. 在当前终端窗口中,点击终端设置 (ssh_gear_settings.png),然后点击新建连接

系统会打开第二个终端窗口。该新终端会话不包含所需的环境变量。在下一步中,您将在新终端会话中设置这些变量。

  1. 如需在新终端中设置环境变量,请运行以下命令:
source /training/project_env.sh

此脚本会在新终端窗口中设置 $DEVSHELL_PROJECT_ID$BUCKET 环境变量。

启动 Dataflow 流水线

  1. 如需在新终端中导航到代码目录,请运行以下命令:
cd ~/training-data-analyst/courses/streaming/process/sandiego
  1. 如需使用 nano 查看脚本,请运行以下命令:
nano run_oncloud.sh

请勿修改代码。

此脚本需要三个必需参数才能运行 Dataflow 作业:

  • 项目 ID
  • Cloud Storage 存储桶名称
  • Java 类名
  • 用于设置选项的第四个参数(可选)

在接下来的步骤中,您将使用 --bigtable 选项,以便指示 Dataflow 流水线将数据写入 Bigtable。

  1. 如需退出 nano,请按 CTRL+X。

  2. 如需将 run_oncloud.sh 脚本配置为使用项目的默认区域,请执行以下命令:

sed -i 's/\$REGION/{{{project_0.default_region | REGION}}}/' run_oncloud.sh
  1. 如需启动 Dataflow 流水线,以便从 Pub/Sub 读取数据并将其写入 Bigtable,请运行以下命令:
./run_oncloud.sh $DEVSHELL_PROJECT_ID $BUCKET CurrentConditions --bigtable

该流水线成功启动后,您会看到类似以下内容的消息:

[INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:09 min [INFO] Finished at: 2022-06-01T17:21:29+00:00 [INFO] Final Memory: 60M/220M [INFO] ------------------------------------------------------------------------

探索 Dataflow 流水线

  1. 在 Google Cloud 控制台的导航菜单中,点击查看所有产品。在分析下,依次点击 Dataflow > 作业

  2. 点击新流水线作业的名称。

  3. 在流水线图表中找到 write:cbt 步骤,然后点击 write:cbt 旁边的向下箭头,以便查看写入者的详细信息。

  4. 点击所提供的写入者,并查看步骤信息中提供的详细信息。

点击“检查我的进度”以验证是否完成了以下目标: 启动 Dataflow 流水线。

任务 4. 验证流式数据是否已加载到 Bigtable 中

在之前的任务中,您已经在 Cloud Shell 中配置了 .cbtrc 配置文件。现在,您可以运行简单的 cbt CLI 命令来查询表的前五条记录。

  • 如需查看前五行数据及其在 lane 列族中的值,请运行以下命令:
cbt read current_conditions count=5 \ columns="lane:.*"

输出结构如下:

---------------------------------------------- ROW KEY COLUMN_FAMILY:COLUMN_QUALIFIER @ TIMESTAMP VALUE

输出值将如下所示:

---------------------------------------------- 15#S#1#9223370811310975807 lane:direction @ 1970/01/15-04:25:43.800000 "S" lane:highway @ 1970/01/15-04:25:43.800000 "15" lane:lane @ 1970/01/15-04:25:43.800000 "1.0" lane:latitude @ 1970/01/15-04:25:43.800000 "32.706184" lane:longitude @ 1970/01/15-04:25:43.800000 "-117.120565" lane:sensorId @ 1970/01/15-04:25:43.800000 "32.706184,-117.120565,15,S,1" lane:speed @ 1970/01/15-04:25:43.800000 "71.4" lane:timestamp @ 1970/01/15-04:25:43.800000 "2008-11-01 12:50:00"

任务 5. 停止流式处理作业并删除 Bigtable 数据

在最后一项任务中,您将使用命令停止流式数据作业,并删除 Bigtable 实例和表。

停止模拟的流式数据

  1. 在第一个 SSH 终端中,按 Ctrl+C 停止流式数据模拟器。

停止 Dataflow 作业

  1. 在 Google Cloud 控制台的导航菜单中,依次点击 Dataflow > 作业

  2. 点击流水线作业的名称。

  3. 点击停止

  4. 选择取消,然后点击停止作业

删除 Bigtable 表和实例

  1. 如需删除 Bigtable 表,请在 Cloud Shell 中运行以下命令:
cbt deletetable current_conditions
  1. 如需删除 Bigtable 实例,请运行以下命令:
gcloud bigtable instances delete sandiego

如果系统提示您确认,请输入 Y

点击“检查我的进度”以验证是否完成了以下目标: 停止流式处理作业并删除 Bigtable 数据。

恭喜!

在本实验中,您使用了命令创建了新 Bigtable 实例和表,使用 Dataflow 将数据流式传输到了表中,并通过运行简单的 cbt CLI 命令,确认了数据已成功流式传输到 Bigtable 中。您使用命令停止了作业,并删除了 Bigtable 表和实例,从而完成了实验。

后续步骤/了解详情

Google Cloud 培训和认证

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

上次更新手册的时间:2025 年 8 月 19 日

上次测试实验的时间:2025 年 8 月 19 日

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

准备工作

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

使用无痕浏览模式

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

登录控制台

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

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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