ClickHouse学习(九)clickhouse整合mysql


整合mysql数据库

!!!clickhouse不当当支持mysql,还支持其他的数据库,需要的话去官方网站上可以查看到

MaterializeMySQL引擎

MaterializeMySQL该引擎能映射mysql中的某个database,并且会自动在ClickHouse中创建对应的ReplacingMergeTree,它能将直接将监听的binlog事件直接导入clickhouse中,不再使用第三方中间件。

  • 在创建database后会全量同步mysql中的表和数据,之后会通过binlog进行增量同步
  • 会为创建的每张ReplacingMergeTree自动的增加_sign(标记是否被删除,取值为1和-1)和_version(监听增删改事件,若发生则自增)字段

MySQL 开启 binlog 和 GTID 模式

!!!注意数据库的版本,建议最好用mysql8.0的版本,不然很可能会报code 537错误

进入/etc/my.cnf中添加信息

开启binlog

在这里插入图片描述

开启GTID模式

确保数据同步的一致性
在这里插入图片描述
配置mysql的default_authentication_plugin,为了clickhouse可以建表

default_authentication_plugin = mysql_native_password

修改好后重启mysql服务

[root@spark01 etc]# systemctl restart mysqld

测试

准备MySQL 表和数据

在这里插入图片描述
在这里插入图片描述

clickhouse开启物化视图

set allow_experimental_database_materialize_mysql=1;

ClickHouse 中创建 MaterializeMySQL 数据库

CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster]
ENGINE = MaterializedMySQL(‘host:port’, [‘database’ | database], ‘user’, ‘password’) [SETTINGS …]

CREATE DATABASE test_binlog ENGINE = MaterializeMySQL('192.168.124.26:3306','mybatis','root','123456789');

在这里插入图片描述

查看映射情况

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

插入数据测试

在mysql中插入一条数据
在这里插入图片描述
在这里插入图片描述

删除测试

在这里插入图片描述
删除成功
在这里插入图片描述
从表中并不能看见 _sign 和 _version这两个字段,是因为这两个字段都是隐藏的,想要查看的话就得自己加上该条件
在这里插入图片描述
可以看见它只是将插入和删除的数据进行了标记,并不是真正意义上讲数据删除或更新

整合MySQL表

和整合数据库的操作类似只是命令不同

CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
    name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1] [TTL expr1],
    name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2] [TTL expr2],
    ...
) ENGINE = MySQL('host:port', 'database', 'table', 'user', 'password'[, replace_query, 'on_duplicate_clause'])
SETTINGS
    [connection_pool_size=16, ]
    [connection_max_tries=3, ]
    [connection_auto_close=true ]
;

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值