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


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

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

6   51   2012-05-09 20:20:45

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); 

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

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

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

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

Если вы хотите использовать драйвер DataStax Java, вы можете посмотреть - 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'