定期检索所有行以查找最高的100个计数器

时间:2013-12-23 15:56:08

标签: php database nosql cassandra

我正在研究一个存储单词出现次数的cassandra数据库。我想找出最多出现100个单词。在关系数据库中,它是这样的:

select * FROM wordcounter ORDER BY counts DESC LIMIT 100;

但是在cassandra中按counter-column排序是不可能的。

所以,我必须定期(可能每天一次)获取所有行,并将具有最高计数器的100个单词写入数据库。以下不是一个选项;

select * FROM wordcounter

因为这会返回过多的数据。我必须以增量的方式进行,但是如何(以及每个查询可以接受多少行)?

更新

据说可以迭代所有cassandra行,但我使用PHP pdo与cassandra&就我所见,它肯定没有迭代功能。但我发现我可以通过token进行查询,因此这是可能的;

select * FROM wordcounter LIMIT 100;

然后继续循环,直到返回0结果

select * FROM wordcounter WHERE token(word) > token('lastword') LIMIT 100;

所以这基本上是OFFSET的等价物,这将允许我处理数据集的一部分,而不必一次查询所有数据集。但我想这确实意味着我无法在多个系统上分发查询。有没有人知道任何替代方案?

0 个答案:

没有答案