从Cassandra检索有序计数器的最佳方法

时间:2018-11-06 22:54:05

标签: python database database-design cassandra

我正在使用Cassandra保存单词及其频率。

表架构类似于

CREATE TABLE keywords_rate (
    some_id int,
    keyword Text,
    frequency counter,
    PRIMARY KEY (some_id, keyword)
);

问题是,我有数百万条记录,我需要获取每个some_id的前100个关键字

但是要做到这一点,我需要获取给定some_id的所有关键字,并在后端(python)上对其进行排序,然后获取前100条记录。对我来说这是一个非常昂贵的手术。

所以我的问题是:我可以在Cassandra内部对计数器进行排序吗?如果没有,那么解决此问题的最佳方法是什么?

谢谢。

1 个答案:

答案 0 :(得分:3)

如果仅将Cassandra用于此用例,并且如果您尚未对其进行大量投资,那么我的最佳建议是...选择其他数据库。 :)卡桑德拉(Cassandra)不是为此设计的。

如果您需要使用Cassandra,请查看this answer,它基于eBay如何组织其数据。

但是,如果可以的话,请再次使用其他技术。在卡桑德拉(Cassandra),这将非常混乱。