Join 帮助我更好地理解Digg';s卡桑德拉数据模型

Join 帮助我更好地理解Digg';s卡桑德拉数据模型,join,cassandra,datamodel,digg,Join,Cassandra,Datamodel,Digg,我找到了这篇关于Digg搬到Cassandra的文章。但是我没有得到作者关于成对(用户,物品)存储桶的想法。关于这个想法的更多细节将有助于我更好地理解解决方案 谢谢听起来他们好像在超级列族中为每个用户使用一行,为每个项目使用一个超级列;项目超级列的子列表示一个在项目中添加内容的朋友。至少在pycassa中,这使得插入非常简单: column_family.insert(user, {item: {friend: ''}}) 他们也可以通过其他几种方式来实现这一点,我不确定他们选择了哪种方式 一

我找到了这篇关于Digg搬到Cassandra的文章。但是我没有得到作者关于成对(用户,物品)存储桶的想法。关于这个想法的更多细节将有助于我更好地理解解决方案


谢谢

听起来他们好像在超级列族中为每个用户使用一行,为每个项目使用一个超级列;项目超级列的子列表示一个在项目中添加内容的朋友。至少在pycassa中,这使得插入非常简单:

column_family.insert(user, {item: {friend: ''}})
他们也可以通过其他几种方式来实现这一点,我不确定他们选择了哪种方式

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

column_family.insert(user + item, {friend: ''})
另一种方法是使用标准列族,对行键使用just(user),对列名使用(item,friend)组合:

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

听起来不像他们使用的那样,但这也是一个可接受的选项。

听起来好像他们在超级列族中为每个用户使用一行,为每个项目使用一个超级列;项目超级列的子列表示一个在项目中添加内容的朋友。至少在pycassa中,这使得插入非常简单:

column_family.insert(user, {item: {friend: ''}})
他们也可以通过其他几种方式来实现这一点,我不确定他们选择了哪种方式

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

column_family.insert(user + item, {friend: ''})
另一种方法是使用标准列族,对行键使用just(user),对列名使用(item,friend)组合:

column_family.insert(user, {item + friend: ''})
这听起来不像是他们使用的,但这也是一个可以接受的选择