ClickHouse 大数据量场景下执行 ALTER TABLE UPDATE问题(ClickHouse 里,数据最好“只进不出,只增不改”) | ReplicatedReplacingMergeTr
2026/4/16 16:20:02 网站建设 项目流程

文章目录

  • ClickHouse 大数据量场景下执行 ALTER TABLE UPDATE问题
    • 问题描述
      • 官方文档
    • ClickHouse 修改数据的最佳实践(大数据量/生产)
      • 只进不出,只增不改
        • ReplacingMergeTree:同一主键多版本,取最新
        • CollapsingMergeTree:用正负记录“抵消”
    • ReplicatedReplacingMergeTree 和ReplicatedMergeTree 区别
      • ReplicatedMergeTree 业务重复:同一事件被上游多次投递

ClickHouse 大数据量场景下执行 ALTER TABLE UPDATE问题

问题描述

在 ClickHouse 大数据量场景下执行 ALTER TABLE UPDATE 需要谨慎:

风险点

  1. 资源消耗大
    ALTER TABLE UPDATE 会触发 mutation,本质是重写所有相关的数据 part
    大表可能导致:磁盘 I/O 飙升、CPU 占用高、内存压力大。
    Mutation 会对命中的数据 以 part 为单位重写(更准确说:对包含被影响行的 parts 生成新的变体并替换),因此会带来显著的 磁盘读写、CPU(解压/重压缩)、后台 merge 压力。命中范围越大、压缩算法越重、列越多,成本越高。
  2. 执行时间长
    mutation 是异步后台执行,大表可能需要几小时甚至更久
    期间会持续消耗集群资源。
  3. 可能影响查询性能
    mutation 执行期间,读写性能可能下降
    如果是生产环境,可能影响业务
  4. 无法回滚
    ClickHouse 的 mutation 不支持回滚。你可以 KILL MUTATION 来停止尚未完成的 mutation,但:已经生成并替换的 parts 不会“自动回到旧版本”
    一旦执行,只能等待完成或手动 kill

官方文档

官方文档:

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询