Cassandra 验证批量导入

Cassandra Verifying Bulk Import

我有一个 Cassandra 集群和 运行 5 个节点。

我用 replication_factor=3 创建了一个键空间,并在其中创建了一个 table。

我使用 cqlsh 将 CSV 批量加载到我的 table。

我在加载后收到此消息:

355637 rows imported from 1 file

但是,当我使用 cqlsh 连接到集群并执行

select count(*) from my_keyspaces.my_table;

我只得到

 count
--------
 122715

我的架构设置方式实际上只有 6 行(每个设备一行),使用 Cassandra 的宽行。

但是,cqlsh 将这些显示为行以使生活更轻松。

我的问题是,为什么 count(*) 不是 return 一个准确的数字,而且,为什么 return 非常接近我的 1/3预期数量?

您很有可能不小心更新了。如果 CSV 中有多行具有相同的主键,就会发生这种情况。

除了@brandon 回复(在大多数情况下都是正确的),您还可以在查询中设置上限,例如 select count(*) from cf limit 1000000 或使用 nodetool cfstats 获取更多信息。