如何在CQL3中设置单个CQL查询的一致性级别?

Aar*_*web 13 consistency cassandra datastax-enterprise cql3

早期的CQ L 测试版中,有一个命令我可以用来设置单个CQL操作的读/写一致性.它看起来像这样:

SELECT * FROM users WHERE state='TX' USING CONSISTENCY QUORUM;

我定期使用CQL3并且有一个用例,我需要能够以比我们应用程序的其余部分更高的一致性级别执行读取.

我查看了CQL3参考,并没有发现任何CQL语法的提及允许我在每个查询的基础上更改一致性设置,除非我使用cqlsh(对应用程序开发没用).

我应该如何使用CQL3在每个请求的基础上调整一致性?

Cha*_*dan 21

首先通过运行命令设置一致性:

CONSISTENCY QUORUM;
Run Code Online (Sandbox Code Playgroud)

然后运行查询:

SELECT * FROM users WHERE state='TX'
Run Code Online (Sandbox Code Playgroud)

您可以随时使用以下方法检查一致性:

 CONSISTENCY;
Run Code Online (Sandbox Code Playgroud)


Rom*_*kin 8

Aaron,不需要在协议级别设置一致性级别 - 原因如下所述:https://issues.apache.org/jira/browse/CASSANDRA-4734

  • 具体来说,这意味着您使用的驱动程序将告诉您如何设置它的一致性级别. (5认同)

Aru*_*run 5

任何查询的默认一致性级别都是“ONE”。但是,可以根据查询设置一致性级别,如下所示。 设置一致性级别

根据复制因子,可以找到分区(节点列表)的位置,如下所示。

nodetool getendpoints 键空间名称 表名称 分区键值

$ nodetool getendpoints stresstest status bill
10.134.38.15
10.134.38.24
10.134.38.26
Run Code Online (Sandbox Code Playgroud)