Enum-Datentyp in Kassandra
Ich versuche zu migrieren meine Datenbank von MySQL auf Cassasndra. Das problem, das ich bin vor ist, mit einer der Spalte type definiert als Enum (enum('GP','NGP','PGP','PAGP')). Cassandra hat keine Unterstützung für Enum-Datentypen (es unterstützt Sammlungen obwohl). Gibt es einen Weg für die Implementierung von Enum-Datentyp in Cassandra, so dass der Wert einer Spalte eingeschränkt werden sollte aus einer Reihe von Werten? Ich bin mit Apache Cassandra version 2.0.7.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen, datastax cassandra Objekt-mapping-API,
http://docs.datastax.com/en/developer/java-driver/2.1/java-driver/reference/crudOperations.html
für cassandra 3.0
http://docs.datastax.com/en/developer/java-driver/3.1/manual/custom_codecs/extras/
So weit ich weiß, und nach dem Lesen der Dokumentation über die cql-Typen, können Sie nicht direkt verwenden enum in cql-statements (ich check das für die java-clients).
Also die option, die Sie haben ist, konvertieren Sie die Enum to String, um das Gebiet in einem cql-Aussage. INDEM auf diese Weise alle Ihre Nutzung der Enum-aber in die backend-Schicht, verwenden Sie die string-Darstellung für die enum.
War ich vor dem gleichen Problem mit einem integer enum... hier ist was ich getan habe:
Verwenden von C# - Treiber 2.5 DSE 4.7.
es ist mehr oder weniger native Unterstützung von Enumerationen in cassandra
http://docs.datastax.com/en/developer/java-driver/2.1/java-driver/reference/crudOperations.html
Soweit ich weiß, Sie können schreiben Sie Ihre eigenen benutzerdefinierten serialisierungsprogramme etc für cassandra, und es wird in der Lage sein, zu verstehen, Ihre spezifische enum. Aber das diese Gläser sollen Orte sein, in cassandra Ordner.
Können Sie auch speichern Sie es als String oder Ordnungszahl int-Wert