2012-05-09 8 views

risposta

78

È possibile utilizzare la chiamata di risparmio o il comando in CQL.

http://www.datastax.com/docs/1.0/references/cql/TRUNCATE

+1

Grazie per questo. Alla fine ho usato 'drop column family' e ho ricreato la famiglia di colonne, ma è bene sapere quale sintassi esiste. –

+1

Giusto per aggiungere a questo, il dropping della famiglia di colonne non elimina effettivamente i dati sul disco. Devi rmare manualmente le tabelle. Come tale, ho trovato utile creare sempre nuove famiglie di colonne con nomi univoci indicando la data in cui sono state create, ovvero users_2013_09_29, ecc. –

+2

L'unico lato negativo di 'truncate' è che tutti i nodi del cluster devono essere attivi.Se non è così, puoi usare 'drop columnfamily', e poi crearlo di nuovo. – Tom

6

è molto semplice in Astianatte. Basta una dichiarazione Linea

/* keyspace variable is Keyspace Type */ 
keyspace.truncateColumnFamily(ColumnFamilyName); 
3

Se si utilizza Hector è facile così:

cluster.truncate("our keyspace name here", "your column family name here"); 
9

Si può anche fare questo via Cassandra CQL.

$ cqlsh 
Connected to Test Cluster at localhost:9160. 
[cqlsh 4.1.1 | Cassandra 2.0.6 | CQL spec 3.1.1 | Thrift protocol 19.39.0] 
Use HELP for help. 
cqlsh> TRUNCATE my_keyspace.my_column_family; 
0

se si sta lavorando sull'impostazione del cluster, il troncamento può essere utilizzato solo quando tutti i nodi del cluster sono SU.

Utilizzando tronchiamo, ci mancherà i dati (non siamo sicuri, con l'importanza dei dati)

Quindi il modo molto sicuro e un trucco per eliminare i dati è quello di utilizzare il comando COPY,

1) i dati di backup utilizzando la copia cassandra cmd
copy tablename to 'path'

2) duplicare il file usando linux cmd cp
cp 'percorso src' 'percorso DST'

3) modifica il file duplicato in percorso dst, cancella tutte le linee si aspetta la prima riga.
salvare il file.

4) utilizzare copia cmd Cassandra importare
copy tablename from 'dst path'

Problemi correlati