繁体   English   中英

Cassandra,设计用户喜欢项目表

[英]Cassandra, Design user liked item table

我有一个项目列表,我想知道当前用户是否喜欢其中一些。 我想知道如何设计表,因为它是我在C *中执行的第一个表。 所以我想知道我是否朝着正确的方向前进:

我正在考虑将userID作为主键,将喜欢的项作为群集列。

我看到的问题是,如果用户非常喜欢该分区,则该分区将无法容纳在节点上(因此我会丢失数据?)。 我不知道用户需要多少物品才能做到这一点,但我的猜测是它甚至对人类都不可行。 事实是,可能性仍然存在,这困扰着我。 此外,如果已经有一个节点上大量的数据是什么,它意味着一个用户喜欢较低,为了使分区过大的节点(因为有更少的可用内存)的项目的金额是多少?

当您说所有数据都在单个节点中并且如果该节点上的空间不足时,写入将失败,您的说法是正确的。 如果您对此担心,还可以在主键中添加诸如“时间戳”或“存储桶”列之类的内容,以减小分区的大小。

Cassandra严格限制每个分区20亿个单元,但实际上,我认为建议是将分区保持在Cassandra 2.0和更低版本中小于100 MB,而在Cassandra 2.1和更高版本中小于200-300 MB。 如果我是您,我会做一些计算,以了解一个人需要多少物品才能接近这些限制,并确定这是否是您愿意接受的限制。 您可以在此处获得很好的说明。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM