在Cassandra中删除表或截断表,这是更好的

Ank*_*kur 10 cassandra

我们有一个用例,我们需要每天使用Cassandra中的当前数据重新创建一个表.为此我们应该使用drop table或truncate table,这会有效吗?我们不希望备份数据等?

谢谢Ankur

Rus*_*ssS 8

我认为几乎所有情况下,Truncate都比重新创建更安全.过去使用ghost数据,架构分歧等等来删除/重新创建了一些问题...虽然已经有很多修复方法可以让drop/recreate更稳定,但是如果它是你每天都在进行的操作截断应该更便宜,更稳定.

  • 这是立竿见影的.没有墓碑. (10认同)
  • 非常感谢RussS!我有一个问题是,如果我们使用truncate,它会创建逻辑删除还是立即删除数据? (2认同)

ash*_*hic 7

删除表删除表和所有数据.Truncate清除表中的所有数据,默认情况下会创建数据的快照(但不会创建模式).效率方面,它们很接近 - 尽管truncate会创建快照.您可以通过在cassandra yaml config中将auto_snapshot设置为false来禁用此功能,但它是服务器范围的.如果不是太麻烦,我会放弃并重新创建表格 - 但是如果你在重新创建之后没有等待一段时间我就会看到问题.