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 在國內用得比較少,本人正在踩坑中。。。未完,待續。。。