地理分区概览

本页面介绍并说明了 Spanner 中的地理位置分区的工作原理。

Spanner 提供单区域和多区域实例配置,让您可以跨地理位置复制数据。通过地理分区,您可以跨不同的实例配置进一步细分和存储数据库表中的行。

优势和用例

地理位置分区的优势包括:

  • 将数据存储在查询所在的地理位置,可缩短写入延迟时间和较长的读取延迟时间。

  • 优化非对称全局工作负载的费用(例如,使用具有 10 个节点的 us-central1 分区和具有 2 个节点的 asia-south1 分区)。

以下是一些常见用例:

  • 用户相关数据:对用户相关数据进行地理分区,以便在离用户最近的区域中处理和存储数据。

  • 本地化数据:特定于位置的信息,例如路况和特殊事件。

地理位置分区的工作原理

所有 Spanner 实例都有一个称为 default 分区的主实例分区。如果未创建其他分区,则所有数据库对象都将存储在默认分区中,该分区与实例配置位于同一位置。

如果要对数据库中的数据进行分区,您必须在实例中创建额外的分区。这些用户创建的分区有自己的配置(单区域或多区域)和节点数。像平常一样创建数据库;您的数据库可以与在同一实例中创建的分区进行交互。然后,在数据库中创建与该分区关联的展示位置。最后,您可以创建包含展示位置键属性的展示位置表。您必须在 DML 语句中使用放置键来指定行数据所在的分区。如果您在数据库中创建非放置表,Spanner 会将该数据存储在默认分区中。

如需了解如何使用分区,请参阅创建和管理分区

重要注意事项

在创建分区、展示位置和放置表之前,请考虑以下事项:

  • 分区位置:仔细选择能为您的应用带来最大益处的分区区域。

    虽然您可以在采用单区域实例配置的实例中创建分区,但我们建议您在采用多区域实例配置的实例中创建分区,以使默认分区位置也采用多区域配置。

    此外,请选择一个多区域默认分区位置,该位置具有读写区域和只读区域,覆盖应用所需的所有管辖区。然后,使用与多区域默认分区中的区域相匹配的主要区域创建其他分区(可以是区域级)。

  • 分区数:分区过多可能会导致开销,而分区数过少可能无法提供足够的优势。每个实例最多可以创建 10 个分区。

限制

地理位置分区具有以下限制:

  • 地理分区不支持 PostgreSQL 方言数据库。
  • 您无法使用双区域配置创建实例分区。
  • 对于每个分区,计算容量必须至少为一个节点(1000 个处理单元)。
  • 对于给定的实例,您不能创建多个使用相同基本实例配置的实例分区。例如,在 test-instance 中,您不能创建两个都使用 us-central1 作为分区配置的分区,即 partition-1partition-2
  • 对于分区中的每个节点,最多可以放置 2000 万行。您可以在 Google Cloud 控制台的“分区”页面上查看已放置到每个分区中的行数。
  • 对于目标实例分区中的每个节点,Spanner 每秒可以移动大约 10 个展示位置行。
  • 您不能在免费试用实例或小于一个节点(1000 个处理单元)的细化实例中创建分区。
  • 您无法为具有分区的实例创建备份。
  • 您不能对具有分区的实例使用客户管理的加密密钥
  • 您无法在启用了托管自动扩缩器的实例中创建实例分区。
  • 您无法将该分区迁移到其他实例配置。
  • 您无法移动包含分区的实例。
  • 使用分区不能保证安全性、合规性和监管要求。
  • 变更数据流不支持分区数据。
  • 如需使用地理分区,您必须创建一个新的空数据库,并将 opt_in_dataplacement_preview 选项设置为 true。如需了解详情,请参阅创建和管理数据展示位置
  • 如果对展示位置表使用 INSERTDELETE DML 语句,则该语句必须是事务中的唯一语句。

使用 IAM 控制访问权限

您需要具有 spanner.instancePartitions.createspanner.instancePartitions.updatespanner.instancePartitions.delete 权限才能创建和管理分区。如果您只需查看分区,则需要拥有 spanner.instancePartitions.listspanner.instancePartitions.get 权限。如需了解详情,请参阅 IAM 概览

如需了解如何授予 Spanner IAM 权限,请参阅应用 IAM 权限

监控

Spanner 提供了多个指标来帮助您监控分区。创建额外的分区后,您会在 Google Cloud 控制台的“系统数据分析”页面上看到另一个针对分区的下拉过滤条件。默认选择是显示所有分区的指标。您可以使用下拉列表过滤特定分区的指标。

如需详细了解如何监控 Spanner 资源,请参阅使用 Cloud Monitoring 监控实例

价格

使用地理位置分区不会产生额外费用。您需要为实例使用的计算容量和数据库的存储空间使用量支付标准 Spanner 价格。

如需了解详情,请参阅 Spanner 价格

后续步骤