Как удалить все данные в семействе столбцов Cassandra? - программирование
Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 2

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

Ответ 3

Это очень просто в Astyanax. Просто оператор одной строки

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

Ответ 4

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

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

Ответ 5

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

  • use keyspace; и затем truncate column_family;
  • 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

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

Ответ 6

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

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

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

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

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

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

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