首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >集群存在alter delete ddl操作

集群存在alter delete ddl操作

原创
作者头像
EMR小助手
发布2025-05-22 11:33:59
发布2025-05-22 11:33:59
910
举报

【健康度判断

  • 近七天集群存在alter delete ddl操作大于0,为非健康值
代码语言:sql
复制
SELECT count(*) 
    FROM  system.query_log
    WHERE (event_date >= (today() - 1)) AND (event_time >= (now() - toIntervalDay(1)))  AND (query_kind = 'Alter')  AND query ilike 'alter%delete%' limit 1
    settings max_memory_usage=225829120

可能风险

  • 该操作会将所有列重写,耗时长,可能阻塞节点ddl正常执行,导致大量ddl语句积压
  • alter delete属非常重的操作,会消耗大量资源。大量的alter delete语句会消耗mutation&merge线程,导致merge parts变慢,影响集群写入,
  • 节点OOM崩溃。
  • ZooKeeper会话超时,导致副本失联。

【原因分析】

ALTER DELETE 的核心问题源于 MergeTree引擎的存储机制:

  • 数据不可变性:数据以parts形式存储,删除需标记并重组。
  • 异步设计:删除操作依赖后台任务,牺牲实时性以换取写入性能。
  • 副本强一致性:ReplicatedMergeTree要求所有副本同步执行Mutation,增加了协调复杂度。

【建议】

  • 用alter drop 或 轻量级删除delete from语句进行代替
  • 使用TTL根据日期/时间定期删除(过时的)数据,
  • 使用CollapsingMergeTree 频繁更新或删除单个行。
  • 使用ReplacingMergeTree 实现基于版本控制的upsert(插入/更新)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档