clickhouse实时同步MySQL数据
两种方式
1、使用clickhouse表引擎,直接从MySQL中读取数据(针对表),如果业务需求不是很复杂,可以选择此方式,需要哪张表就配置哪张表,操作简单,数据实时同步;
2、使用clickhouse数据库引擎,同步MySQL数据库,配置稍微复杂一点,我是没有配置成功,这里就不介绍了。因为我使用的是mariadb(10.5.16),某些配置项不存在,网上也没找到,就没有研究了,有调通的小伙伴可以评论交流。
方式2已经有解决方案:
https://mp.csdn.net/mp_blog/creation/editor/131109231
一、配置MySQL
1、准备好数据库以及数据表
CREATE DATABASE db1;
CREATE TABLE db1.table1 (
id INT,
column1 VARCHAR(255)
);
2、随便插入点数据
INSERT INTO db1.table1
(id, column1)
VALUES
(1, 'abc'),
(2, 'def'),
(3, 'ghi');
3、创建数据库连接账号并赋予权限
供clickhouse通过表引擎连接MySQL使用
CREATE USER 'mysql_clickhouse'@'%' IDENTIFIED BY 'Password123!';
GRANT ALL PRIVILEGES ON *.* TO 'mysql_clickhouse'@'%';
二、配置clickhouse
1、创建表并使用表引擎连接MySQL数据库中的表
CREATE TABLE mysql_table1 (
id UInt64,
column1 String
)
ENGINE = MySQL('127.0.0.1','db1','table1','mysql_clickhouse','Password123!')
参数 | 描述 | 例 |
---|---|---|
host | 主机名或 IP | 127.0.0.1 |
database | MySQL 数据库名称 | db1 |
table | MySQL 表名 | table1 |
user | 用于连接到 MySQL 的用户名 | mysql_clickhouse |
password | 用于连接到 MySQL 的密码 | Password123! |
三、测试
1、在MySQL中插入数据:
INSERT INTO db1.table1
(id, column1)
VALUES
(4, 'jkl');
2、在clickhouse中查询
SELECT
id,
column1
FROM mysql_table1
你会发现刚刚在MySQL中插入的数据
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中插入数据
INSERT INTO mysql_table1
(id, column1)
VALUES
(5,'mno')
4、在MySQL中查询
mysql> select id,column1 from db1.table1;
你会发现在clickhouse中插入的数据
------ ---------
| id | column1 |
------ ---------
| 1 | abc |
| 2 | def |
| 3 | ghi |
| 4 | jkl |
| 5 | mno |
------ ---------
5 rows in set (0.01 sec)
四、总结
通过表引擎连接MySQL,可以实现双向数据同步,简单快捷,需要哪张表就连接哪张表,当数据量不大时,没什么影响,我找到了一张mariadb中45个G的表,配置好表引擎连接之后,数据是加载不出来的,感觉clickhouse只是通过MySQL表引擎连接上了MySQL数据库,查询还是通过MySQL来查询的,45个G的数据量并不小,MySQL查询耗时较高,clickhouse加载超时时间为30s,加载不出来。
另外,可以通过在clickhouse创建只读权限的数据库连接账号,即可控制双向数据同步时读写权限的区分了,MySQL自身就可以配置主从,如果使用MySQL从库来和clickhouse进行连接的话,必须要控制好读写权限,MySQL从库一旦写入数据之后,等到下一次主库同步数据至从库时,必然会导致MySQL主从断开,一定注意!!!
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfcahcc
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01