Ich habe einen alten Schlüsselbereich im Cassandra-Cluster erstellt, aber die Definition seines "Vergleichers" ist falsch, also muss ich einen neuen Schlüsselbereich erstellen und Datenmigration durchführen. Gibt es ein Tool für die Datenmigration? Oder muss ich mit dem Thrift-Client programmieren, alle Daten aus altem Schlüsselraum lesen und sie in neuen Schlüsselraum schreiben? Irgendwelche Vorschläge oder Code-Schnipsel sind willkommen!Wie wird die Datenmigration von Cassandra von einem Schlüsselbereich zu einem anderen Schlüsselbereich durchgeführt?
Antwort
Dies ist eine Gemeinschaftsfrage, und ich denke, dass es zuvor hier gefragt wurde. Sie können den Befehl COPY
in C * verwenden. Hier finden Sie weitere Details http://www.datastax.com/dev/blog/ways-to-move-data-tofrom-datastax-enterprise-and-cassandra
Wir können es mit COPY
Befehl in CQL tun. Mit dem Befehl COPY
können wir Tabellendaten in .csv Datei speichern und zurück zu einer Tabelle von .csv Datei. Der bessere Ansatz besteht jedoch darin, ein Programm zum Lesen aus der Tabelle zu schreiben und es in eine andere Tabelle zu schreiben, da das Importieren aus CSV fehlschlagen kann, wenn die Tabelle Auflistungsspalte wie list<text>
, map<text, text>
, set<text>
enthält.
zB: - Um Tabellendaten aus der Tabelle kopieren Sie die Datei in CSV: -
COPY keyspace1.table1 (column1, column2) TO 'path/to/file/keyspace1_table1.csv';
csv Daten aus der Datei in eine Tabelle zu kopieren: -
COPY keyspace2.table1 (column1, column2) FROM 'path/to/file/keyspace1_table1.csv';
Siehe Cassandra migration tool