mysql实时物化到clickhouse(MaterializeMySQL)
Creates ClickHouse database with all the tables existing in MySQL, and all the data in those tables.
ClickHouse server works as MySQL replica. It reads binlog and performs DDL and DML queries.
This feature is experimental.
使用 MySQL 中存在的所有表以及這些表中的所有數(shù)據(jù)創(chuàng)建 ClickHouse 數(shù)據(jù)庫。
ClickHouse 服務器用作 MySQL 副本。它讀取 binlog 并執(zhí)行 DDL 和 DML 查詢。
此功能是實驗性的。
?
目前 MaterializeMySQL database engine 還不支持表級別的同步操作,需要將整個mysql database映射到clickhouse,映射過來的庫表會自動創(chuàng)建為ReplacingMergeTree表engine。
MaterializeMySQL 支持全量和增量同步,首次創(chuàng)建數(shù)據(jù)庫引擎時進行一次全量復制,之后通過監(jiān)控binlog變化進行增量數(shù)據(jù)同步;該引擎支持mysql 5.6/5.7/8.0版本數(shù)據(jù)庫,兼容insert,update,delete,alter,create,drop,truncate等大部分DDL操作。
1、修改my.cnf開啟mysql binlog模式
log-bin=/data/logs/mysql/mysql-bin.log # 指定binlog日志存儲位置 binlog_format=ROW # 這里一定是row格式 server-id=1 gtid-mode=on enforce-gtid-consistency=1 # 設置為主從強一致性 log-slave-updates=1 # 記錄日志?
2、mysql建庫建表插數(shù)據(jù)
mysql> CREATE DATABASE db; mysql> CREATE TABLE db.test (a INT PRIMARY KEY, b INT); mysql> INSERT INTO db.test VALUES (1, 11), (2, 22); mysql> DELETE FROM db.test WHERE a=1; mysql> ALTER TABLE db.test ADD COLUMN c VARCHAR(16); mysql> UPDATE db.test SET c='Wow!', b=222; mysql> SELECT * FROM test;3、登陸clickhouse客戶端,開啟mysql物化引擎
clickhouse-client -u default --password default SET allow_experimental_database_materialize_mysql = 1 # 因為該功能目前還處于實驗階段,在使用之前需要開啟?
?4、創(chuàng)建一個復制管道
CREATE DATABASE mysql ENGINE = MaterializeMySQL('localhost:3306', 'db', 'root', '***'); SHOW TABLES FROM mysql;5、查看ck數(shù)據(jù),會自動同步mysql的數(shù)據(jù),后面可以測試一下更新刪除。?
SELECT * FROM mysql.test;?┌─a─┬───b─┬─c────┐?
│ 2 │ 222 │ Wow! │?
└───┴─────┴──────┘
?
?
總結(jié)
以上是生活随笔為你收集整理的mysql实时物化到clickhouse(MaterializeMySQL)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux安装包安装mysql5.7
- 下一篇: mysql、clickhouse读写分离