在模式中适当使用Supercolum

时间:2012-07-25 15:31:52

标签: cassandra

我需要跟踪Cassandra中的数据版本。我认为Version#将是一个超级列,实体id将是行id,然后我需要跟踪的列将是列。因此,例如,实体的版本1将是:

  • supercolumn:v1
  • rowid:UUID
  • columns:timestamp,requestid,userid,state,data等...

查询时,最常见的请求是

  • 给我记录版本X
  • 给我版本X - 1和X + 1 记录y。

不太重要,可能是查询:

  • 给我所有处于状态1的行。
  • 给我所有由userid x更改的记录。
  • 给我所有时间戳在x和y之间的行。

上面的方法是将supercolumns作为最佳方法,还是有更好的模式来实现上述目标。使用/查询超级列是否需要注意?

1 个答案:

答案 0 :(得分:4)

首先,不要使用supercolumns。它们被有效地弃用并且具有许多缺点。在您的模型中,您可以使用具有两个组件的复合键轻松地使用复合材料替换您的超级列,第一个是您的UUID,第二个是您的版本。此模型将支持您的所有查询。 Check this out了解有关复合材料的更多信息。