2015-10-05 9 views
6

Ich habe vor kurzem begonnen, mit schweren und massiven Daten zu arbeiten, die auch regelmäßige Transaktionen durchlaufen müssen.Wie arbeiten Sie mit dynamischen Spaltenfamilien in Phantom für Cassandra?

Bei der Auswahl von Cassandra verwendet mein Datenmodell dynamische Spalten. Ich verstehe, dass man mit CQL Tabellen ändern und Spalten einfügen oder abfragen kann, um die erforderlichen Daten zu erhalten.

Allerdings habe ich Phantom-Client mit Scala für Cassandra und lesen durch die Dokumentation Ich konnte keine Möglichkeit zum Schreiben oder Abfragen von dynamischen Spalten Familien finden.

Da wir Fallklassen verwenden, wie kann man mit dynamischen Spalten mit Cassandra in Scala arbeiten?

Antwort

6

Ich würde vorschlagen, dass Sie Tabellenschemas nicht dynamisch als Teil Ihres Datenmodells ändern. Cassandra ist eine zeilenorientierte Datenbank mit Partitionierung und Clustering von Zeilen innerhalb von Partitionen. Was auch immer Sie durch das Hinzufügen oder Entfernen von Spalten darzustellen versuchen, wird besser durch das Festlegen von Werten in einer festen Gruppe von Spalten behandelt.

Obwohl Cassandra das Ändern von Tabellendefinitionen zum Hinzufügen und Entfernen von Spalten zulässt, wird dies normalerweise nur beim Hinzufügen einer neuen Funktion zu einer Anwendung durchgeführt. Daher muss der Operator das Schema manuell ändern und anschließend den geänderten Anwendungscode verwenden das neue Schema verwenden.

Ich halte es für gefährlich für eine Client-Anwendung, das Schema zu ändern, indem Sie Tabellen erstellen oder ändern, da das Risiko besteht, dass mehrere Clients gleichzeitig Änderungen vornehmen.

+0

Darüber hinaus gibt es die schwierige Frage der Konsistenz beim dynamischen Ändern einer Tabelle. – DineMartine

+0

@Jim Ihrer Meinung nach, was wäre der beste Weg, um mit dynamischen Daten mit Cassandra umzugehen? Ich komme aus der MongoDB Welt, wo die Dinge ziemlich dynamisch sind. Sie können eine Menge Dinge in einem Dokument hinzufügen, unabhängig davon, was genau der Datentyp ist. – chbh

+1

Sie können sich die Sammlungsdatentypen von Cassandra ansehen: Listen, Karten und Mengen. Es gibt auch benutzerdefinierte Typen, und wenn alles andere fehlschlägt, können Sie Dinge als Blobs speichern. –

Verwandte Themen