cassandra从一个节点集群运行查询cqlsh得到的结果

x9ybnkn6  于 2021-06-10  发布在  Cassandra
关注(0)|答案(2)|浏览(469)

我刚到Cassandra,还没看完医生。只想知道我是否从3节点集群的一个节点运行cqlsh并运行query,例如。

cqlsh node1host -u username -p passwd -k my_cass_keyspace
> select ...

结果是来自所有3个节点还是仅仅来自我运行cqsh的节点?很抱歉问了一个很无聊的问题。谢谢。

8gsdolmq

8gsdolmq1#

答案是肯定的,它来自所有节点,但它取决于您的集群配置、复制因子和一致性级别。
为了example:- you 有3个节点的集群,复制因子为3,一致性级别为读写的仲裁,因此无论何时执行插入查询,数据都将复制到所有3个节点,但2个节点的确认足以作为仲裁。如果执行select查询,则会出现相同的填充。
您也可以将cassandra文档作为below:- http://cassandra.apache.org/doc/latest/architecture/dynamo.html#复制

ghhaqwfi

ghhaqwfi2#

一般回答:从所有节点。
详细回答:您的节点可能是协调器,然后根据您的复制因子,该节点可能从其他节点获取数据(例如rf1,然后您从另一个节点查询分区)。
这取决于您的复制因子,以及您的一致性级别。在使用cqlsh时,您可以检查您的一致性(默认值为1):

cqlsh> consistency;
Current consistency level is ONE.

您可以通过以下方式进行更改(例如,更改为quorum):

cqlsh> CONSISTENCY QUORUM ;

如果您想了解有关请求执行计划的详细信息,请尝试激活跟踪:

cqlsh> tracing on ;

我希望这有帮助!

相关问题