Sto cercando un modo per eliminare tutte le righe da una determinata famiglia di colonne in cassandra.Come si eliminano tutti i dati in una famiglia di colonne Cassandra?
Questo è l'equivalente di TRUNCATE TABLE
in SQL.
Sto cercando un modo per eliminare tutte le righe da una determinata famiglia di colonne in cassandra.Come si eliminano tutti i dati in una famiglia di colonne Cassandra?
Questo è l'equivalente di TRUNCATE TABLE
in SQL.
È possibile utilizzare la chiamata di risparmio o il comando in CQL.
è molto semplice in Astianatte. Basta una dichiarazione Linea
/* keyspace variable is Keyspace Type */
keyspace.truncateColumnFamily(ColumnFamilyName);
Se si utilizza Hector è facile così:
cluster.truncate("our keyspace name here", "your column family name here");
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;
Se si utilizza cqlsh, allora si può farlo in 2 modi
use keyspace
; e poi truncate column_family;
truncate keyspace.column_family;
Se si desidera utilizzare il driver DataStax Java, si può guardare - http://www.datastax.com/drivers/java/1.0/com/datastax/driver/core/querybuilder/QueryBuilder.html o http://www.datastax.com/drivers/java/2.0/com/datastax/driver/core/querybuilder/Truncate.html
a seconda della versione.
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'
Grazie per questo. Alla fine ho usato 'drop column family' e ho ricreato la famiglia di colonne, ma è bene sapere quale sintassi esiste. –
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. –
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