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 à cassandra.
c'est l'équivalent de TRUNCATE TABLE
en SQL.
6 réponses
vous pouvez utiliser l'appel d'épargne truncate
, ou la commande TRUNCATE <table>
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 à Astyanax. Une seule phrase:
/* keyspace variable is Keyspace Type */
keyspace.truncateColumnFamily(ColumnFamilyName);
si vous utilisez Hector, il est facile aussi:
cluster.truncate("our keyspace name here", "your column family name here");
Si vous utilisez cqlsh, alors vous pouvez le faire de 2 façons
-
use keyspace
; et puistruncate column_family;
-
truncate keyspace.column_family;
si vous voulez utiliser DataStax Java driver, vous pouvez regarder - 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 l'installation du cluster, tronquer peut être utilisé seulement lorsque tous les nœuds du cluster.
en utilisant truncate, nous manquerons les données(nous ne sommes pas sûrs avec l'importance des données)
donc la manière très sûre ainsi qu'une astuce pour supprimer des données est d'utiliser la commande de copie,
1) données de sauvegarde en utilisant la copie cassandra cmd
copy tablename to 'path'
2) dupliquer le fichier utilisant linux CP cmd
cp 'src" chemin " dst " chemin
3) éditer le fichier dupliqué dans DST path, supprimer toutes les lignes attendre première ligne.
enregistrez le fichier.
4) utiliser la copie cassandra cmd pour importer
copy tablename from 'dst path'