当前位置:   article > 正文

NIFI使用CaptureChangeMySQL同步MYSQL BINLOG数据

capturechangemysql

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}]}
  • 1

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

配置一个分布式缓存服务

这里就不使用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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/622803
推荐阅读
相关标签
  

闽ICP备14008679号