Java 使用hector快速计算cassandra行中的列总数
我想使用客户端计算Cassandra行的总列数。目前,我正在使用Java 使用hector快速计算cassandra行中的列总数,java,performance,cassandra,counting,hector,Java,Performance,Cassandra,Counting,Hector,我想使用客户端计算Cassandra行的总列数。目前,我正在使用CountQuery进行此操作,但对我来说它似乎非常慢。同样,对于一行,只有60k列,它需要将近2秒的时间。我的代码当前如下所示: QueryResult<Integer> qr = HFactory.createCountQuery(ksp, se, se). setColumnFamily("ColumnFamily1"). setKey("RowKey"). setRange(null, n
CountQuery
进行此操作,但对我来说它似乎非常慢。同样,对于一行,只有60k列,它需要将近2秒的时间。我的代码当前如下所示:
QueryResult<Integer> qr = HFactory.createCountQuery(ksp, se, se).
setColumnFamily("ColumnFamily1").
setKey("RowKey").
setRange(null, null, 1000000000).execute();
QueryResult qr=HFactory.createCountQuery(ksp、se、se)。
setColumnFamily(“ColumnFamily1”)。
设置键(“行键”)。
setRange(null,null,100000000).execute();
PS:我必须将范围设置为这么高的数字,否则它只计算我在范围内提供的数字的最大值
有什么办法可以改进吗?在Cassandra中计算列的速度天生就很慢。Cassandra必须遍历整行以返回计数
您可能希望对计数进行反规范化。您可以使用计数器列,每次插入时都会更新该列。谢谢。我不知道它需要遍历整行。这在过去的4年里有变化吗?我的意思是,现在cassandra是否保留了一些元数据,并且可以快速返回它仍然在所有列上迭代的列数?不,这没有改变。主要原因是跟踪这些信息会减慢写入路径。