当前位置: 代码迷 >> 综合 >> 设计 | ClickHouse 分布式表实现数据同步
  详细解决方案

设计 | ClickHouse 分布式表实现数据同步

热度:13   发布时间:2023-12-06 15:16:07.0

作者:吴帆 青云数据库团队成员

主要负责维护 MySQL 及 ClickHouse 产品开发,擅长故障分析,性能优化。

在多副本分布式 ClickHouse 集群中,通常需要使用 Distributed 表写入或读取数据,Distributed 表引擎自身不存储任何数据,它能够作为分布式表的一层透明代理,在集群内部自动开展数据的写入、分发、查询、路由等工作。

Distributed 表实现副本数据同步有两种方案:

  1. Distributed + MergeTree
  2. Distributed + ReplicateMergeTree

| Distributed + MergeTree

在使用这种方案时 internal_replication 需要设为 false,向 Distributed 表写入数据,Distributed 表会将数据写入集群内的每个副本。Distributed 节点需要负责所有分片和副本的数据写入工作。

file

1. 集群配置

<logical_consistency_cluster><shard><internal_replication>false</internal_replication><replica><host>shard1-repl1</host><port>9000</port></replica><replica><host>shard1-repl2</host><port>9000</port></replica></shard>
</logical_consistency_cluster>

2. 数据写入

CREATE TABLE test.t_local  on cluster logical_consistency_cluster
(EventDate DateTime,CounterID UInt32,UserI
  相关解决方案