web-dev-qa-db-fra.com

Comment supprimer toutes les données d'une famille de colonnes Cassandra?

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.

53
Ike Walker

Vous pouvez utiliser l'appel d'épargne truncate ou TRUNCATE <table> commande dans CQL.

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

82
the paul

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;
9
cevaris

C'est très simple dans Astyanax. Juste une déclaration sur une seule ligne

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

Si vous utilisez Hector, c'est aussi simple:

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

Si vous utilisez cqlsh, vous pouvez le faire de 2 manières

  1. use keyspace; et alors truncate column_family;
  2. 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.

3
Sumod

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 cmd
copy 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 importer
copy tablename from 'dst path'

0
Swam Guru