我有一个Cassandra集群并运行5个节点。
我使用replication_factor = 3创建了一个键空间,并在其中创建了一个表。
我使用cqlsh
将CSV批量加载到我的表格中。
我在加载后收到此消息:
355637 rows imported from 1 file
但是,当我使用cqlsh
连接到群集并执行
select count(*) from my_keyspaces.my_table;
我只得到
count
--------
122715
我的架构设置方式实际上只有6行(每个设备一个),使用Cassandra的宽行。
但是,cqlsh
将这些行公开为行,以使生活更轻松。
我的问题是,为什么count(*)
没有返回准确的数字,而且,为什么它确实返回的数字非常接近我预期数字的1/3
?
答案 0 :(得分:2)
你很有可能不小心喋喋不休。如果CSV中有多行具有相同的主键,则会发生这种情况。
答案 1 :(得分:0)
除了@brandon回复(在大多数情况下都是正确的),您还可以在查询中设置上限,例如从cf limit 1000000中选择count(*)或使用nodetool cfstats获取更多见解。