0

我的查询是:

给定一个用户 ID,根据该用户的评分与其他用户的评分进行比较,为该用户找到合适的歌曲推荐。

我希望这里的一切都是实时的。因此,随着事件的发生,适当地对建议进行加权并维护一个支持查询的列族,例如

SELECT recommendation_id FROM cf WHERE user_id=123 AND recommendation_type='song'

所以,我在想像一个列族,它存储用户的所有评分(每首歌都是一个列),然后是一组推荐。但是,我无法想出一种方法来实时完成这项工作。我想要一个风暴拓扑来填充评级以及可能的建议。

另一件看起来很混乱的事情是它需要在 cassandra 中进行大量更新。如果只是创造会更好,对吧?

我一直在尝试寻找这种数据模型的示例,但还没有找到。其他人发现的任何资源都会有所帮助。

更新: 解决问题的另一种方法是,我试图找到一种支持迭代协同过滤的数据结构。这可能吗?

4

2 回答 2

1

我最近从 Spotify 看到了这些幻灯片,这些幻灯片是关于使用ML + Hadoop 进行使用矩阵分解的预测分析。正如您将在幻灯片 11 中看到的那样,Cassandra 在图片中,但大多数结果都是每晚预先计算的。

于 2013-08-07T06:08:32.303 回答
0

您可能想要使用 CQL 集合,包括集合、映射和列表。查看 Datastax 社区的这篇博文:

http://www.datastax.com/dev/blog/cql3_collections

于 2013-08-06T08:29:42.177 回答