如何删除Cassandra键空间中的所有行 解决方案A 解决方案B

问题描述

我需要删除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'}}