55

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

これはTRUNCATE TABLESQLと同等です。

4

6 に答える 6

84

truncatethrift呼び出し、またはTRUNCATE <table>CQLのコマンドを使用できます。

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

于 2012-05-09T17:17:33.687 に答える
9

これは、CassandraCQLを介して行うこともできます。

$ 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;
于 2014-04-18T03:34:10.273 に答える
6

Astyanaxでは非常にシンプルです。たった1行のステートメント

/* keyspace variable is Keyspace Type */
keyspace.truncateColumnFamily(ColumnFamilyName); 
于 2012-05-11T06:37:26.727 に答える
3

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

cluster.truncate("our keyspace name here", "your column family name here");
于 2013-06-04T14:37:30.577 に答える
3

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

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

于 2014-06-19T10:40:41.810 に答える
0

クラスターのセットアップで作業している場合、truncateは、クラスターのすべてのノードが稼働している場合にのみ使用できます。

切り捨てを使用すると、データが失われます(データの重要性についてはわかりません)

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

1)copycassandracmdを使用してデータをバックアップする
copy tablename to 'path'

2)linux cp cmd
cp'srcpath''dstpath'を使用してファイルを複製します

3)dstパスの重複ファイルを編集し、最初の行が必要なすべての行を削除します。
ファイルを保存します。

4)copycassandracmdを使用してインポートします
copy tablename from 'dst path'

于 2015-09-21T16:54:53.267 に答える