本页面介绍并说明了 Spanner 中的地理位置分区的工作原理。
Spanner 提供单区域和多区域实例配置,让您可以跨地理位置复制数据。通过地理分区,您可以跨不同的实例配置进一步细分和存储数据库表中的行。
优势和用例
地理位置分区的优势包括:
将数据存储在查询所在的地理位置,可缩短写入延迟时间和较长的读取延迟时间。
优化非对称全局工作负载的费用(例如,使用具有 10 个节点的
us-central1
分区和具有 2 个节点的asia-south1
分区)。
以下是一些常见用例:
用户相关数据:对用户相关数据进行地理分区,以便在离用户最近的区域中处理和存储数据。
本地化数据:特定于位置的信息,例如路况和特殊事件。
地理位置分区的工作原理
所有 Spanner 实例都有一个称为 default
分区的主实例分区。如果未创建其他分区,则所有数据库对象都将存储在默认分区中,该分区与实例配置位于同一位置。
如果要对数据库中的数据进行分区,您必须在实例中创建额外的分区。这些用户创建的分区有自己的配置(单区域或多区域)和节点数。像平常一样创建数据库;您的数据库可以与在同一实例中创建的分区进行交互。然后,在数据库中创建与该分区关联的展示位置。最后,您可以创建包含展示位置键属性的展示位置表。您必须在 DML 语句中使用放置键来指定行数据所在的分区。如果您在数据库中创建非放置表,Spanner 会将该数据存储在默认分区中。
如需了解如何使用分区,请参阅创建和管理分区。
重要注意事项
在创建分区、展示位置和放置表之前,请考虑以下事项:
分区位置:仔细选择能为您的应用带来最大益处的分区区域。
虽然您可以在采用单区域实例配置的实例中创建分区,但我们建议您在采用多区域实例配置的实例中创建分区,以使默认分区位置也采用多区域配置。
此外,请选择一个多区域默认分区位置,该位置具有读写区域和只读区域,覆盖应用所需的所有管辖区。然后,使用与多区域默认分区中的区域相匹配的主要区域创建其他分区(可以是区域级)。
分区数:分区过多可能会导致开销,而分区数过少可能无法提供足够的优势。每个实例最多可以创建 10 个分区。
限制
地理位置分区具有以下限制:
- 地理分区不支持 PostgreSQL 方言数据库。
- 您无法使用双区域配置创建实例分区。
- 对于每个分区,计算容量必须至少为一个节点(1000 个处理单元)。
- 对于给定的实例,您不能创建多个使用相同基本实例配置的实例分区。例如,在
test-instance
中,您不能创建两个都使用us-central1
作为分区配置的分区,即partition-1
和partition-2
。 - 对于分区中的每个节点,最多可以放置 2000 万行。您可以在 Google Cloud 控制台的“分区”页面上查看已放置到每个分区中的行数。
- 对于目标实例分区中的每个节点,Spanner 每秒可以移动大约 10 个展示位置行。
- 您不能在免费试用实例或小于一个节点(1000 个处理单元)的细化实例中创建分区。
- 您无法为具有分区的实例创建备份。
- 您不能对具有分区的实例使用客户管理的加密密钥。
- 您无法在启用了托管自动扩缩器的实例中创建实例分区。
- 您无法将该分区迁移到其他实例配置。
- 您无法移动包含分区的实例。
- 使用分区不能保证安全性、合规性和监管要求。
- 变更数据流不支持分区数据。
- 如需使用地理分区,您必须创建一个新的空数据库,并将
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 价格。
后续步骤
- 了解如何创建和管理分区。
- 不妨了解如何创建和管理数据展示位置。