Ho creato un vecchio spazio per le chiavi nel cluster Cassandra ma ho trovato che la definizione del suo "comparatore" è errata, quindi devo ricreare un nuovo spazio per le chiavi e fare la migrazione dei dati. C'è qualche strumento per fare la migrazione dei dati? o devo programmare con il client Thrift leggere tutti i dati dal vecchio keyspace e scriverli su un nuovo keypace? Qualsiasi suggerimento o frammento di codice è benvenuto!Come eseguire la migrazione dei dati di Cassandra da uno spazio per chiavi a un altro spazio tasti?
Come eseguire la migrazione dei dati di Cassandra da uno spazio per chiavi a un altro spazio tasti?
risposta
Questa è una domanda comune, e penso che sia stata chiesta prima qui. È possibile utilizzare il comando COPY
in C *. Qui troverai maggiori dettagli http://www.datastax.com/dev/blog/ways-to-move-data-tofrom-datastax-enterprise-and-cassandra
Possiamo farlo usando il comando COPY
in cql. Usando il comando COPY
possiamo salvare i dati della tabella nel file .csv e tornare a un tavolo dal file .csv. Ma, l'approccio migliore sarà scrivere un programma per leggere dalla tabella e scriverlo su un'altra tabella perché l'importazione da CSV potrebbe fallire se la tabella contiene tipi di colonne di raccolta come list<text>
, map<text, text>
, set<text>
.
Ad esempio: - Per copiare i dati della tabella da tavolo a .csv: -
COPY keyspace1.table1 (column1, column2) TO 'path/to/file/keyspace1_table1.csv';
per copiare i dati da file CSV a una tabella: -
COPY keyspace2.table1 (column1, column2) FROM 'path/to/file/keyspace1_table1.csv';
consultare Cassandra migration tool