2013-07-09 8 views
9

Sono novizio di cassandra. Ho bisogno di copiare i dati da una colonna Famiglia a un'altra colonna Famiglia nello stesso spazio delle chiavi in ​​cassandra. Per esempio abbiamo una colonna A1 Famiglia nello spazio chiavi K1, quindi ora ho bisogno di creare columnFamily A2 nello stesso spazio delle chiavi K1 .Qui ho bisogno di copiare i dati da columnFamily A1 a A2 .A1 e A2 hanno lo stesso schema. Leggo documenti online dove possiamo usare il loader sstable per copiare i dati da un cluster cassandra a un altro. Ma qui ho bisogno di copiare i dati da una colonna Famiglia a un'altra colonna Famiglia nello stesso spazio delle chiavi.cassandra copia i dati da una famiglia di colonne ad un'altra famiglia di colonne

Tutte le idee sopra. O è realizzabile non ne sono sicuro.

risposta

9

A seconda della versione di cassandra è possibile utilizzare il comando copy cql. Per utilizzarlo è necessario un client cql come quello distribuito con cassandra.

Prima di tutto bisogna copiare il columnfamily A1 in un file CSV utilizzando:

COPY K1.A1 (column1, column2,...) TO 'temp.csv'; 

E dopo che copiare il file alla nuova famiglia di colonna

COPY K1.A2 (column1, column2,...) FROM 'temp.csv'; 

Ovviamente è necessario modificare il nome delle colonne ai tuoi nomi.

Maggiori informazioni:

http://www.datastax.com/documentation/cassandra/1.2/index.html#cassandra/cql_reference/copy_r.html

+0

Ehi, grazie. sicuramente cercherò questa opzione – user1278493

+0

Per favore, se le soluzioni funzionano per te, controlla la risposta come corretta in modo che altre persone che hanno lo stesso dubbio possano verificare che questo sia il metodo da seguire. – ftrujillo

+0

sto provando a fare lo stesso ma mi dà errore qualcosa come costante STRING non valida, valori inseriti in precedenza ancora presenti .. Quindi è necessario troncare i dati dopo aver fatto COPY K1.A1 (colonna1, colonna2 ,. ..) A 'temp.csv'; passo.. –

0

cqlsh -k mykeyspace -e 'COPIA fromTable (columnNames) a stdout' | testa -n -1 | cqlsh -k mykeyspace -e 'COPIA toTable (columnNames) FROM STDIN'

Problemi correlati