【问题标题】:Cassandra Best Practice for Deleting Large Amounts of RowsCassandra 删除大量行的最佳实践
【发布时间】:2019-09-18 05:36:38
【问题描述】:

我很好奇人们如何处理大量行的删除。由于删除了一百万多行、墓碑、自动压缩/30 秒长的 GC,我们遇到了中断。我想在将来避免这种情况......

【问题讨论】:

  • 是的,整个“删除”的事情在 Cassandra 中并不是那么好 - 由于你所提到的。如果您有时间序列数据(基本上插入一次,不理会,最后删除行),那么带有 TTL 的 TWCS 是迄今为止处理这些数据的最佳方式。我不确定你是否有这种类型的数据,但如果有,我强烈推荐它。您是否必须经常一次执行这些大型删除集?
  • 我们通常很少进行删除,但是我们的一位开发人员有一个失控的过程 - 他创建了数百万行。我们仍在努力收拾烂摊子。
  • 一定要删除吗?

标签: cassandra


【解决方案1】:

您需要删除不同的方式,具体取决于您的架构(按优先级顺序,从好到坏):

  • 截断表
  • 按分区键删除 - delete from ks.table where pk = id
  • 按范围删除 - delete from ks.table where pk = id and c1 > val1 and c1 < val2
  • 删除行 - 从 ks.table 中删除,其中 pk = id 和 c1 = val1 和 c2 = val2 ...`
  • 删除单个单元格 - 删除 col1, col2 where pk = id ....`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-25
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    相关资源
    最近更新 更多