色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

clickhouse同步mysql二進(jìn)制

阮建安2年前12瀏覽0評論

ClickHouse 是一個面向列的分布式數(shù)據(jù)庫管理系統(tǒng),它的數(shù)據(jù)存儲和查詢性能非常優(yōu)秀。當(dāng)我們想要將 MySQL 中的數(shù)據(jù)導(dǎo)入到 ClickHouse 中使用時,可以使用 ClickHouse 的 MySQL 數(shù)據(jù)源驅(qū)動,或使用自定義的方式來同步 MySQL 數(shù)據(jù)入 ClickHouse。

其中,同步 MySQL 二進(jìn)制是比較常用的方式??梢允褂靡粋€叫做 Canal 的開源項(xiàng)目來實(shí)現(xiàn),Canal 是阿里巴巴的 MySQL 數(shù)據(jù)庫 binlog 增量訂閱&消費(fèi)組件。

在同步之前需要先下載 Canal,然后配置 Canal 的參數(shù),比如 MySQL 的 IP,用戶名、密碼等信息。配置完成后,就可以啟動 Canal 服務(wù)了。

#!/bin/bash
cd /usr/local/canal/canal.deployer-1.1.4/
echo start canal server
sh bin/startup.sh

接下來,在 ClickHouse 中創(chuàng)建對應(yīng) MySQL 數(shù)據(jù)庫的表結(jié)構(gòu),然后通過 ClickHouse 的 MySQL 數(shù)據(jù)源來讀取和寫入數(shù)據(jù)。

CREATE DATABASE IF NOT EXISTS mysql_sync;
CREATE TABLE IF NOT EXISTS mysql_sync.example (
id UInt64,
name String,
age UInt16,
PRIMARY KEY (id)
) ENGINE = MergeTree() PRIMARY KEY id ORDER BY (id);
CREATE TABLE IF NOT EXISTS mysql_sync.binlog_example (
id UInt64,
type String,
data String,
PRIMARY KEY (id)
) ENGINE = MergeTree() PRIMARY KEY id ORDER BY (id) SETTINGS allow_experimental_database_materialize_ttl = 1;

在啟動 Canal 后,需要再啟動一個 Canal 客戶端,用于監(jiān)聽 binlog 的變更,并將變更推送到 ClickHouse 中。

#!/bin/bash
cd /usr/local/canal/canal.adapter-1.1.4/
echo start clickhouse adapter
sh bin/startup.sh

以上就是使用 ClickHouse 同步 MySQL 二進(jìn)制的簡要流程。當(dāng)然,為了避免數(shù)據(jù)丟失,需要在 Canal 和 ClickHouse 中分別做好備份工作。