Можете ли вы поделиться своими мыслями о том, как реализовать внедрение версий данных в Cassandra.
Предположим, что мне нужно записать записи в простую адресную книгу. (Записи адресной книги сохраняются как строки в столбце "Семья" ). Я ожидаю, что история:
- будет использоваться нечасто
- будет использоваться все сразу, чтобы представить его в режиме "машины времени".
- не будет больше версий, чем несколько сотен в одной записи.
- история не истечет.
Я рассматриваю следующий подход:
-
Преобразуйте адресную книгу в семейство Super Column и сохраните несколько версий записей адресной книги в одной строке с ключом (по метке времени) в виде супер столбцов.
-
Создайте новое семейство Super Column для хранения старых записей или изменений в записях. Такая структура будет выглядеть следующим образом:
{ "строка строки адресной книги": { 'time stamp1': { "имя": "новое имя", 'modified by': 'user id', },
'time stamp2': { 'first name': 'new name', 'modified by': 'user id', }, },
'еще одна строка строки адресной книги': { "метка времени": { ....
-
Сохраняйте версии как сериализованные (JSON) объекты, прикрепленные в новом ColumnFamilly. Представление наборов версий в виде строк и версий в виде столбцов. (моделируется после Простая документация с CouchDB)