我很惊讶之前没有提出这个问题。
假设我们在cassandra中有一个巨大的表,我们需要获取它的行数的估计值(不是精确值,只是近似值)。
显然,简单的select count(*) from table
不是高效的,可能需要很长时间。我们需要一些“脏”而快速的方法。
Datastax博客建议如下:
我不关心精确数字,能给我个大概的估算吗?
因为Cassandra知道每个SSTable中有多少行,所以可以得到一个估计值。“nodetool cfstats”输出告诉你这些计数在“Number of Keys (estimate)”行中。这是每个SStable中行数的总和(由于使用的索引而再次近似,但默认情况下不能超过128)。
我的问题是:我们能否使用DataStax企业Java驱动程序执行相同的操作?
P.S.我无法更改表结构或其他任何内容。考虑到我使用的是旧架构,换句话说,我不感兴趣的是像添加计数器或其他特殊字段这样的解决方法。