问题描述
我需要删除Cassandra中的所有行,但是使用Amazon Keyspace无法执行TruncATE tbl_name
,因为还不支持TruncATE api。
现在我想到的一些想法有些棘手:
解决方案A
解决方案B
-
DROP TABLE
-
CREATE TABLE
和旧表的结构
您有任何想法使该过程保持最简单吗?
提前Tnx
解决方法
在没有TRUNCATE的情况下,溶液B应该很好。在旧版本(2.1之前的版本)中,Cassandra用相同的名称重新创建表是一个问题。请参阅文章Datastax FAQ Blog。但是此后,问题已通过CASSANDRA-5202解决。
如果不再需要表中的数据,则最好删除表并重新创建它。此外,如果表中包含大量数据,将是非常繁琐的任务。
,如果不需要数据。选项B-删除表并重新创建。您可以使用自定义表格属性来传递创建表格说明中的功能。
CREATE TABLE my_keyspace.my_table (
id text,division text,project text,role text,manager_id text,PRIMARY KEY (id,division))
WITH CUSTOM_PROPERTIES=
{'capacity_mode':
{'throughput_mode' : 'PROVISIONED','read_capacity_units' : 10,'write_capacity_units' : 20},'point_in_time_recovery': {'status': 'enabled'}}
AND TAGS={'pii' :'true','prod':'true'
};
选项C。如果需要数据,您还可以利用按需容量模式,即按需付费模式。无需请求,您只需支付存储费用。您可以每天更改一次模式。
ALTER TABLE my_keyspace.my_table
WITH CUSTOM_PROPERTIES=
{'capacity_mode': {'throughput_mode': 'PAY_PER_REQUEST'}}