我需要删除cassandra中的所有行,但是使用amazon键空间无法执行 TRUNCATE tbl_name 因为还不支持截断api。现在我脑子里出现的几个想法有点棘手:
TRUNCATE tbl_name
选择所有行循环所有行并将其删除(逐个或批处理)
DROP TABLE CREATE TABLE 以旧table的结构你有什么办法让这个过程保持最简单吗?提前tnx
CREATE TABLE
7y4bm7vi1#
如果不需要数据。选项b—删除表并重新创建。您可以使用自定义表属性传入create table statment的容量。
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'}}
vh0rcniy2#
解决方案b在没有截断的情况下应该是好的。在旧版本(2.1之前的版本)的cassandra中,用相同的名称重新创建表是一个问题。参考文章datasax faq博客。但从那时起,这个问题就通过Cassandra-5202解决了。如果不再需要表中的数据,最好删除表并重新创建它。另外,如果表中包含大量的数据,这将是一项非常繁琐的任务。
2条答案
按热度按时间7y4bm7vi1#
如果不需要数据。选项b—删除表并重新创建。您可以使用自定义表属性传入create table statment的容量。
方案c。如果您需要数据,还可以利用按需容量模式,即按请求付费模式。如果没有要求,你只需支付存储费用。您可以每天更改一次模式。
vh0rcniy2#
解决方案b在没有截断的情况下应该是好的。在旧版本(2.1之前的版本)的cassandra中,用相同的名称重新创建表是一个问题。参考文章datasax faq博客。但从那时起,这个问题就通过Cassandra-5202解决了。
如果不再需要表中的数据,最好删除表并重新创建它。另外,如果表中包含大量的数据,这将是一项非常繁琐的任务。