准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Insert data through a client library
/ 30
Insert batch data through a client library
/ 30
Load data using Dataflow
/ 40
Insert data through a client library
/ 30
Insert batch data through a client library
/ 30
Load data using Dataflow
/ 40
Cloud Spanner 是 Google 推出的可横向扩容的全托管式关系型数据库服务。金融服务、游戏、零售及众多其他行业的客户都信赖该服务,依托其运行自身要求最严苛的工作负载。在此类场景下进行大规模部署时,服务的一致性和可用性都至关重要。
在本实验中,您将探索通过各种方式将数据加载到 Cloud Spanner 并执行数据库备份。
请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 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 概览指南。
在部署期间,系统为您创建了 Cloud Spanner 实例、数据库和表。
实例名称为 banking-instance,点击该名称以探索数据库。 关联的数据库名为 banking-db。 点击该数据库进行探索,您会看到其中已经有一个名为 Customer 的表。 点击该表,即可查看架构。
banking-db 概览页面。在左侧菜单中,点击 Spanner Studio,然后运行以下命令:通过 DML 向 Spanner 插入数据是最简单的方法。您可以使用 Cloud Shell 和 gcloud 运行任何 DML 语句,包括 INSERT。
如前所述,您可以使用 gcloud 运行任何 DML 命令。请查阅 DML 和 Spanner 文档。
当然,逐行加载数据库是低效的。
通过程序化接口访问 Spanner 是一种理想的方式。客户端库有很多种,包括 C++、C#、Go、Java、Node.js、PHP、Python 和 Ruby。
按 Ctrl+X 退出 Nano,按 Y 确认更新,然后按 Enter 保存更改。
运行 Python 代码。
就像使用 gcloud 一样,您也可以从客户端库运行任何 DML 语句。您可以在文档中找到所有不同语言的多个示例。
与使用 gcloud 加载数据相比,这种方法更加灵活,但在加载包含大量行的数据源时仍有局限性。
向 Spanner 中批量加载数据无疑是一种更理想的方式。所有客户端库都支持批量加载。此示例使用了 Python。
按 Ctrl+X 退出 Nano,按 Y 确认更新,然后按 Enter 保存更改。
运行 Python 代码。
批量方法效率更高,因为它是作为单个请求运行的。只需要客户端-服务器之间的一次往返,从而减少了延迟时间。
但是,这种加载数据的方法非常缓慢且资源消耗过大。
Dataflow 是一项 Google Cloud 服务,可大规模流式处理和批量处理数据。Dataflow 使用多个工作器并行运行数据处理工作。数据处理方式是使用流水线定义的,这些流水线将在数据从起点(数据源)到达终点(接收器)的过程中转换数据。
Dataflow 中有适用于 Spanner 的连接器,支持将数据库连接为数据源或接收器。
要想加载大量数据,您可以利用 Dataflow 强大的无服务器分布式能力,从数据源(例如 Google Cloud Storage 中的 CSV 文件)读取数据,并使用接收器连接器将数据加载到 Spanner 数据库。
在控制台中,打开导航菜单 () > 查看所有产品。在 Analytics 部分下,点击 Dataflow。
在屏幕顶部,点击基于模板创建作业。
在模板中输入以下值:
作业名称:spanner-load
区域端点:
向下滚动 Dataflow 模板选择器,您将看到可与 Dataflow 搭配使用的所有不同蓝图。当然,您也可以使用 Beam SDK 定制自己的流水线。
模板主要有两种类型:
在您的场景中,您将从超过 15 万行的 CSV 文件向 Spanner 银行数据库中加载数据。
选择 Cloud Storage 上的文本文件到 Cloud Spanner 模板。
在模板中输入以下值:
| 项 | 值 |
|---|---|
| Cloud Spanner 实例 ID | banking-instance |
| Cloud Spanner 数据库 ID | banking-db |
| 文本导入清单文件 | spls/gsp1049/manifest.json |
manifest.json 文件格式在本模板的教程中(点击参数输入字段上方的打开教程即可访问)已有说明。
清单文件必须存储在 Dataflow 可以访问和读取的 Google Cloud Storage 存储桶中。在本实验中,manifest.json 的内容如下:
清单文件指定了表、列的名称和类型(按照在 CSV 文件中显示的顺序)以及 CSV 文件本身,该文件也存储在 Google Cloud Storage 存储桶中。
CSV 文件如下所示:
展开可选参数。
取消选中使用默认机器类型。
在通用部分,进行以下选择:
点击运行作业以启动流水线。
此过程大约需要 12 到 16 分钟。您会看到 Dataflow 经历多个阶段:首先是启动工作器并分析由模板生成的流水线,然后,它会读取清单文件并开始处理 CSV 文件。
等待 Dataflow 处理完毕后再继续。完成后,其状态将显示为成功。
在 Cloud 控制台的左侧菜单中选择 Spanner,返回该界面。前往 Customer 表并选择数据。您将看到使用 Dataflow 加载的所有新行。
返回 banking-db 概览页面。在左侧菜单中,点击 Spanner Studio,然后运行以下查询,查看 Customer 表中的总行数:
借助 Dataflow 模板,可以轻松(而且很快!)加载大量数据。您可以加载其他数据库的转储文件,还可以按照相同的过程加载 CSV 文件和 Avro 文件。您甚至可以反向运行该流程,在 Dataflow 中使用 Spanner 数据库作为数据源,将数据导出到 CSV 或 Avro 文件。
如上所述,使用 Dataflow 可以创建数据备份。但 Spanner 有自己的备份工具。 您可以从 Cloud 控制台、客户端库或使用 gcloud 命令备份 Spanner 数据库。请查阅前面的文档链接。
在本实验中,您将使用 Cloud 控制台备份数据库。
从左侧菜单中选择备份/恢复。
点击创建备份。
在向导中输入或选择以下值:
| 项 | 值 |
|---|---|
| 数据库名称 | banking-db |
| 备份名称 | banking-backup-001 |
| 失效日期 | 1 年 |
点击创建。
备份大约需要 15 分钟才能完成,在创建过程中它会显示在备份列表中。
现在,您已经扎实地掌握了向 Cloud Spanner 实例中加载数据并执行备份的各种方法。
…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。
上次更新手册的时间:2025 年 9 月 16 日
上次测试实验的时间:2025 年 9 月 16 日
版权所有 2026 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验
完成此快速步骤即可开始实验。