Wir haben eine Anforderung, wo wir eine relationale Datenbanktabelle T1 mit 20 Feldern haben. Wir erfassen alle in dieser Tabelle erfolgten Änderungen/Aktualisierungen in verschiedenen Feldern (Commit-Protokolle) und nehmen diese in der entsprechenden Tabelle CT1 in Cassandra auf bzw. wenden sie an, d. H. Die Cassandra-Tabelle CT1 hat exakt dieselben Schemata/Felder wie T1 (relationale DB-Tabelle).Cassandra und historische Daten Zeit weise
Für Cassandra Tabelle CT1 haben wir zusätzliche Anforderung, dass wir alle geänderten Werte aller Felder erfassen/speichern/abrufen wollen, dh, wenn Feld f1 20-mal geändert wurde, sollten alle seine geänderten Werte mit dem entsprechenden Änderungs-Zeitstempel gespeichert werden. Wenn das Feld f3 100 Mal geändert wurde, sollten alle Werte gespeichert werden. Hinweis: Verschiedene Felder ändern sich zu unterschiedlichen Zeiten und jedes Feld ändert die Anzahl der Variablen, was bedeutet, dass ein Feld 1000 Mal am Tag geändert werden kann, während sich ein anderes Feld niemals ändert.
Dies ist eine Art Zeitreihendaten für jedes Feld. Also möchte ich wissen, wie man ein solches Datenmodell in Cassandra effizient darstellt? Eine weitere Anforderung ist, dass ich den neuesten Wert aller Felder in der Tabelle effizient abrufen möchte.
Zum Beispiel:
wenn f1 geändert 10 Mal an einem Tag, für f1 mich seinen letzten Wert will zurückgegeben werden. Wenn f2 zuletzt eine Woche zurück geändert wurde, dann sollte für f2 der neueste Wert zurückgegeben werden, usw. für andere Felder.