count(*)实际上是翻页所有数据。因此,如果
select count(*) fromuserdetails没有那么多行,将导致没有限制。一些细节在这里:http : //planetcassandra.org/blog/counting-key-in-
cassandra/
您可能要考虑使用Spark自己维护计数,或者,如果您只想要一个棒球场编号,可以从JMX那里获取。
要从JMX中获取数据,可能会有些棘手,具体取决于您的数据模型。要获取分区数,请获取
org.apache.cassandra.metrics:type=ColumnFamily,keyspace={{Keyspace}},scope={{Table}},name=EstimatedColumnCountHistogrammbean并汇总所有90个值(这是nodetoolcfstats输出)。它只会给您sstables中存在的数字,因此要使其更准确,您可以进行刷新或尝试从
MemtableColumnsCountmbean
估计memtables中的数字
对于非常基本的球场编号,您可以从
system.size_estimates列出的所有范围中获取估计的分区数(请注意,这只是一个节点上的编号)。将其乘以节点数,然后除以RF。



