如何使用多区域复制 - Amazon Keyspaces (for Apache Cassandra)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

如何使用多区域复制

您可以使用亚马逊密钥空间(适用于 Apache Cassandra)控制台、Cassandra 查询语言 (CQL)、Amazon SDK 和 () 来创建多区域密钥空间和Amazon Command Line Interface表Amazon CLI。

本节提供了如何使用控制台和创建多区域密钥空间的示例。Amazon CLI在多区域密钥空间中创建的所有表都会自动继承密钥空间的多区域设置。有关 API 的更多信息,请参阅亚马逊密钥空间 API 参考

有关支持的配置和功能的更多信息,请参阅Amazon Keyspaces(多区域复制)使用说明

创建多区域密钥空间(控制台)

按照以下步骤使用 Amazon Keyspaces 控制台创建新的多区域密钥空间。

创建多区域密钥空间(控制台)
  1. 登录并打开 Amazon Keyspaces 控制台,网址为 https://console.aws.amazon.com/keyspaces/home。Amazon Web Services Management Console

  2. 在导航窗格中,选择 Keyspaces (键空间),然后选择 Create keyspace (创建键空间)

  3. 密钥空间名称中,输入密钥空间的名称。

  4. 多区域复制部分中,您最多可以添加五个列表中可用的其他区域。

  5. 要完成操作,请选择创建密钥空间

    注意

    创建多区域密钥空间时,Amazon Keyspaces 会使用您的账户中的名称AWSServiceRoleForAmazonKeyspacesReplication创建服务相关角色。此角色允许 Amazon Keyspaces 代表您复制对多区域表的所有副本的写入。要了解更多信息,请参阅 使用角色进行 Amazon Keyspaces 多区域复制

创建多区域表(控制台)

按照以下步骤使用 Amazon Keyspaces 控制台创建多区域表。

创建多区域表(控制台)
  1. 登录并打开 Amazon Keyspaces 控制台,网址为 https://console.aws.amazon.com/keyspaces/home。Amazon Web Services Management Console

  2. 选择多区域密钥空间。

  3. 表格选项卡上,选择创建表

  4. 对于表名,输入表的名称。正在复制此表的内容显示在信息框中。Amazon Web Services 区域

  5. 继续使用表架构。

  6. “表格设置” 下,继续选择 “默认设置” 选项。请注意多区域表的以下默认设置。

    • 容量模式-仅支持按需模式。

    • 加密密钥管理-仅支持该Amazon 拥有的密钥选项。

    • 客户端时间戳-多区域表需要此功能。

    • 如果您需要为表格及其所有副本打开 Time to Live (TTL),请选择 “自定义设置”。

      注意

      您将无法更改现有多区域表的 TTL 设置。

  7. 要完成操作,请选择创建表

创建多区域密钥空间 (CQL)

要创建多区域密钥空间,请使用NetworkTopologyStrategy来指定密钥空间要复制到Amazon Web Services 区域的位置。您必须包括您当前的区域和至少一个附加区域。以下 CQL 语句就是一个例子。

CREATE KEYSPACE my_keyspace WITH REPLICATION = {'class':'NetworkTopologyStrategy', 'us-east-1':'3', 'ap-southeast-1':'3','eu-west-1':'3' };

密钥空间中的所有表都使用与密钥空间相同的复制策略。您无法在表级别更改复制策略。

NetworkTopologyStrategy— 每个区域的复制因子为三,因为默认情况下,Amazon Keyspaces 会在同一个区域内的三个可用区之间复制数据。Amazon Web Services 区域

注意

创建多区域密钥空间时,Amazon Keyspaces 会使用您的账户中的名称AWSServiceRoleForAmazonKeyspacesReplication创建服务相关角色。此角色允许 Amazon Keyspaces 代表您复制对多区域表的所有副本的写入。要了解更多信息,请参阅 使用角色进行 Amazon Keyspaces 多区域复制

您可以使用 CQL 语句在system_multiregion_info密钥空间中查询tables表,以编程方式列出您指定的多区域表的区域和状态。以下代码就是一个例子。

SELECT * from system_multiregion_info.tables WHERE keyspace_name = 'my_multi_region_keyspace' AND table_name = 'my_table';

该语句的输出如下所示。

keyspace_name | table_name | region | status --------------------------+----------------+-----------+-------- my_multi_region_keyspace | my_table | eu-west-1 | ACTIVE my_multi_region_keyspace | my_table | us-east-1 | ACTIVE

创建新的多区域密钥空间 (CLI)

要创建多区域密钥空间,可以使用以下 CLI 语句。在中指定您的当前区域和至少一个附加区域regionList

./aws keyspaces create-keyspace \ --keyspace-name my_keyspace --replication-specification replicationStrategy=MULTI_REGION,regionList=us-east-1,eu-west-1
注意

创建多区域密钥空间时,Amazon Keyspaces 会使用您的账户中的名称AWSServiceRoleForAmazonKeyspacesReplication创建服务相关角色。此角色允许 Amazon Keyspaces 代表您复制对多区域表的所有副本的写入。要了解更多信息,请参阅“使用角色进行 Amazon Keyspaces 多区域复制”。