帮助我更好地理解Digg的Cassandra数据模型

时间:2010-12-01 14:43:38

标签: join cassandra datamodel digg

http://about.digg.com/blog/looking-future-cassandra

我发现这篇文章是关于Digg搬到Cassandra的。但是我没有得到作者关于Bucket for pair(用户,项目)的想法。关于这个想法的更多细节将有助于我更好地理解解决方案。

由于

1 个答案:

答案 0 :(得分:1)

听起来他们在每个用户的超级列族中使用一行,每个项目有一个超级列;项目超级列的子列表示挖掘项目的朋友。至少在pycassa中,这使插入变得如此简单:

column_family.insert(user, {item: {friend: ''}})

他们也可以通过其他几种方式做到这一点,我不确定他们选择了哪种方式。

一种是使用标准列族,对行键使用(用户,项)组合,并为每个挖掘项目的朋友使用一列:

column_family.insert(user + item, {friend: ''})

另一种方法是使用标准列族,仅使用(用户)作为行键,并使用(item,friend)组合作为列名:

column_family.insert(user, {item + friend: ''})

这听起来不像他们使用的那样,但它也是可以接受的选择。