兩種方式
? ? ? ? 1、使用clickhouse表引擎,直接從MySQL中讀取數(shù)據(jù)(針對(duì)表),如果業(yè)務(wù)需求不是很復(fù)雜,可以選擇此方式,需要哪張表就配置哪張表,操作簡(jiǎn)單,數(shù)據(jù)實(shí)時(shí)同步;
? ? ? ? 2、使用clickhouse數(shù)據(jù)庫(kù)引擎,同步MySQL數(shù)據(jù)庫(kù),配置稍微復(fù)雜一點(diǎn),我是沒(méi)有配置成功,這里就不介紹了。因?yàn)槲沂褂玫氖莔ariadb(10.5.16),某些配置項(xiàng)不存在,網(wǎng)上也沒(méi)找到,就沒(méi)有研究了,有調(diào)通的小伙伴可以評(píng)論交流。
? ? ? ? 方式2已經(jīng)有解決方案:
????????https://mp.csdn.net/mp_blog/creation/editor/131109231
一、配置MySQL
? ? ? ? 1、準(zhǔn)備好數(shù)據(jù)庫(kù)以及數(shù)據(jù)表
????????????????CREATE DATABASE db1;
????????????????
????????????????CREATE TABLE db1.table1 (
????????????????????????id INT,
????????????????????????column1 VARCHAR(255)
????????????????);
? ? ? ? 2、隨便插入點(diǎn)數(shù)據(jù)
????????????????INSERT INTO db1.table1
????????????????????????(id, column1)
????????????????VALUES
????????????????????????(1, 'abc'),
????????????????????????(2, 'def'),
????????????????????????(3, 'ghi');
? ? ? ? 3、創(chuàng)建數(shù)據(jù)庫(kù)連接賬號(hào)并賦予權(quán)限
????????????????供clickhouse通過(guò)表引擎連接MySQL使用
????????????????CREATE USER 'mysql_clickhouse'@'%' IDENTIFIED BY 'Password123!';
????????????????GRANT ALL PRIVILEGES ON *.* TO 'mysql_clickhouse'@'%';
二、配置clickhouse
? ? ? ? 1、創(chuàng)建表并使用表引擎連接MySQL數(shù)據(jù)庫(kù)中的表
????????????????CREATE TABLE mysql_table1 (
????????????????????????id UInt64,
????????????????????????column1 String
????????????????)
????????????????ENGINE = MySQL('127.0.0.1','db1','table1','mysql_clickhouse','Password123!')
參數(shù) | 描述 | 例 |
---|---|---|
host | 主機(jī)名或 IP | 127.0.0.1 |
database | MySQL 數(shù)據(jù)庫(kù)名稱(chēng) | db1 |
table | MySQL 表名 | table1 |
user | 用于連接到 MySQL 的用戶名 | mysql_clickhouse |
password | 用于連接到 MySQL 的密碼 | Password123! |
三、測(cè)試
? ? ? ? 1、在MySQL中插入數(shù)據(jù):
????????????????INSERT INTO db1.table1
????????????????????????(id, column1)
????????????????VALUES
????????????????????????(4, 'jkl');
? ? ? ? 2、在clickhouse中查詢(xún)
????????????????SELECT
????????????????????????id,
????????????????????????column1
????????????????FROM mysql_table1
? ? ? ? ? ? ? ? 你會(huì)發(fā)現(xiàn)剛剛在MySQL中插入的數(shù)據(jù)
????????????????Query id: 6d590083-841e-4e95-8715-ef37d3e95197
????????????????┌─id─┬─column1─┐
????????????????│ ?1 │ abc ? ? │
????????????????│ ?2 │ def ? ? │
????????????????│ ?3 │ ghi ? ? │
????????????????│ ?4 │ jkl ? ? │
????????????????└────┴─────────┘
????????????????4 rows in set. Elapsed: 0.044 sec.
? ? ? ? 3、在clickhouse中插入數(shù)據(jù)
????????????????INSERT INTO mysql_table1
????????????????????????(id, column1)
????????????????VALUES
????????????????????????(5,'mno')
? ? ? ? 4、在MySQL中查詢(xún)
????????????????mysql> select id,column1 from db1.table1;
? ? ? ? ? ? ? ? 你會(huì)發(fā)現(xiàn)在clickhouse中插入的數(shù)據(jù)
????????????????+------+---------+
????????????????| id ? | column1 |
????????????????+------+---------+
????????????????| ? ?1 | abc ? ? |
????????????????| ? ?2 | def ? ? |
????????????????| ? ?3 | ghi ? ? |
????????????????| ? ?4 | jkl ? ? |
????????????????| ? ?5 | mno ? ? |
????????????????+------+---------+
????????????????5 rows in set (0.01 sec)
四、總結(jié)
? ? ? ? 通過(guò)表引擎連接MySQL,可以實(shí)現(xiàn)雙向數(shù)據(jù)同步,簡(jiǎn)單快捷,需要哪張表就連接哪張表,當(dāng)數(shù)據(jù)量不大時(shí),沒(méi)什么影響,我找到了一張mariadb中45個(gè)G的表,配置好表引擎連接之后,數(shù)據(jù)是加載不出來(lái)的,感覺(jué)clickhouse只是通過(guò)MySQL表引擎連接上了MySQL數(shù)據(jù)庫(kù),查詢(xún)還是通過(guò)MySQL來(lái)查詢(xún)的,45個(gè)G的數(shù)據(jù)量并不小,MySQL查詢(xún)耗時(shí)較高,clickhouse加載超時(shí)時(shí)間為30s,加載不出來(lái)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-616679.html
????????另外,可以通過(guò)在clickhouse創(chuàng)建只讀權(quán)限的數(shù)據(jù)庫(kù)連接賬號(hào),即可控制雙向數(shù)據(jù)同步時(shí)讀寫(xiě)權(quán)限的區(qū)分了,MySQL自身就可以配置主從,如果使用MySQL從庫(kù)來(lái)和clickhouse進(jìn)行連接的話,必須要控制好讀寫(xiě)權(quán)限,MySQL從庫(kù)一旦寫(xiě)入數(shù)據(jù)之后,等到下一次主庫(kù)同步數(shù)據(jù)至從庫(kù)時(shí),必然會(huì)導(dǎo)致MySQL主從斷開(kāi),一定注意?。?!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-616679.html
到了這里,關(guān)于clickhouse實(shí)時(shí)同步MySQL數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!