我們有一個用例,我們需要每天用Cassandra中的當前數據重新創建一個表。爲此,我們應該使用drop table還是truncate table,這會很有效率?我們不希望數據被備份等?在Cassandra中刪除表或截斷表更好
感謝 ANKUR
我們有一個用例,我們需要每天用Cassandra中的當前數據重新創建一個表。爲此,我們應該使用drop table還是truncate table,這會很有效率?我們不希望數據被備份等?在Cassandra中刪除表或截斷表更好
感謝 ANKUR
我認爲幾乎所有情況下截斷比下降重建一個更安全的操作。在過去使用ghost數據,模式分歧等進行刪除/重新創建時存在一些問題......雖然已經有許多嘗試使drop/recreate更加穩定的修復方法,但如果您每天執行的操作截斷應該更便宜,更穩定。
刪除表將刪除表和所有數據。截斷清除表中的所有數據,並默認創建數據的快照(但不是模式)。效率方面,他們很接近 - 雖然截斷會創建快照。您可以通過在cassandra yaml config中將auto_snapshot設置爲false來禁用此功能,但它在服務器範圍內。如果沒有太多的麻煩,我會放棄並重新創建表格 - 但如果您在重新創建之前不等待一段時間,我會看到問題。
注:默認情況下,當表被丟棄或截斷創建快照。這需要手動清除以回收磁盤空間。
也要手動測試。
雖然truncate會保留架構,但drop不會。
非常感謝RussS!我有一個問題,如果我們使用truncate它會立即創建墓碑還是刪除數據? – Ankur
立即。沒有墓碑。 – ashic