ClickHouse副本机制简介

本文介绍了ClickHouse的副本同步机制,通过Zookeeper实现数据异步复制。在副本节点之间,数据插入后会生成part并更新Zookeeper信息,然后通过log进行副本间的同步。副本节点定时读取log并消费队列,从其他副本拉取part数据,完成数据同步。log的清除逻辑也有详细说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Clickhouse 副本节点之间通过Zookeeper 的log数据和其他控制信息,实现了副本间数据的异步同步。本文中简单介绍插入数据后副本之间同步流程。

副本表Zookeeper目录结构

创建副本表,并插入数据,在Zookeeper上可以看到表目录下主要包含下列目录信息, ReplicatedMergeTree(’/clickhouse/tables/{shard}/tbl_replicated’, ‘{replica}’)

tbl_replicated:
| —— block_numbers
    |all
| —— blocks
| —— columns 列信息
| —— leader_election
    | —— leader_election-0000000000 主信息,副本节点(multiple leaders ok)
| —— log
    | —— log-0000000000 part名称以及相关的块信息,创建时间,source replica, part_type
| —— metadata 元数据信息 (未变化)
| —— mutations 空 (未变化)合并场景,alter table的场景
| —— nonincrement_block_numbers 空 (未变化)
| —— quorum    ----> 默认情况下,INSERT 语句仅等待一个副本写入成功后返回。
             如果数据只成功写入一个副本后该副本所在的服务器不再存在,
             则存储的数据会丢失。
             要启用数据写入多个副本才确认返回,使用 insert_quorum 选项。
    | —— failed_parts
    | —— last_part
    | —— parallel
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值