本页介绍并说明了地理分区在 Spanner 中的工作原理。
Spanner 提供了区域级配置和多区域配置,这让您可以跨地理位置复制数据。借助地理分区,您可以进一步对不同实例配置中数据库表内的行数据进行细分和存储。
优势和用例
地理分区的好处包括:
让您将数据存储在与查询相同的地理位置,从而缩短写入和强一致性读取延迟时间。
为不对称全球工作负载优化费用(例如,使用包含 10 个节点的
us-central1
分区和包含 2 个节点的asia-south1
分区)。
以下是常见的使用场景:
与用户相关的数据:对与用户相关的数据进行地理分区,以便在距离用户最近的区域处理和存储数据。
本地化数据:特定于地点的信息,例如交通和特殊活动。
地理分区的运作方式
所有 Spanner 实例都有一个主实例分区,称为 default
分区。如果您不创建其他分区,则所有数据库对象都存储在默认分区中,该分区与实例配置位于同一位置。
如果您想对数据库中的数据进行分区,则必须在实例中创建其他分区。这些由用户创建的分区各有自己的配置(单区域或多区域)和节点数。像往常一样创建数据库;您的数据库可以与在同一实例中创建的分区进行交互。然后,在数据库中创建与分区相关联的位置。最后,您可以创建具有展示位置键属性的展示位置表。您必须在 DML 语句中使用放置键来指定行数据位于哪个分区中。如果您在数据库中创建非放置表,Spanner 会将这些数据存储在默认分区中。
如需了解如何使用分区,请参阅创建和管理分区。
重要注意事项
在创建分区、展示位置和展示位置表之前,请考虑以下事项:
分区位置:仔细选择对您的应用最有益的分区区域。
虽然您可以在使用单区域实例配置的实例中创建分区,但我们建议您在使用多区域实例配置的实例中创建分区,以便默认分区位置也采用多区域配置。
此外,请选择一个多区域默认分区位置,其中包含读写区域和只读区域,这些区域涵盖应用所需的所有管辖区。然后,创建其他分区(可以是区域性分区),并将主副本区域与多区域默认分区中的区域保持一致。
分区数量:分区过多可能会导致开销,而分区过少可能无法提供足够的好处。每个实例最多可以创建 10 个分区。
限制
在预览版发布期间,存在以下限制,这些限制可能会在正式版发布后或之后发生变化或被移除:
- 您无法使用双区域配置创建实例分区。
- 对于每个分区,计算容量必须至少为 1 个节点(1, 000 个处理单元)。
- 对于给定实例,您不能创建多个使用相同基本实例配置的实例分区。例如,在
test-instance
中,您不能创建两个分区(partition-1
和partition-2
),这两个分区都使用us-central1
作为分区配置。 - 对于分区中的每个节点,您最多可以放置 1 亿个放置行。您可以在 Google Cloud 控制台中的“分区”页面上查看已放置在每个分区中的放置行数。
- 对于目标实例分区中的每个节点,Spanner 每秒可以移动大约 10 行放置行。
- 您无法在免费试用实例或小于一个节点(1,000 个处理单元)的精细实例中创建分区。
- 您无法为包含分区的实例创建备份。
- 您无法对包含分区的实例使用客户管理的加密密钥。
- 您无法在启用了托管式自动扩缩器的实例中创建实例分区。
- 您无法将分区移至其他实例配置。
- 您无法移动包含分区的实例。(您可以将单个行移至不同的分区,这样就无需移动实例。)
- 使用分区并不能保证符合法规要求。
- 变更数据流不支持分区数据。
- 如需使用地理分区,您必须创建一个新的空数据库,并将
opt_in_dataplacement_preview
选项设置为true
。如需了解详情,请参阅创建和管理分区。 - 如果您对展示位置表使用
INSERT
或DELETE
DML 语句,则该语句必须是事务中的唯一语句。
使用 IAM 进行访问权限控制
您需要拥有 spanner.instancePartitions.create
、spanner.instancePartitions.update
和 spanner.instancePartitions.delete
权限才能创建和管理分区。如果您只需查看分区,则需要拥有 spanner.instancePartitions.list
或 spanner.instancePartitions.get
权限。如需了解详情,请参阅 IAM 概览。
如需了解如何授予 Spanner IAM 权限,请参阅应用 IAM 权限。
监控
Spanner 提供了多个指标来帮助您监控分区。创建其他分区后,您会在 Google Cloud 控制台中的“系统数据分析”页面上看到一个额外的分区下拉式过滤器。默认选择是显示所有分区的指标。您可以使用下拉菜单过滤特定分区的指标。
如需详细了解如何监控 Spanner 资源,请参阅使用 Cloud Monitoring 监控实例。
价格
使用地理分区无需额外付费。系统会根据实例使用的计算容量和数据库使用的存储空间量,按标准 Spanner 价格向您收费。
如需了解详情,请参阅 Spanner 价格。
后续步骤
- 了解如何创建和管理分区。
- 了解如何创建和管理数据展示位置。