我们想数据存入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中