MySQL至ClickHouse数据实时同步(MaterializeMySQL引擎版)

一、版本信息

        MySQL:mysql-5.7.42

        ClickHouse:clickhouse-server-22.2.2.1

二、配置信息

        MySQL

        在/etc/my.cnf的[mysqld]下添加如下内容

        server-id=1  #MySQL Server的id,一般为服务器IP地址尾数

        log-bin=mysql-bin

        binlog_format=ROW

        gtid-mode=on

        enforce-gtid-consistency=1

        log-slave-updates=1

        首先是要开启binlog功能,其次要开启GTID模式,确保数据同步的一致性,因为我用的是clickhouse-server-22.2.2.1版本,所以需要配置开启GTID模式,它是MySQL复制增强版,从MySQL5.6版本开始支持,目前已经是MySQL主从复制模式。

        重启MySQL服务

        systemctl restart mariadb

        准备MySQL表和数据

        MySQL至ClickHouse数据实时同步(MaterializeMySQL引擎版)_第1张图片

        INSERT INTO ccc (name, age) VALUES('张三', 18);

三、开启ClickHouse物化引擎

        select * from system.settings where name ='allow_experimental_database_materialized_mysql';

        set allow_experimental_database_materialized_mysql = 1;

 

四、创建复制通道

        CREATE DATABASE aaa
        ENGINE = MaterializeMySQL('127.0.0.1:3306', 'aaa', 'root', '123456');

        在ClickHouse中创建MaterializeMySQL数据库aaa,指向的数据源地址为MySQL中的aaa数据库,至此ClickHouse中的aaa数据库已经和MySQL中的aaa数据库创建了连接,并且拥有MySQL那边所有的表结构和数据

五、测试

        在MySQL中修改数据:

        update ccc set name = '李四' where id = 1;

        在ClickHouse中可立即看到修改后的数据

        在MySQL中删除数据

        delete from ccc where id = 1;

        在ClickHouse中可立即看到数据被删除掉了

你可能感兴趣的:(ClickHouse,clickhouse)