Können Sie Ihre Gedanken teilen, wie Sie die Datenversionierung in Cassandra implementieren würden?Möglichkeiten zum Implementieren der Datenversionsverwaltung in Cassandra
Angenommen, dass ich Datensätze in einem einfachen Adressbuch versionieren muss. (Adressbucheinträge werden als Zeilen in einer ColumnFamily gespeichert). erwarte ich, dass die Geschichte:
- selten verwendet wird
- wird auf einmal in einer „Zeitmaschine“ Art und Weise zu präsentieren verwendet werden
- wird es nicht mehr Versionen als einige hundert bis ein einzelner Datensatz
- Geschichte wird nicht ablaufen.
Ich betrachte den folgenden Ansatz:
das Adressbuch zu Super-Spalte Familie Konvertieren und mehrere Version von Adressbuch Aufzeichnungen in einer Zeile eingegeben speichern (durch Zeitstempel) als Super-Spalten.
Erstellen Sie eine neue Super Column Family, um alte Datensätze oder Änderungen an den Datensätzen zu speichern. Eine solche Struktur würde wie folgt aussehen:
{ 'Adressbuch Zeilenschlüssel': { 'Zeit STAMP1': { 'Vornamen': 'neuen Namen', 'geändert durch': 'user id' ,}
'time stamp2': { 'first name': 'new name', 'modified by': 'user id', }, },
'eine andere Adreßbuch Zeilenschlüssel': { 'Zeitstempel': { ....
Shop Versionen als serialisiert (JSON) Objekt in neuen Col angebracht umnFamilly. Darstellen von Versionen als Zeilen und Versionen als Spalten. (Nach dem Vorbild Simple Document Versioning with CouchDB)
danke für den Hinweis, dass Sie immer die ganze Supercolumn lesen müssen. Ich habe diese Tatsache nicht bemerkt, als ich die Cassandra-Dokumente gelesen habe. –