谷歌瀏覽器在線打開重慶seo代理
ClickHouse是一種OLAP類型的列式數(shù)據(jù)庫管理系統(tǒng),ClickHouse完美的實(shí)現(xiàn)了OLAP和列式數(shù)據(jù)庫的優(yōu)勢(shì),因此在大數(shù)據(jù)量的分析處理應(yīng)用中ClickHouse表現(xiàn)很優(yōu)秀。
SeaTunnel是一個(gè)分布式、高性能、易擴(kuò)展、用于海量數(shù)據(jù)同步和轉(zhuǎn)化的數(shù)據(jù)集成平臺(tái)。用戶只需要配置作業(yè)信息,就能完成數(shù)據(jù)的同步。提交作業(yè)后,源連接器負(fù)責(zé)并行讀取數(shù)據(jù)并將數(shù)據(jù)發(fā)送到下游轉(zhuǎn)換或直接發(fā)送到接收器,接收器將數(shù)據(jù)寫入目標(biāo)。
SeaTunnel任務(wù)配置及啟動(dòng)
MySQL CDC支持stream流處理模式,本示例使用默認(rèn)啟動(dòng)模式 INITIAL,先同步歷史數(shù)據(jù),后增量同步。先將MySQL的test數(shù)據(jù)庫下bigtest表中的10000條歷史數(shù)據(jù),同步到ClickHouse數(shù)據(jù)庫下default.tests中,之后增量同步新數(shù)據(jù)至ClickHouse中。
MySQL建表,語句如下:
CREATE TABLE `bigtest` (`id` int(11) NOT NULL,`name` varchar(100) DEFAULT NULL,`quantity` int(11) DEFAULT NULL,PRIMARY KEY (`id`)
)
向MySQL中插入數(shù)據(jù),格式如下:
insert into test.bigtest values(1,'banana',1);
ClickHouse建表,語句如下:
CREATE TABLE default.jdbc
(`id` Int32,`name` String,`quantity` Int32
)
ENGINE = MergeTree
ORDER BY id
1、啟動(dòng)MySQL binlog
修改配置文件參數(shù)啟動(dòng)binlog
vi /etc/my.cnf
添加如下內(nèi)容:
[mysqld]
character-set-server=utf8
log-bin=mysql-bin
binlog-format=ROW
server_id=1
之后重啟MySQL服務(wù)
2、下載jdbc和連接器
下載MySQLjdbc并放至 '$SEATNUNNEL_HOME/plugins/jdbc/'目錄下
編輯plugin_config:
vi seatunnel-2.x.x/config/plugin_config
添加所需要的connector如:
--connectors-v2--
connector-cdc-mysql
connector-clickhouse
connector-fake
connector-console
--end--
執(zhí)行以下命令下載所需插件(2.3.3即下載的插件版本):
sh bin/install-plugin.sh 2.3.3
調(diào)用安裝腳本的時(shí)候會(huì)在maven的中央倉庫下載對(duì)應(yīng)的jar包,下載較慢,可以手動(dòng)下載。
手動(dòng)下載連接器:
下載連接器connector-cdc-mysql-2.x.x.jar,并放至'$SEATNUNNEL_HOME/connectors/seatunnel/'目錄下。
連接器下載地址:
https://repo.maven.apache.org/maven2/org/apache/seatunnel/
3、編寫配置文件
在'$SEATNUNNEL_HOME/config'目錄下,新建配置文件
配置文件內(nèi)容示例如下:
env {execution.parallelism = 1job.mode = "STREAMING"checkpoint.interval = 2000
}
source {MySQL-CDC {base-url = "jdbc:mysql://localhost:3306/test"username = "root"password = "123456"table-names = ["test.test"]}
}
sink {Clickhouse {host = "localhost:8123"database = "default"table = "tests"username = "default"password = "123456"}
}
4、啟動(dòng)任務(wù)
在'$SEATNUNNEL_HOME'目錄下,使用啟動(dòng)命令:
./bin/seatunnel.sh --config ./config/mysqlcdctock.template -e local
此命令將以 local (本地模式) 運(yùn)行您的SeaTunnel作業(yè)。由于是流處理模式,任務(wù)會(huì)一直執(zhí)行。
進(jìn)入ClickHouse查看數(shù)據(jù)寫入情況select * from default.tests,可以看到10000條歷史數(shù)據(jù)已經(jīng)同步至ClickHouse了。
SeaTunnel支持MySQL CDC的實(shí)時(shí)數(shù)據(jù)同步,繼續(xù)向MySQL中插入數(shù)據(jù)。
可以看到這條數(shù)據(jù)會(huì)同步至ClickHouse。
總結(jié)
本章我們運(yùn)用數(shù)據(jù)集成平臺(tái)SeaTunnel實(shí)現(xiàn)了MySQL到ClickHouse的數(shù)據(jù)同步,通過MySQL CDC實(shí)現(xiàn)了歷史數(shù)據(jù)同步以及新數(shù)據(jù)增量同步。
接下來我們將介紹更多數(shù)據(jù)庫到ClickHouse的數(shù)據(jù)同步流程。