簡體   English   中英

如何刪除Cassandra列族中的所有數據?

[英]How do I delete all data in a Cassandra column family?

我正在尋找一種方法來刪除cassandra中給定列族的所有行。

這相當於SQL中的TRUNCATE TABLE

您可以在CQL中使用truncate thrift調用或TRUNCATE <table>命令。

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

如果您使用Hector,也很容易:

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

如果您使用的是cqlsh,那么您可以通過兩種方式執行此操作

  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.htmlhttp:// www。 datastax.com/drivers/java/2.0/com/datastax/driver/core/querybuilder/Truncate.html

取決於您的版本。

如果您正在進行群集設置,則只能在群集的所有節點都已啟動時使用truncate。

通過使用truncate,我們將錯過數據(我們不確定數據的重要性)

因此,刪除數據的非常安全的方法和技巧是使用COPY命令,

1)使用copy cassandra cmd備份數據
copy tablename to 'path'

2)使用linux cp cmd復制文件
cp的src路徑''dst path'

3)在dst路徑中編輯重復文件,刪除所有第一行的行。
保存文件。

4)使用copy cassandra cmd導入
copy tablename from 'dst path'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM