Как удалить все данные в семействе столбцов Cassandra?

Я ищу способ удалить все строки из данного семейства столбцов в cassandra.

Это эквивалентно TRUNCATE TABLE в SQL.

6 ответов


можно использовать truncate бережливый вызов, или в CQL.

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


вы также можете сделать это через 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;

Это очень просто в Astyanax. Только одна строка оператор

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

Если вы используете Hector, это также легко:

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

Если вы используете cqlsh, то вы можете сделать это 2 способами

  1. use keyspace; затем truncate column_family;
  2. truncate keyspace.column_family;

Если вы хотите использовать драйвер Java DataStax, вы можете посмотреть - http://www.datastax.com/drivers/java/1.0/com/datastax/driver/core/querybuilder/QueryBuilder.html или http://www.datastax.com/drivers/java/2.0/com/datastax/driver/core/querybuilder/Truncate.html

в зависимости от ваша версия.


Если вы работаете над настройкой кластера, усечение может использоваться только тогда, когда все узлы кластера подняты.

используя усечение, мы пропустим данные (мы не уверены в важности данных)

таким образом, очень безопасный способ, а трюк для удаления данных-использовать команду копирования,

1) резервное копирование данных с помощью copy cassandra cmd
copy tablename to 'path'

2) дублировать файл с помощью linux CP cmd
cp 'src path' 'DST path'

3) отредактируйте дубликат файла в пути dst, удалите все строки ожидайте первую строку.
сохранить файл.

4) Используйте copy cassandra cmd для импорта
copy tablename from 'dst path'