我在Cassandra表中使用了一个二级索引。,
假设我有一个 5节点集群(192.168.1.1,192.168.1.2,192.168.1.3,192.168.1.4,192.168.1.5),其中Keyspace 复制因子为&#39 ; 3' 并考虑下表,
CREATE TABLE nodestat (
uniqueId text,
totalCapacity int,
physicalUsage int,
flashMode text,
timestamp timestamp,
primary key (uniqueId, timestamp))
with clustering order by (timestamp desc);
在此,我将uniqueId的值设为' test ',这意味着我只有只有一个名为' test'的分区。 即可。
当我执行getEndPoints时,我可以看到数据只驻留在3个节点中。
./nodetool getendpoints keyspacename nodestat test
192.168.1.1 192.168.1.2 192.168.1.3
所以我的分区数据有3个节点,我在其中一个列上做了二级索引,
CREATE CUSTOM INDEX nodeIp_idx ON nodestat(flashMode)
所以现在我执行
select * from nodestat where uniqueId = 'test' AND flashMode = 'yes'
收集数据的节点数量是多少?
谢谢,
哈利
答案 0 :(得分:1)
select * from nodestat where uniqueId = 'test' AND flashMode = 'yes'
根据此查询,您将使用分区键和辅助索引。因此,它将表现得像基于所选一致性级别的普通查询。也就是说,如果“local_one”只有一个节点足以响应,并且“local_quorum”中该节点的法定数量的节点必须响应。二级索引将进一步帮助缩小结果集。
请记住,辅助索引对于该群集的每个节点中的数据是本地的,因此存在于群集的所有节点中。其他参考here。
简而言之,复制因子与辅助索引没有直接关联。