Je cherche un moyen de supprimer toutes les lignes d'une famille de colonnes donnée dans cassandra.
C'est l'équivalent de TRUNCATE TABLE
en SQL.
Vous pouvez utiliser l'appel d'épargne truncate
ou TRUNCATE <table>
commande dans CQL.
Vous pouvez également le faire 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;
C'est très simple dans Astyanax. Juste une déclaration sur une seule ligne
/* keyspace variable is Keyspace Type */
keyspace.truncateColumnFamily(ColumnFamilyName);
Si vous utilisez Hector, c'est aussi simple:
cluster.truncate("our keyspace name here", "your column family name here");
Si vous utilisez cqlsh, vous pouvez le faire de 2 manières
use keyspace
; et alors truncate column_family;
truncate keyspace.column_family;
Si vous souhaitez utiliser DataStax Java, vous pouvez consulter - http://www.datastax.com/drivers/Java/1.0/com/datastax/driver/core /querybuilder/QueryBuilder.html ou http://www.datastax.com/drivers/Java/2.0/com/datastax/driver/core/querybuilder/Truncate.html
selon votre version.
si vous travaillez sur la configuration du cluster, tronquer ne peut être utilisé que lorsque tous les nœuds du cluster sont UP.
En utilisant tronquer, nous manquerons les données (nous ne sommes pas sûrs de l'importance des données)
Donc, la manière très sûre de supprimer des données est d'utiliser la commande COPY,
1) sauvegarde des données en utilisant la copie cassandra cmdcopy tablename to 'path'
2) Dupliquez le fichier en utilisant linux cp cmd
cp 'chemin src' 'chemin dst'
3) éditez le fichier en double dans le chemin dst, supprimez toutes les lignes attendez la première ligne.
enregistrez le fichier.
4) utilisez copy cassandra cmd pour importercopy tablename from 'dst path'