使用 Amazon Keyspaces 中的分区程序 - Amazon Keyspaces(Apache Cassandra 兼容)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 Amazon Keyspaces 中的分区程序

在 Apache Cassandra 中,分区程序控制将数据存储在集群中的哪些节点上。分区程序使用分区键的哈希值创建数字令牌。Cassandra 使用此令牌在节点之间分配数据。客户还可以在 SELECT 操作和 WHERE 子句中使用这些令牌来优化读取和写入操作。例如,客户可以通过在每个并行作业中指定要查询的不同令牌范围,高效地对大型表执行并行查询。

Amazon Keyspaces 提供三种不同的分区程序。

Murmur3Partitioner(默认)

与 Apache Cassandra 兼容的 Murmur3PartitionerMurmur3Partitioner 是 Amazon Keyspaces 和 Cassandra 1.2 及更高版本中的默认 Cassandra 分区程序。

RandomPartitioner

与 Apache Cassandra 兼容的 RandomPartitionerRandomPartitioner 是 Cassandra 1.2 之前版本的默认 Cassandra 分区程序。

Keyspaces 默认分区程序

DefaultPartitioner 返回与 RandomPartitioner 相同的 token 函数结果。

分区程序设置在账户级别按区域应用。例如,如果您更改了美国东部(弗吉尼亚州北部)的分区程序,则更改将应用于该区域内同一账户中的所有表。您可以随时安全地更改分区程序。请注意,配置更改需要大约 10 分钟才能完成。更改分区程序设置时,您无需重新加载 Amazon Keyspaces 数据。客户将在下次连接时自动使用新的分区程序设置。

您可以使用 Amazon Web Services Management Console或 Cassandra 查询语言 (CQL) 更改分区程序。

Amazon Web Services Management Console
使用 Amazon Keyspaces 控制台更改分区程序
  1. 登录 https://console.aws.amazon.com/keyspaces/home,然后打开 Amazon Web Services Management Console Amazon Keyspaces 控制台。

  2. 在导航窗格中,选择 Configuration(配置)。

  3. 配置页面上,转到编辑分区程序

  4. 选择与您的 Cassandra 版本兼容的分区程序。分区程序更改需要大约 10 分钟才能应用。

    注意

    配置更改完成后,您必须断开连接并重新连接到 Amazon Keyspaces,这样请求才能使用新的分区程序。

Cassandra Query Language (CQL)
  1. 要查看账户配置了哪个分区程序,可以使用以下查询。

    SELECT partitioner from system.local;

    如果未更改分区程序,则查询将显示以下输出。

    partitioner -------------------------------------------- com.amazonaws.cassandra.DefaultPartitioner
  2. 要将分区程序更新为 Murmur3 分区程序,可以使用以下语句。

    UPDATE system.local set partitioner='org.apache.cassandra.dht.Murmur3Partitioner' where key='local';
  3. 请注意,此配置更改需要大约 10 分钟才能完成。要确认是否已设置分区程序,可以再次运行 SELECT 查询。请注意,由于最终读取一致性,响应反映的可能还不是最近完成的分区程序更改的结果。如果您稍等片刻后再次重复 SELECT 操作,响应应会返回最新数据。

    SELECT partitioner from system.local;
    注意

    您必须断开连接并重新连接到 Amazon Keyspaces,这样请求才能使用新的分区程序。