[英]How to delete all rows in Cassandra Keyspace
我需要刪除 Cassandra 中的所有行,但使用 Amazon Keyspace 無法執行TRUNCATE tbl_name
因為尚不支持 TRUNCATE api。
現在我想到的幾個想法有點棘手:
DROP TABLE
CREATE TABLE
表你有什么想法讓這個過程保持最簡單嗎?
提前交易
如果不需要數據。 選項 B - 刪除表並重新創建。 您可以使用自定義表屬性在 create table 語句中傳遞容量。
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'}}
在沒有 TRUNCATE 的情況下,解決方案 B 應該沒問題。 在 Cassandra 的舊版本(2.1 之前的版本)中,重新創建同名表是一個問題。 請參閱文章Datastax 常見問題博客。 但此后問題已通過CASSANDRA-5202解決。
如果不再需要表中的數據,最好刪除該表並重新創建它。 此外,如果表包含大量數據,這將是非常繁瑣的任務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.