大数据运维 · 高级

ClickHouse 合并、副本与查询运维

联查 MergeTree parts、查询内存、复制队列和备份恢复,区分本地表、分片与副本,完成有界诊断和隔离验收。

ClickHouse大数据监控告警

场景目标

联查 MergeTree parts、查询内存、复制队列和备份恢复,区分本地表、分片与副本,完成有界诊断和隔离验收。 所有输出应绑定真实采样窗口和业务样本,交接未关闭问题与下次检查时间。

环境要求

具备目标库表、system 表的受限查询权限,记录集群、分片、复制路径、Keeper 配置和查询 ID。准备明确的时间范围、容量基线和隔离恢复目标;系统表通常为本节点视图,多节点核验需逐节点或经批准的集群查询。

参考架构 · 非实时拓扑

ClickHouse 合并、副本与查询运维架构

联查 MergeTree parts、查询内存、复制队列和备份恢复,区分本地表、分片与副本,完成有界诊断和隔离验收。

  • 数据 / 请求
  • 控制 / 管理
  • 观测 / 查询

点击组件,在图下方查看职责;连线编号对应流向解读。小屏可横向滚动,或直接展开文字说明。

ClickHouse 合并、副本与查询运维架构:组件关系图联查 MergeTree parts、查询内存、复制队列和备份恢复,区分本地表、分片与副本,完成有界诊断和隔离验收。 客户端 / Distributed → 分片本地表:路由与执行;分片本地表 → 同分片其他副本:数据副本同步;分片本地表 → Keeper 协调:复制协调;同分片其他副本 → Keeper 协调:副本进度协调;分片本地表 → 独立备份目的地:独立备份。箭头说明见下方流向解读。
逻辑参考图,待环境验证。以开源自建 ClickHouse 的 MergeTree / ReplicatedMergeTree 为主线,执行前 SELECT version() 并对照对应版本字段。ClickHouse Cloud 使用不同的存储与运维机制,应采用服务文档。

客户端 / Distributed

入口 / 来源

示意路由到目标分片,Distributed 自身不等同底层持久数据副本。

查看关联工具
全部组件职责 5 个组件
客户端 / Distributed
示意路由到目标分片,Distributed 自身不等同底层持久数据副本。工具介绍 客户端 / Distributed
分片本地表
保存当前分片的数据 parts,排序键与分区用于数据组织。工具介绍 分片本地表
同分片其他副本
复制同一分片的数据,不能当作额外不同分片计算总数据量。工具介绍 同分片其他副本
Keeper 协调
协调复制元数据;数据 parts 不通过 Keeper 存储。工具介绍 Keeper 协调
独立备份目的地
保存备份数据和所需元数据,完整性仍需恢复演练证明。
流向解读 5 条连接
  1. 1

    客户端 / Distributed 分片本地表

    数据 / 请求 · 路由与执行

    本地表执行当前分片查询;跨分片聚合由入口查询计划协调。

  2. 2

    分片本地表 同分片其他副本

    数据 / 请求 · 数据副本同步

    示意同一复制组间获取数据 parts,不意味着所有写入必须先经过这个节点。

  3. 3

    分片本地表 Keeper 协调

    控制 / 管理 · 复制协调

    本地副本使用协调服务维护复制元数据。

  4. 4

    同分片其他副本 Keeper 协调

    控制 / 管理 · 副本进度协调

    其他副本独立维护复制进度和协调会话。

  5. 5

    分片本地表 独立备份目的地

    数据 / 请求 · 独立备份

    按经过核实的备份范围持久保存可恢复来源。

从架构到实施

  1. 01

    确认表引擎与拓扑

    每个查询入口能映射到持久表、分片和副本,排序键语义明确。

  2. 02

    定位查询资源消耗

    一条失败或慢查询能落到扫描、Join、排序或聚合,解释节点间差异。

  3. 03

    执行隔离恢复验收

    目标数据可查询,权限符合预期,未连接生产复制组或改动生产路由。

故障域与操作边界

适用版本与部署模式

以开源自建 ClickHouse 的 MergeTree / ReplicatedMergeTree 为主线,执行前 SELECT version() 并对照对应版本字段。ClickHouse Cloud 使用不同的存储与运维机制,应采用服务文档。

数据与变更边界

不自动执行 OPTIMIZE FINAL、删除 parts、重建 Keeper 路径或生产 RESTORE。分片分摊数据,副本复制数据;Distributed 表不凭自身保存底层全部数据。

架构依据与版本核对 2 篇官方资料

图解是本站基于官方资料整理的逻辑参考;实施前仍需核对实际部署版本、组件支持范围与变更审批。

方案说明

适用架构

以开源自建 ClickHouse 的 MergeTree / ReplicatedMergeTree 为主线,执行前 SELECT version() 并对照对应版本字段。ClickHouse Cloud 使用不同的存储与运维机制,应采用服务文档。

不适用边界

不自动执行 OPTIMIZE FINAL、删除 parts、重建 Keeper 路径或生产 RESTORE。分片分摊数据,副本复制数据;Distributed 表不凭自身保存底层全部数据。

全局验收

以实际拓扑、业务样本与持续进度共同验收,记录时间窗口、变更前后证据及恢复缺口。本文是待环境验证的参考流程,预计时间只覆盖首轮诊断与小范围试点,不包括大规模重建或真实生产故障演练。

配套知识

官方参考

工具编排

1 个关联工具
  1. ClickHouse运行状态与诊断来源使用该产品原生状态、日志与计划获取诊断证据,具体方式见各步骤。

实施步骤

共 8 步
  1. 01

    确认表引擎与拓扑

    记录节点版本和表定义,区分 Distributed 入口、各分片本地表与同分片副本。核查 ORDER BY、分区表达式和业务去重要求;MergeTree 主键不是唯一约束。

    SELECT version();
    SHOW CREATE TABLE REPLACE_WITH_DB.REPLACE_WITH_TABLE;
    验证标准

    每个查询入口能映射到持久表、分片和副本,排序键语义明确。

    停止与回退

    拓扑不明时停止表或 Keeper 变更,不把同名表自动认作同一复制组。

    返回步骤起点
  2. 02

    查看副本与协调状态

    针对一个确认的表逐节点查询,只读观察只读状态、会话过期和复制队列趋势。非复制表不会在 system.replicas 出现;大集群先限制库表,避免扫描所有协调路径。

    SELECT database, table, is_readonly, is_session_expired, queue_size, absolute_delay
    FROM system.replicas
    WHERE database = 'REPLACE_WITH_DB' AND table = 'REPLACE_WITH_TABLE'
    LIMIT 10;
    验证标准

    复制延迟、队列增长与 Keeper 连接可以关联,结果注明采样节点。

    停止与回退

    出现多副本不可读时冻结节点维护,不强制恢复或删除协调元数据。

    返回步骤起点
  3. 03

    识别 parts 与合并瓶颈

    按目标分区统计 active parts、行数和字节,对照小批写入、后台 merges、磁盘空间与 I/O。区分待合并数据和未完成 mutation;高分区基数和频繁微批可共同增加开销。

    验证标准

    压力能追溯到具体表分区、写入模式或后台任务,而非仅记录全局 parts 数。

    停止与回退

    停止扩大量写入和批量 mutation,禁止手工删除 parts 或默认 OPTIMIZE FINAL。

    返回步骤起点
  4. 04

    定位查询资源消耗

    通过限定时间与查询 ID 的 query_log 对照峰值内存、读取行数和异常;对计划看主键、分区裁剪与 Join。分布式查询需考虑各节点内存和执行片段,不把单节点记录相加当作同一时刻峰值。

    验证标准

    一条失败或慢查询能落到扫描、Join、排序或聚合,解释节点间差异。

    停止与回退

    诊断查询影响服务时缩小时间范围,先保存当前证据而非提高全局内存上限。

    返回步骤起点
  5. 05

    试点数据组织或查询改写

    在新样本表验证排序键、分区策略或批量写入,再对比行数、业务结果与索引裁剪;ReplacingMergeTree 的去重发生在合并中,不能将其当作同步唯一约束。

    验证标准

    代表性查询和写入成本改善,更新与重复数据语义符合业务预期。

    停止与回退

    样本不符则保留旧表与旧入口;重建表和迁移输出不能通过改回参数自动撤销。

    返回步骤起点
  6. 06

    核验备份范围与完成状态

    清点需备份的本地表、表定义、权限、字典及外部依赖,确认备份目的地与保留策略。备份任务完成后检查清单与恢复所需配置,副本与 Keeper 不代替独立备份。

    验证标准

    能指出具体备份 ID、完成状态、对象范围和未覆盖依赖。

    停止与回退

    任务失败或范围不全时停止删除旧备份,保护最近可恢复来源。

    返回步骤起点
  7. 07

    执行隔离恢复验收

    按同版本或已确认兼容矩阵恢复到隔离数据库或集群,核对复制路径不会加入生产组。检查表定义、分区、业务键和样本聚合,记录恢复耗时和时间边界。

    验证标准

    目标数据可查询,权限符合预期,未连接生产复制组或改动生产路由。

    停止与回退

    恢复失败保留日志与备份,清理只针对已确认的隔离目标,不重置源集群。

    返回步骤起点
  8. 08

    交接保留与容量观察

    持续跟踪 parts、合并、复制队列、磁盘与慢查询,记录阈值依据和责任人。TTL 生效依赖后台处理,不能用到期时间推定空间已经释放;保留恢复演练结果和下一次检查窗口。

    验证标准

    容量和延迟趋势有解释,副本与备份分别验收,待观察项可追踪。

    停止与回退

    趋势继续恶化则停止扩量与清理,优先保证健康副本和可恢复来源。

    返回步骤起点

DOUYA OPS ECOSYSTEM

体验豆芽自研工具与场景能力

部分场景提供体验环境,用于功能验证、测试和技术交流。