Jast blog Jast blog
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档

Jast-zsh

如果你知道你要去哪里,全世界都会给你让路。
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
  • 安装Clickhouse集群
  • Clickhouse基础知识
  • Clickhouse-SQL操作
  • Clickhouse-副本
    • 副本写入流程
    • 配置步骤
    • Replicate表引擎包括
    • 验证测试
  • Clickhouse-分片集群
  • TODO-Clickhouse-Explain查看执行计划
  • Clickhouse-建表优化
  • Clickhouse-语法优化规则
  • Clickhouse-查询优化
  • Clickhouse-数据一致性
  • Clickhouse-物化视图
  • Clickhouse-使用Kafka表引擎
  • users xml配置文件详解
  • ClickHouse如何实现数据更新-ReplicatedReplacingMergeTree
  • ClickHouse-SQL使用
  • 使用ClickHouseSink写入数据
  • Mutations操作-数据的删除和修改
  • Clickhouse-每批次写入跨多个分区设置
  • 《ClickHouse教程》笔记
Jast-zsh
2023-03-10
目录

Clickhouse-副本

[toc]

# 副本写入流程

image-20221113125355177

  • 数据写入A,B会同步;数据写入B,A也会同步
  • A和B存储了两份一模一样的数据
  • 拉取数据通过Zookeeper进行通知

# 配置步骤

  • 启动Zookeeper集群
  • 在Clickhouse配置Zookeeper地址这里有两种方法

方法1(Zookeeper配置文件单独文件配置):

在Clickhouse安装目录下的config.d目录下创建一个名为 metrika.xml(这个名称可以自定义,官方建议叫这个名称)的配置文件,内容如下:

<?xml version="1.0"?>
<yandex>
    <zookeeper-servers>
        <node index="1">
            <host>hadoop102</host>
            <port>2181</port>
        </node>
        <node index="2">
            <host>hadoop103</host>
            <port>2181</port>
        </node>
        <node index="3">
            <host>hadoop104</host>
            <port>2181</port>
        </node>
    </zookeeper-servers>
</yandex>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

将配置文件同步修改的副本服务器

在/etc/clickhouse-server/config.xml配置文件中新增

<zookeeper incl="zookeeper-servers" optional="true" />
<include_from>/etc/clickhouse-server/config.d/metrika.xml</include_from>
1
2

将配置文件同步修改的副本服务器

方法2(直接在config.xml中修改):

# vim config.xml
<zookeeper>
        <node>
            <host>172.16.24.174</host>
            <port>2181</port>
        </node>
        <node>
            <host>172.16.24.175</host>
            <port>2181</port>
        </node>
        <node>
            <host>172.16.24.176</host>
            <port>2181</port>
        </node>
    </zookeeper>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  • 所有节点重启服务
 clickhouse restart
1

# Replicate表引擎包括

参考连接:https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/replication/#converting-from-mergetree-to-replicatedmergetree (opens new window)

所有MergeTree表引擎都支持Replicated,其他表引擎不支持

  • ReplicatedMergeTree
  • ReplicatedSummingMergeTree
  • ReplicatedReplacingMergeTree
  • ReplicatedAggregatingMergeTree
  • ReplicatedCollapsingMergeTree
  • ReplicatedVersionedCollapsingMergeTree
  • ReplicatedGraphiteMergeTree

# 验证测试

副本只能同步数据,不能同步表结构,所以我们需要在每台机器上自己手动建表

第一台服务器执行

create table t_order_rep2 (
id UInt32,
sku_id String,
total_amount Decimal(16,2),
create_time Datetime
) engine =ReplicatedMergeTree('/clickhouse/table/01/t_order_rep','rep_102')
partition by toYYYYMMDD(create_time)
primary key (id)
order by (id,sku_id);
1
2
3
4
5
6
7
8
9

第二台服务器执行

create table t_order_rep2 (
id UInt32,
sku_id String,
total_amount Decimal(16,2),
create_time Datetime
) engine =ReplicatedMergeTree('/clickhouse/table/01/t_order_rep','rep_103')
partition by toYYYYMMDD(create_time)
primary key (id)
order by (id,sku_id);
1
2
3
4
5
6
7
8
9

参数说明

ReplicatedMergeTree 中,

第一个参数是分片的 zk_path 一般按照:/clickhouse/table/{shard}/{table_name} 的格式写,如果只有一个分片就写 01 即可。

第二个参数是副本名称,相同的分片副本名称不能相同。

在第一台服务器上执行

insert into t_order_rep2 values
(101,'sku_001',1000.00,'2020-06-01 12:00:00'),
(102,'sku_002',2000.00,'2020-06-01 12:00:00'),
(103,'sku_004',2500.00,'2020-06-01 12:00:00'),
(104,'sku_002',2000.00,'2020-06-01 12:00:00'),
(105,'sku_003',600.00,'2020-06-02 12:00:00');
1
2
3
4
5
6

在两台服务器上分别 查询

select * from t_order_rep2;
1

第一台结果

:) select * from t_order_rep2;

SELECT *
FROM t_order_rep2

Query id: e8290fbc-74be-4906-852d-4aec63568191

┌──id─┬─sku_id──┬─total_amount─┬─────────create_time─┐
│ 105 │ sku_003 │       600.00 │ 2020-06-02 12:00:00 │
└─────┴─────────┴──────────────┴─────────────────────┘
┌──id─┬─sku_id──┬─total_amount─┬─────────create_time─┐
│ 101 │ sku_001 │      1000.00 │ 2020-06-01 12:00:00 │
│ 102 │ sku_002 │      2000.00 │ 2020-06-01 12:00:00 │
│ 103 │ sku_004 │      2500.00 │ 2020-06-01 12:00:00 │
│ 104 │ sku_002 │      2000.00 │ 2020-06-01 12:00:00 │
└─────┴─────────┴─────────��────┴─────────────────────┘

5 rows in set. Elapsed: 0.005 sec. 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

第二台结果

:) select * from t_order_rep2;

SELECT *
FROM t_order_rep2

Query id: c63640b1-9a4b-4ced-9d2d-48f857ceeb7a

┌──id─┬─sku_id──┬─total_amount─┬─────────create_time─┐
│ 105 │ sku_003 │       600.00 │ 2020-06-02 12:00:00 │
└─────┴─────────┴──────────────┴─────────────────────┘
┌──id─┬─sku_id──┬─total_amount─┬─────────create_time─┐
│ 101 │ sku_001 │      1000.00 │ 2020-06-01 12:00:00 │
│ 102 │ sku_002 │      2000.00 │ 2020-06-01 12:00:00 │
│ 103 │ sku_004 │      2500.00 │ 2020-06-01 12:00:00 │
│ 104 │ sku_002 │      2000.00 │ 2020-06-01 12:00:00 │
└─────┴─────────┴─────────��────┴─────────────────────┘

5 rows in set. Elapsed: 0.006 sec. 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
上次更新: 2023/03/10, 17:30:33
Clickhouse-SQL操作
Clickhouse-分片集群

← Clickhouse-SQL操作 Clickhouse-分片集群→

最近更新
01
Linux可视化监控
02-26
02
Maven私服搭建
02-26
03
当ElasticSearch时间字段设置多个格式到底是用的哪个?
01-19
更多文章>
Theme by Vdoing | Copyright © 2016-2025 Jast-zsh | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式