Cloud Spanner - 数据库基础知识
实验
1 小时
universal_currency_alt
1 个积分
show_chart
入门级
info
此实验可能会提供 AI 工具来支持您学习。
GSP1048

概览
Cloud Spanner 是 Google 的全托管式、可横向伸缩的关系型数据库服务。金融服务、游戏、零售等众多行业的客户都信赖 Cloud Spanner 来运行要求最严苛的工作负载,在这些工作负载中,这些场景要求规模化的稳定一致与高可用性。
在本实验中,您将在 Cloud Spanner 实例中执行基本管理任务。
您将执行的操作
在本实验中,您将学习如何执行以下任务:
- 创建实例。
- 创建数据库。
- 创建表格。
- 插入和修改数据。
- 将 Google Cloud CLI 与 Cloud Spanner 搭配使用。
- 将自动化工具与 Cloud Spanner 搭配使用。
- 删除实例。
设置和要求
点击“开始实验”按钮前的注意事项
请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。
此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。
为完成此实验,您需要:
- 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。
如何开始实验并登录 Google Cloud 控制台
-
点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:
- “打开 Google Cloud 控制台”按钮
- 剩余时间
- 进行该实验时必须使用的临时凭据
- 帮助您逐步完成本实验所需的其他信息(如果需要)
-
点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。
该实验会启动资源并打开另一个标签页,显示“登录”页面。
提示:将这些标签页安排在不同的窗口中,并排显示。
注意:如果您看见选择账号对话框,请点击使用其他账号。
-
如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。
{{{user_0.username | "<用户名>"}}}
您也可以在“实验详细信息”窗格中找到“用户名”。
-
点击下一步。
-
复制下面的密码,然后将其粘贴到欢迎对话框中。
{{{user_0.password | "<密码>"}}}
您也可以在“实验详细信息”窗格中找到“密码”。
-
点击下一步。
重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。
注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
-
继续在后续页面中点击以完成相应操作:
- 接受条款及条件。
- 由于这是临时账号,请勿添加账号恢复选项或双重验证。
- 请勿注册免费试用。
片刻之后,系统会在此标签页中打开 Google Cloud 控制台。
注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。
激活 Cloud Shell
Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。
-
点击 Google Cloud 控制台顶部的激活 Cloud Shell
。
-
在弹出的窗口中执行以下操作:
- 继续完成 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 自动补全功能。
- (可选)您可以通过此命令列出活跃账号名称:
gcloud auth list
- 点击授权。
输出:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (可选)您可以通过此命令列出项目 ID:
gcloud config list project
输出:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
注意:如需查看在 Google Cloud 中使用 gcloud
的完整文档,请参阅 gcloud CLI 概览指南。
任务 1. 创建实例
-
使用 Cloud Spanner 的第一步是创建实例。实例是 Google Cloud 计算和存储资源的分配。在控制台中,打开导航菜单 (
) > 查看所有产品。在数据库部分下,点击 Spanner。
-
接受可能出现的确认或信息窗口。
-
然后点击创建预配实例。
-
填写以下字段,其余字段保留默认值:
项 |
值 |
选择版本 |
企业版 |
实例名称 |
banking-instance |
选择配置 |
|
配置计算容量 |
单位 - 节点 // 数量 - 1 |
- 点击创建。现在,您可以在“实例详情”页面上看到您的实例。页面中概述了实例的性能、利用率等。接下来是创建数据库。
任务 2. 创建数据库
-
在实例详情页面中,点击创建数据库。
-
对于数据库名称,请输入 banking-db。
-
暂时跳过定义架构(可选)步骤。您将在下一部分中定义架构。
-
点击创建。
-
您现在位于新创建数据库的概览页面。该页面与实例页面类似,显示的是特定数据库的统计信息。左侧菜单中还有一些新的选项。
-
点击检查我的进度以验证是否完成了以下目标:
创建实例和数据库
任务 3. 在数据库中创建表
- 在 banking-db 数据库的“数据库详细信息”页面上,向下滚动页面并点击创建表。
- 点击蓝色 + 图标,打开查询页面,然后输入以下内容:
CREATE TABLE Customer (
CustomerId STRING(36) NOT NULL,
Name STRING(MAX) NOT NULL,
Location STRING(MAX) NOT NULL,
) PRIMARY KEY (CustomerId);
-
点击运行。
-
操作完成后,点击左侧菜单中数据库下的概览。然后向下滚动到表,点击 Customer,查看架构详细信息:
-
点击检查我的进度以验证是否完成了以下目标:
创建数据库架构
任务 4. 插入和修改数据
Cloud 控制台提供了用于插入、修改和删除数据的界面。
插入数据
-
在架构页面上,点击左侧菜单中的数据。然后,点击插入。
-
该操作会打开 Spanner Studio 的查询标签页。点击清除查询,粘贴以下查询,然后点击运行:
INSERT INTO
Customer (CustomerId,
Name,
Location)
VALUES
('bdaaaa97-1b4b-4e58-b4ad-84030de92235',
'Richard Nelson',
'Ada Ohio'
);
-
屏幕下半部分会显示结果。Customer 表现在有一行数据:
-
添加第二行数据。将之前的语句替换为以下语句,然后点击运行:
INSERT INTO
Customer (CustomerId,
Name,
Location)
VALUES
('b2b4002d-7813-4551-b83b-366ef95f9273',
'Shana Underwood',
'Ely Iowa'
);
运行查询
-
您可以在数据库的查询页面上执行 SQL 语句。
-
在 Cloud Platform 控制台的左侧窗格中,点击 Spanner Studio,前往查询界面窗口。
-
点击蓝色 + 图标,打开查询页面。点击清除查询,粘贴以下查询,然后点击运行:
SELECT * FROM Customer;
-
点击运行。
-
Cloud 控制台会显示查询结果。
任务 5. 将 Google Cloud CLI 与 Cloud Spanner 搭配使用
尽管 Cloud 控制台功能强大,但在某些场景中,您可能希望使用其他方法来管理 Spanner 实例。Google Cloud 服务也可以通过 gcloud 命令行工具进行管理。使用 gcloud CLI 的最简单方法是通过 Cloud Shell。该工具同样可以安装在各种操作系统上。
使用 CLI 创建实例
- 通过 gcloud 创建 Spanner 实例非常简单。核心命令如下:
gcloud spanner instances create [INSTANCE-ID] \
--config=[INSTANCE-CONFIG] \
--description="[INSTANCE-NAME]" \
--nodes=[NODE-COUNT]
- 在 Cloud Shell 中,使用以下命令创建一个新的 Cloud Spanner 实例。
gcloud spanner instances create banking-instance-2 \
--config=regional-{{{project_0.default_region}}} \
--description="Banking Instance 2" \
--nodes=2
列出实例
- 您可以运行以下命令来列出项目中可用的 Spanner 实例。
gcloud spanner instances list
创建数据库
-
您还可以使用 gcloud 在 Spanner 实例中创建数据库。
-
在 Cloud Shell 中,使用以下命令创建一个新数据库。
gcloud spanner databases create banking-db-2 --instance=banking-instance-2
- 点击检查我的进度以验证是否完成了以下目标:
使用 CLI 创建实例和数据库
修改节点数
请务必预配足够多的节点,确保 CPU 利用率和存储空间利用率低于建议的最大值。但某些情况下需要减少节点数量。
-
现在,将实例 banking-instance-2 的节点数从两个减少到一个。
-
使用以下 gcloud 命令调整实例:
gcloud spanner instances update banking-instance-2 --nodes=1
- 完成后,检查节点数量是否已减少:
gcloud spanner instances list
任务 6. 将自动化工具与 Cloud Spanner 搭配使用
当 Spanner 架构的规模扩大、复杂性增加时,则需要自动化部署和管理 Spanner 实例。Terraform 便是支持 Spanner 部署和管理的核心工具之一。
本实验的重点不在于说明 Terraform 的工作原理。如果您不熟悉 Terraform,可以查看相关文档。
简而言之,您需要为 Terraform 提供一组文件,这些文件描述了您希望在 Google Cloud 中部署的基础设施或服务,这组文件称为配置。然后,指示 Terraform 初始化并规划部署,最后应用更改。
验证 Terraform 安装
- Terraform 已预安装在 Cloud Shell 中。使用之前的 Cloud Shell(如果已关闭,请重新打开 Cloud Shell),验证 Terraform 是否可用:
terraform -version
- 您应该会看到如下所示的输出:
Terraform v1.5.6
on linux_amd64
注意:您可以忽略有关 Terraform 版本过旧的警告。
创建 Terraform 配置
- 在 Cloud Shell 中,输入以下命令来调用 Nano 文本编辑器,并创建一个名为 spanner.tf 的空白配置文件。
nano spanner.tf
- 在 Nano 编辑器中,粘贴下方的代码块。
resource "google_spanner_instance" "banking-instance-3" {
name = "banking-instance-3"
config = "regional-{{{project_0.default_region}}}"
display_name = "Banking Instance 3"
num_nodes = 2
labels = {
}
}
- 按 Ctrl+X 退出 Nano,按 Y 确认更新,然后按 Enter 保存更改。
部署
- 下一步是确保所有 Terraform 服务提供程序都可用(在本例中为 Spanner 服务提供程序)。为此,请在 Cloud Shell 中运行以下命令:
terraform init
- 接下来,指示 Terraform 根据您在前面几个步骤中创建的配置文件来创建执行计划。运行以下命令:
terraform plan
- 输出内容将显示待创建新实例的详细信息。运行以下命令,将该计划应用到您的项目中:
terraform apply
-
系统会再次显示该计划,Terraform 将暂停并等待批准以继续执行。输入 yes,Terraform 将创建新实例。
-
系统将处理 apply 命令并返回以下输出:
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
- 确认新实例 banking-instance-3 已创建:
gcloud spanner instances list
任务 7. 删除实例
- 使用 CLI 可以非常快速地删除实例。运行以下命令:
gcloud spanner instances delete banking-instance-2
- 如需确认 banking-instance-2 是否已删除,请运行以下命令:
gcloud spanner instances list
恭喜!
现在,您已经 Cloud Spanner 实例的一些基本管理操作有了深入的了解。
Google Cloud 培训和认证
…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。
本手册的最后更新时间:2025 年 2 月 24 日
本实验的最后测试时间:2025 年 2 月 24 日
版权所有 2025 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。