准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Create a Bigtable table
/ 40
Delete a Bigtable table
/ 40
Bigtable 是 Google 的全托管式可扩缩 NoSQL 数据库服务。Bigtable 非常适合将大量数据存储在键值对存储区中,并适合个性化、广告技术、金融技术、数字媒体和物联网 (IoT) 等应用场景。Bigtable 支持以低延迟方式实现高读写吞吐量,以便快速访问大量数据并进行处理和分析。
在 Bigtable 中,每一行代表一个实体(例如单个用户或传感器),并使用唯一的行键进行标记。每列存储每一行的属性值,列族可用于组织相关列。在行和列的交集处,可以有多个单元,每个单元代表数据在给定时间戳处的不同版本。
在本实验中,您将使用 Google Cloud 控制台的 Bigtable 页面来探索 Bigtable 实例,并使用 Bigtable CLI (cbt CLI) 查询 Bigtable 表中的数据。您还将使用 Bigtable 最佳实践设计表架构和行键。
在本实验中,您将学习如何访问 Bigtable 实例并查询 Bigtable 架构。
cbt CLI。请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 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 概览指南。
在本实验练习中,系统已预先为您创建了一个 Bigtable 实例和表,供您探索。在此任务中,您将在 Google Cloud 控制台中访问名为 personalized-sales 的 Bigtable 实例,并查看有关该实例的相关详细信息。
在 Google Cloud 控制台的导航菜单 () 中,点击数据库下的 Bigtable。
在 Bigtable 实例列表中,找到名为 personalized-sales 的实例 ID。
查看节点的详细信息,并回答以下问题。
如需导航到实例详细信息,点击名为 personalized-sales 的实例 ID。
点击修改实例。
查看实例的详细信息,并回答以下问题。
如需关闭实例修改页面,点击取消。
在集群 ID 表中,点击 personalized-sales-cluster1 所在行中的修改铅笔图标。
查看集群的详细信息,并回答以下问题。
如需关闭集群详细信息,点击取消。
在导航菜单中,点击实例下的表。
查看名为 UserSessions 的表的详细信息,并回答以下问题。
现在您已经查看了 Bigtable 实例的详细信息,可以继续执行下一项任务,使用 cbt CLI 连接到该实例。
如需使用 cbt CLI 命令连接到 Bigtable,您首先需要使用 Cloud Shell 更新 .cbtrc 配置文件,将项目 ID 和 Bigtable 实例 ID 添加到其中。
如需回顾如何访问 Cloud Shell,请参阅本实验指南前面的设置和要求部分。
虽然 cbt CLI 主要用于调试和探索,但它也是学习 Bigtable 基础知识的有用工具。如需在生产环境中完成 CRUD(创建、读取、更新、删除)操作,我们建议使用 Bigtable 的客户端库之一。
.cbtrc 文件,在 Cloud Shell 中运行以下命令:输出确认存在一个名为 personalized-sales 的实例。
.cbtrc 文件,运行以下命令:.cbtrc 文件,运行以下命令:输出应类似于以下内容:
输出确认该实例包含一个名为 UserSessions 的表。您将在后面的任务中使用此表。
在此任务中,您将创建一个测试表,以探索 Bigtable 中的架构和行键设计原则。
要在 Bigtable 中设计架构和行键,首先要回答有关所存储数据的关键问题。
| 问题 | 用途 |
|---|---|
| 每一行代表什么?(例如,单个用户或传感器) | 识别行结构 |
| What will be the most common queries to this data? | 创建行键 |
| 每行收集哪些值? | 如需识别列(称为“列限定符”) |
| 是否有可以分组或组织在一起的相关列? | 确定列族 |
例如,考虑一个数据集,其中包含电子商务公司网站所有用户的在线购物会话。每一行代表一次在线购物会话,并带有时间戳。对数据集最常见的查询将检索有关各个会话和关联的用户 ID 的详细信息。为每个购物会话存储的值包括用户在会话期间互动和购买的所有商品,以及用户的颜色偏好。
原始数据可以按如下方式组织,其中包含更多列来表示其他产品(例如 blue_jacket 或 purple_bag):
| timestamp | user_id | preferred_color | red_skirt | red_hat | orange_shoes | sale |
|---|---|---|---|---|---|---|
| 1638940844260 | 1939 | 绿色 | 已查看 | 已查看 | ||
| 1638940844260 | 2466 | 蓝色 | 已查看 | 已查看 | ||
| 1638940844260 | 1679 | 蓝色 | 已查看 | 蓝色衬衫#蓝色夹克 | ||
| 1638940844260 | 2737 | 蓝色 | 已查看 | 蓝色连衣裙#蓝色夹克 | ||
| 1638940844260 | 582 | 黄色 | 黄色裙子 |
Bigtable 的最佳实践是将具有相同架构的数据存储在同一个表中,而不是不同的表中。例如,在线购物会话的所有数据都可以存储在一个表中,以便轻松检索。
使用列限定符作为数据,这样您就不必为每一行重复该值。
将相关列放在同一列族中。
为列族选择简短但有意义的名称。
对于此数据集,存储商品互动信息的列限定符可以分组到一个名为 Interactions 的列族中,而存储购买信息的列限定符可以单独组织到另一个名为 Sales 的列族中。生成的架构将按如下方式组织:
| … | … | … | Interactions | --- | --- | Sales |
|---|---|---|---|---|---|---|
| timestamp | user_id | preferred_color | red_skirt | red_hat | orange_shoes | sale |
| 1638940844260 | 1939 | 绿色 | 已查看 | 已查看 | ||
| 1638940844260 | 2466 | 蓝色 | 已查看 | 已查看 | ||
| 1638940844260 | 1679 | 蓝色 | 已查看 | 蓝色衬衫#蓝色夹克 | ||
| 1638940844260 | 2737 | 蓝色 | 已查看 | 蓝色连衣裙#蓝色夹克 | ||
| 1638940844260 | 582 | 黄色 | 黄色裙子 |
该命令返回以下输出:
点击检查我的进度,验证已完成以下目标:
在 Bigtable 中,最佳实践是将单个实体(例如单个在线购物会话)的所有信息存储在一行中。一项相关的最佳实践是创建行键,以便轻松查询和检索定义的行范围。
为了在 Bigtable 中应用行键的最佳实践,建议您:
根据您将用于检索数据的查询来设计行键。
避免使用以时间戳或连续数字 ID 开头的行键,或导致相关数据不会分组到一起的行键。
设计行键时,应以更常见的泛化值(例如国家/地区)开头,以更细分的具体值(例如城市)结尾。
在每个行键中存储多个分隔的值,并使用直观易懂的字符串值(例如用户 ID 后跟时间戳)。
在上一部分中,timestamp、user_id 和 preferred_color 未按列族进行整理。回想一下有关原始数据的问题,对该数据集的大多数查询都会检索有关各个会话和关联用户 ID 的详细信息。
为了支持这些查询,此表的理想行键是用户 ID 与会话时间戳的组合。此外,行键可以包含一个前缀,用于标记每个用户的颜色偏好,例如用户 ID 为 1939 的用户,其行键可以为 green1939#1638940844260,这样可以轻松检索具有特定颜色偏好的所有用户。
| … | Interactions | --- | --- | Sales |
|---|---|---|---|---|
| 行键 | red_skirt | red_hat | orange_shoes | sale |
| green1939#1638940844260 | 已查看 | 已查看 | ||
| blue2466#1638940844260 | 已查看 | 已查看 | ||
| blue1679#1638940844260 | 已查看 | 蓝色衬衫#蓝色夹克 | ||
| blue2737#1638940844260 | 已查看 | 蓝色连衣裙#蓝色夹克 | ||
| yellow582#1638940844260 | 黄色裙子 |
请注意,虽然 blue2737#1638940844260 的数据是第二个添加的,但它在结果中的排序高于 green1939#1638940844260。记录按此顺序返回,是因为在 Bigtable 中,行是按行键的字典顺序排序和存储的。此排序方式与字母顺序类似;不过,以数字开头的行不会按从小到大的顺序排序(例如 1、13、2、25、6 和 70)。
点击检查我的进度,验证已完成以下目标:
在此任务中,您将使用 cbt CLI 从预先创建的测试表(名为 UserSessions 的现有表)的完整填充版本中检索数据,并检查该表如何应用 Bigtable 中设计架构和行键的最佳实践。
在此步骤中,您将查看 UserSessions 表如何遵循 Bigtable 最佳实践,将所有用户与产品的互动以及产品购买情况存储在一个表中,该表中的每一行对应一次在线购物会话。
输出结构如下:
输出值应类似于以下内容:
每一行都包含一个用户的多项产品互动(例如蓝色帽子和绿色夹克),包括用户是否看到、查看详情或购买了该产品。此外,购买信息会记录在 Sales 列族中的 sale 列限定符对应的表中。
UserSessions 没有为每种互动类型、产品或销售创建单独的表,而是遵循最佳实践,将所有相关的用户互动和产品都包含在一个表中。此外,单个在线购物会话的所有商品互动和购买行为都存储在表中的一行中。
Bigtable 中最有效的查询基于以下元素之一来检索数据:
在接下来的步骤中,您将使用 cbt CLI 中的每个选项来查询 UserSessions 表并检索所需的记录。
如需了解如何使用 Bigtable 客户端库通过行键读取单行数据,请参阅 Bigtable 文档。
输出值应类似于以下内容:
输出值应类似于以下内容:
read 命令从作为 start 值提供的行键开始,到作为 end 值提供的行键之前结束。因此,输出中不会返回行键 yellow991#1638940844645。
输出值应类似于以下内容:
在接下来的步骤中,您将检索按列限定符和列族过滤的数据,以了解如何在 UserSessions 表中实现列的最佳实践。
输出值应类似于以下内容:
输出值应类似于以下内容:
输出值应类似于以下内容:
由于名为 Sales 的列族只有一个列限定符 (sale),因此 columns 的值 "Sales:sale" 和 "Sales:.*" 返回的列相同。
在本实验中,您使用了 Google Cloud 控制台来探索 Bigtable 实例,并使用了 Cloud Bigtable CLI (cbt CLI) 来查询 Bigtable 表中的数据。您还使用 Bigtable 最佳实践设计了表架构和行键。
…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。
上次更新手册的时间:2024 年 5 月 30 日
上次测试实验的时间:2023 年 2 月 16 日
版权所有 2025 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验