Clickhouse 20.8.2.3版本新增加了一个叫MaterializeMySQL的 数据库引擎,该引擎用于快速同步mysql 数据库(必须是5.7以上版本),话不多说,赶快上车吧
-
安装并运行clickhouse(ps:使用docker 安装最方便)
-
用客户端登录,输入 "clickhouse-client"即进入客户端界面 。由于MaterializeMySQL目前只是实验版本,所以需要在客户端打开MaterializeMySQL 这个功能 : SET allow_experimental_database_materialize_mysql = 1
若是上面这样,便设置成功 -
clickhouse 是借助mysql的gtid 进行同步的,所以需要提前打开mysql的gtid_mode哦。mysql5.7以前打开gtid_mode 需要重启数据库,但是5.7以后就可以热更改了。
具体设置可以参考我要配置mysql主从 执行 show global variables like '%gtid_%';
可以看到gtid_mode是开启的,这个时候要重启CK -
接下来就可以同步数据库拉,继续输入:CREATE DATABASE db_name ENGINE = MaterializeMySQL('host.docker.internal:3306','yourmysqldb','root','yourpassword');
ps:
db_name:你想要在ck里面创建的数据库名字,一般和mysql的数据库名对应
host.docker.internal:docker 容器访问宿主机的localhost 即 127.0.0.1
yourmysqldb:你想要同步的mysql 数据库
root:登陆mysql的用户
yourpassword:登陆mysql的数据库密码 -
如果显示OK表示同步OK啦,和mysql一样可以查看通过过来的数据,show databases,use yourdatabase,select ...一顿操作猛如虎,一看战绩0-5(*如果同步的表没有创建主键,ck就会报DB:Exception,这很坑爹)
-
最后CK 在国内用得比较少,本人正在踩坑中。。。未完,待续。。。