sintaxis - cassandra modelado de datos
¿Cómo elimino todos los datos de una familia de columnas de Cassandra? (6)
Estoy buscando una manera de eliminar todas las filas de una familia de columnas dada en cassandra.
Este es el equivalente de TRUNCATE TABLE
en SQL.
Es muy simple en Astyanax. Sólo una declaración de línea única
/* keyspace variable is Keyspace Type */
keyspace.truncateColumnFamily(ColumnFamilyName);
Puede usar la llamada de ahorro truncate
o el comando TRUNCATE <table>
en CQL.
Si está trabajando en la configuración del clúster, Truncate solo se puede usar cuando todos los nodos del clúster están en UP.
Al usar Truncate, extrañaremos los datos (no estamos seguros de la importancia de los datos)
Así que la forma más segura y un truco para eliminar datos es usar el comando COPY,
1) Copia de seguridad de datos utilizando copia cassandra cmd
copy tablename to ''path''
2) duplicar el archivo usando linux cp cmd
cp ''ruta src'' ''ruta dst''
3) edite el archivo duplicado en la ruta dst, borre todas las líneas y espere la primera línea.
guarda el archivo.
4) utilizar copia cassandra cmd para importar
copy tablename from ''dst path''
Si está utilizando cqlsh, entonces puede hacerlo de 2 maneras
-
use keyspace
y luegotruncate column_family;
-
truncate keyspace.column_family;
Si desea utilizar el controlador Java DataStax, puede consultar: 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
Dependiendo de tu versión.
Si estás usando Hector también es fácil:
cluster.truncate("our keyspace name here", "your column family name here");
También puedes hacerlo a través de 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;