NIFI使用CaptureChangeMySQL同步MYSQL BINLOG数据

文章讲述了在NIFI中使用CaptureChangeMySQL同步MYSQLBINLOG数据时遇到的问题,包括Mysql的bin-log启用配置,NIFI组件的设置,以及因添加分布式缓存服务(DistributedMapCacheServer)导致的JDBC连接错误。通过手动添加MySQL驱动的绝对路径解决了找不到驱动的问题,最终成功实现了数据同步。
摘要由CSDN通过智能技术生成

NIFI使用CaptureChangeMySQL同步MYSQL BINLOG数据

Mysql 配置

首先要将Mysql的bin-log启用
安装好Mysql后 再My.ini中加入
my.ini配置
重启服务
Winows 使用管理员模式打开powershell
net stop mysql
net start mysql

NIFI配置组件信息

NIFI踩坑配置
配置完成之后 启动就可以同步到数据,但是有一个问题,关键信息都是空

{"type":"insert","timestamp":1678866408000,"binlog_filename":"mysql-bin.000001","binlog_position":697,"database":null,"table_name":null,"table_id":null,"columns":[{"id":1,"value":null},{"id":2,"value":null},{"id":3,"value":null}]}

这个原因是必须要依赖一个分布式的缓存服务(具体原因没有搞清楚为什么)

配置一个分布式缓存服务

这里就不使用Redis了就直接用DistributedMapCacheServer在本机启动一个就好了
缓存服务配置
使用服务
配置完成之后坑人的地方又来了

解决 Error creating binlog enrichment JDBC connection to any of the specified hosts问题

咱也不知道为什么他会报这个错,这个错就是找不到驱动,明明不加分布式缓存的时候好好的,加了之后他就找不到驱动了,这时候我们手动下载一个驱动然后把驱动绝对路径填到NIFI的MySQL Driver Location(s)上
驱动设置

收官

再次插入一条数据测试

{"type":"insert","timestamp":1678866408000,"binlog_filename":"mysql-bin.000001","binlog_position":697,"database":"bin_test","table_name":"test_bin","table_id":33,"columns":[{"id":1,"name":"A","column_type":12,"value":"1"},{"id":2,"name":"B","column_type":12,"value":"1"},{"id":3,"name":"C","column_type":12,"value":"1"}]}

正常了。。。。。。。
关于那些迷点
1、为什么要加缓存才可以
2、为什么加了缓存需要指定驱动位置
回头在源码中找答案吧,先用起来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值