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 中存在的所有表以及這些表中的所有數據創建 ClickHouse 數據庫。
ClickHouse 服務器用作 MySQL 副本。它讀取 binlog 并執行 DDL 和 DML 查詢。
此功能是實驗性的。
?
目前 MaterializeMySQL database engine 還不支持表級別的同步操作,需要將整個mysql database映射到clickhouse,映射過來的庫表會自動創建為ReplacingMergeTree表engine。
MaterializeMySQL 支持全量和增量同步,首次創建數據庫引擎時進行一次全量復制,之后通過監控binlog變化進行增量數據同步;該引擎支持mysql 5.6/5.7/8.0版本數據庫,兼容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建庫建表插數據
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、創建一個復制管道
CREATE DATABASE mysql ENGINE = MaterializeMySQL('localhost:3306', 'db', 'root', '***'); SHOW TABLES FROM mysql;5、查看ck數據,會自動同步mysql的數據,后面可以測試一下更新刪除。?
SELECT * FROM mysql.test;?┌─a─┬───b─┬─c────┐?
│ 2 │ 222 │ Wow! │?
└───┴─────┴──────┘
?
?
總結
以上是生活随笔為你收集整理的mysql实时物化到clickhouse(MaterializeMySQL)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux安装包安装mysql5.7
- 下一篇: 按字段顺序加载或解析JSON对象