【问题标题】:Cassandra, Design user liked item tableCassandra,设计用户喜欢的项目表
【发布时间】:2016-03-11 04:30:50
【问题描述】:

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

我正在考虑将 userID 作为主键,将 item like 作为聚类列。

我看到的问题是,如果用户喜欢这么多东西,那么分区将不适合节点(所以我会丢失数据?)。我不知道用户必须喜欢多少项目才能发生这种情况,但我的猜测是它甚至不适合人类。问题是这种可能性仍然存在,这让我很困扰。另外,如果节点上已经有很多数据怎么办,这是否意味着用户必须喜欢的项目数量较少,以便分区对于节点来说太大(因为有可用内存较少)?

【问题讨论】:

    标签: database-design cassandra database nosql


    【解决方案1】:

    当您说所有数据都将在单个节点中并且如果该节点上没有足够的空间写入将失败时,您的说法是正确的。如果您担心这一点,您还可以在主键中添加“时间戳”或“桶”列,以减少分区的大小。

    Cassandra 每个分区有 20 亿个单元的硬性限制,但实际上我认为建议是在 Cassandra 2.0 及更早版本中保持分区 here。

    【讨论】:

      猜你喜欢
      • 2019-12-05
      • 2014-05-05
      • 1970-01-01
      • 2012-08-02
      • 2012-08-27
      • 2021-11-27
      • 2020-05-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多