3

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

  • 超列:v1
  • 行ID:UUID
  • 列:时间戳、请求 ID、用户 ID、状态、数据等...

查询时,最常见的请求将是

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

不太重要的查询是:

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

上述带有超列的方法是最好的方法,还是有更好的模式来完成上述操作。使用/查询我需要注意的超列是否有注意事项?

4

1 回答 1

4

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

于 2012-07-26T01:40:23.673 回答