您能否分享您的想法,您将如何在 Cassandra 中实现数据版本控制。
假设我需要对一个简单地址簿中的记录进行版本化。(地址簿记录存储为 ColumnFamily 中的行)。我希望历史:
- 将不经常使用
- 将一次全部使用,以“时间机器”的方式呈现
- 一条记录不会有超过几百个版本。
- 历史不会过期。
我正在考虑以下方法:
将地址簿转换为超级列族,并将多个版本的地址簿记录存储在一行中(按时间戳)作为超级列。
创建新的超级列族以存储旧记录或对记录的更改。这种结构如下所示:
{ '通讯录行键': { 'time stamp1': { 'first name': '新名字', '修改者': 'user id', },
'time stamp2': { 'first name': 'new name', 'modified by': 'user id', }, },
'另一个地址簿行键': { '时间戳': { ....
将版本存储为附加在新 ColumnFamily 中的序列化 (JSON) 对象。将版本集表示为行,将版本表示为列。(仿照使用 CouchDB 进行简单文档版本控制)