web-dev-qa-db-ja.com

Cassandra列ファミリーのすべてのデータを削除するにはどうすればよいですか?

Cassandraの特定の列ファミリーからすべての行を削除する方法を探しています。

これは、SQLのTRUNCATE TABLEと同等です。

53
Ike Walker

truncate thrift呼び出し、またはTRUNCATE <table> CQLのコマンド。

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

82
the paul

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

Astyanaxでは非常にシンプルです。単一行ステートメント

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

Hectorを使用している場合も簡単です。

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

Cqlshを使用している場合は、2つの方法のいずれかで実行できます

  1. use keyspace;その後 truncate column_family;
  2. truncate keyspace.column_family;

DataStax Java driverを使用する場合は、- 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

バージョンによって異なります。

3
Sumod

クラスターのセットアップに取り組んでいる場合、truncateはクラスターのすべてのノードが起動しているときにのみ使用できます。

Truncateを使用することにより、データを見逃します(データの重要性が不明です)

したがって、データを削除する非常に安全な方法は、COPYコマンドを使用することです。

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'

0
Swam Guru