初探MySQL迁移到ClickHouse

前 言

ClickHouse无疑是目前最火的OLAP解决方案,笔者所在的运维团队,ClickHouse的数量近两年增长迅猛。

最近老板安排了一个任务,要求我调研现在MySQL到ClickHouse的同步工具,方便后面将线上的在线OLTP数据实时同步给线下的OLAP ClickHouse,这样业务人员和运营人员基于它进行统计查询更直观快速。

目前,市面上的相关工具和产品,主要分为三类:

1 ClickHouse原生提供的MySQL同步工具

2 命令行式的MySQL to ClickHouse同步工具

3 界面引导式的MySQL to ClickHouse同步工具

01 ClickHouse原生同步工具

ClickHouse 官方提供了MaterializedMySQL的同步复制工具,它会获取MySQL的binlog,并重放DDL和DML。但是这个特性没有release,官方文档用醒目的字体显示“This is an experimental feature that should not be used in production.”不能用在生产环境中,并且看代码也有一段时间没有更新了。

测试结果如下

  • 在MySQL上创建一个表。

mysql> create database db1;mysql> create table test1 (a INT PRIMARY KEY, b INT);

  • 在ClickHouse上新建MaterializeMySQL的表。

## 这里要专门设置以便clickhouse能使用这个特性ck> set allow_experimental_database_materialize_mysql=1;   
## 这里创建连接到user@192.168.1.17:3306/db1的database连接,命名为db1_ckck> CREATE DATABASE db1_ck ENGINE = MaterializeMySQL('192.168.1.17:3306', 'db1', 'user', '***');
## 进入db1_ck这个数据库ck> use db1_ck;
## 查看db1_ck库下的表,可以看到test1这个表ck> show tables;
  • 查看test1这个表在ck上的表结构。

ck> show create table test1;
CREATE TABLE db1_ck.test1(    `a` Int32,    `b` Nullable(Int32),    `_sign` Int8 MATERIALIZED 1,    `_version` UInt64 MATERIALIZED 1,    INDEX _vers
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值