我们想数据存入mysql的时候,能向clickhouse中也存一份,方便后期的查询

那么clickhouse的mysql引擎完美支持

我们先来想几个问题:

1.我的mysql数据库中,user表已经存在10条数据,那么我在clickhouse中创建user表,指定引擎为mysql,会把mysql的10条数据同步过来吗

2.clickhouse中创建user表后,我向mysql中插入数据,clickhouse中是不是也对应新增数据

3.如果我是向clickhouse插入数据,那么这个数据会不会同步到mysql中

接下来我们实际演示一遍

1.我们在mysql中创建表user

CREATE TABLE `user` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `account_no` bigint DEFAULT NULL,
  `phone` varchar(128) COMMENT '手机号',
  `username` varchar(255) COMMENT '用户名',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

2.接着我们向mysql中添加8条数据

INSERT INTO `zwt_user`.`user`(`id`, `account_no`, `phone`, `username`, `create_time`) 
VALUES (1, 35, '12313881', 'qinwei', '2022-05-20 11:02:24');

3.我们在clickhouse中创建user表,设置引擎为mysql

CREATE TABLE account(
                             id UInt32 ,
                             account_no UInt32 ,
                             user_name String ,
                             phone String ,
                             create_time Datetime
) ENGINE = MySQL(
           '139.196.123.62:3306',
           'zwt_user',
           'account',
           'root',
           'zwt.qinwei');

 参数的具体说明见下图:

 

 4.我们看看clickhouse中 表里有没有同步到数据

 结论:8条数据全部同步过来了

5.我们向mysql中插入数据,看看clickhouse中有没有也新增数据

mysql中执行:

INSERT INTO `user`(`id`, `account_no`, `phone`, `username`, `create_time`) 
VALUES (9, 3650, '12313881', 'qinwei', '2022-07-25 11:02:24');

看看clickhouse中:

id为9的这条数据也自动同步完成 

6.反向操作也是可以同步的

我们向clickhouse中插入数据,数据也会同步到mysql中

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐