cassandraの特定の列ファミリーからすべての行を削除する方法を探しています。
これはTRUNCATE TABLE
SQLと同等です。
truncate
thrift呼び出し、またはTRUNCATE <table>
CQLのコマンドを使用できます。
これは、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;
Astyanaxでは非常にシンプルです。たった1行のステートメント
/* keyspace variable is Keyspace Type */
keyspace.truncateColumnFamily(ColumnFamilyName);
Hectorを使用している場合は、それも簡単です。
cluster.truncate("our keyspace name here", "your column family name here");
cqlshを使用している場合は、2つの方法で実行できます。
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
バージョンによって異なります。
クラスターのセットアップで作業している場合、truncateは、クラスターのすべてのノードが稼働している場合にのみ使用できます。
切り捨てを使用すると、データが失われます(データの重要性についてはわかりません)
したがって、データを削除するための非常に安全な方法とトリックは、COPYコマンドを使用することです。
1)copycassandracmdを使用してデータをバックアップする
copy tablename to 'path'
2)linux cp cmd
cp'srcpath''dstpath'を使用してファイルを複製します
3)dstパスの重複ファイルを編集し、最初の行が必要なすべての行を削除します。
ファイルを保存します。
4)copycassandracmdを使用してインポートします
copy tablename from 'dst path'