更新时间:2025-06-11 GMT+08:00

配置ClickHouse副本间数据强一致

操作场景

ClickHouse支持多副本能力,进行本地表写入的时候,当前节点的数据会立即更新成功,但其他副本之间的数据同步是异步的。

本章节主要介绍如何配置ClickHouse保证副本间数据强一致。

约束与限制

本章节仅适用于MRS 3.3.0-LTS及之后版本。

参数配置

配置ClickHouse副本间数据强一致优先级别:单条语句设置 > 会话级别设置 > 全局默认设置。

副本间强一致必须要结合原子性一起使用,否则在插入过程中出现异常,无法回退成功。

  1. 登录FusionInsight Manager系统。

    详细操作请参考访问集群Manager

  2. 选择“集群 > 服务 > ClickHouse > 配置 > 全部配置 > 可靠性”,修改以下参数:

    参数

    参数说明

    取值示例

    profiles.default.insert_quorum

    指在进行插入操作时,要求多个副本确认数据已经成功写入,才能认为插入操作成功。这样可以提高数据的一致性和可靠性,尤其是对于高可用性和容错性要求较高的场景。取值范围:0-9或者auto或者all。

    • 默认值为0,指的不开启副本间强一致, 表示不启用仲裁,插入操作只写入一个副本。
    • 当设置为数字时候指的是ClickHouse在insert_quorum_timeout期间将数据正确写入副本的insert_quorum时,INSERT才能成功。例如:设置为3表示需要3个副本确认,INSERT才成功。
    • auto指的是正确写入副本超过副本数的一半,INSERT才成功。
    • all指的是正确写入副本等于副本数,INSERT才成功。

    3

    profiles.default.insert_quorum_timeout

    用于控制插入操作在等待多个副本确认时的超时时间。这个设置可以确保在特定时间内,如果没有达到指定的quorum级别,INSERT操作将被中止并返回失败,从而避免无限等待。单位:毫秒,取值范围:大于0。

    600000

  1. 修改参数配置后,单击“保存”,根据界面提示操作后,等待配置保存成功。