Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon Keyspaces 中的分区程序
在 Apache Cassandra 中,分区程序控制将数据存储在集群中的哪些节点上。分区程序使用分区键的哈希值创建数字令牌。Cassandra 使用此令牌在节点之间分配数据。客户还可以在 SELECT
操作和 WHERE
子句中使用这些令牌来优化读取和写入操作。例如,客户可以通过在每个并行作业中指定要查询的不同令牌范围,高效地对大型表执行并行查询。
Amazon Keyspaces 提供三种不同的分区程序。
- Murmur3Partitioner(默认)
-
与 Apache Cassandra 兼容的 Murmur3Partitioner
。Murmur3Partitioner
是 Amazon Keyspaces 和 Cassandra 1.2 及更高版本中的默认 Cassandra 分区程序。
- RandomPartitioner
-
与 Apache Cassandra 兼容的 RandomPartitioner
。RandomPartitioner
是 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 控制台更改分区程序
-
登录 https://console.aws.amazon.com/keyspaces/home,然后打开 Amazon Web Services Management Console Amazon Keyspaces 控制台。
-
在导航窗格中,选择 Configuration(配置)。
-
在配置页面上,转到编辑分区程序。
-
选择与您的 Cassandra 版本兼容的分区程序。分区程序更改需要大约 10 分钟才能应用。
配置更改完成后,您必须断开连接并重新连接到 Amazon Keyspaces,这样请求才能使用新的分区程序。
- Cassandra Query Language (CQL)
-
要查看账户配置了哪个分区程序,可以使用以下查询。
SELECT partitioner from system.local;
如果未更改分区程序,则查询将显示以下输出。
partitioner
--------------------------------------------
com.amazonaws.cassandra.DefaultPartitioner
要将分区程序更新为 Murmur3
分区程序,可以使用以下语句。
UPDATE system.local set partitioner='org.apache.cassandra.dht.Murmur3Partitioner' where key='local';
请注意,此配置更改需要大约 10 分钟才能完成。要确认是否已设置分区程序,可以再次运行 SELECT
查询。请注意,由于最终读取一致性,响应反映的可能还不是最近完成的分区程序更改的结果。如果您稍等片刻后再次重复 SELECT
操作,响应应会返回最新数据。
SELECT partitioner from system.local;
您必须断开连接并重新连接到 Amazon Keyspaces,这样请求才能使用新的分区程序。