阿里云Flink自定义oracle、mysql连接器

先说一个结论:Flink的Oracle-CDC与MySQL-CDC有版本兼容问题,在于Debezium包版本不同,由于内置MySQL-CDC我们不能改版本,Oracle-CDC又要FlinkCDC 2.1以上的版本,因此我们需要上传一个新的MySQL-CDC。

公司刚入手阿里云的flink,不得不说flink全托管对于简单的数据同步是比较的友好,但是如果是用它来进行flink实时计算,那还是有点小问题,比如底层代码不给开发,只能让你配合它,最多给你个flink1.13或1.15版本选择等等。

当然以上其实问题不大,大家基本上都用这两个版本,相关代码基本都能兼容,但是上来就有个严重的问题,没有oracle-cdc,也就意味着你只能走jdbc的离线同步。好在flink可以自定义连接器,同理阿里云flink也支持。

好,那么就先创建oracle连接器吧。目前阿里云Flink版本的连接器创建在下图位置:

 然后我们需要去flinkcdc官网下载oracle连接器:https://repo1.maven.org/maven2/com/ververica/flink-sql-connector-oracle-cdc/2.2.1/flink-sql-connector-oracle-cdc-2.2.1.jar

下载好了后,选择好文件直接上传,会自动检测参数,如有需要可以进行配置检查,通常直接点击完成即可。

同样的道理,我们去官网下载一个同版本的MySQL-CDC:

https://repo1.maven.org/maven2/com/ververica/flink-sql-connector-mysql-cdc/2.2.1/flink-sql-connector-mysql-cdc-2.2.1.jar​​​​​​

这上面两个jar包2.1,2.2版本都行,但是要保证flinkcdc的版本一致

这里下载好后,我们需要在IDEA里修改源码一处:

 这里最好是直接在本地的用到了flink的MySQL-CDC的项目里打开,不会报缺失依赖文件,我们复制一下路径,再在自己的IDEA里创建一下

 

 

 创建好后将刚刚的MySqlTableSourceFactory类原封不动的全部粘贴上去,这样我们从一个.class文件变成了自己的.java文件,再修改成自己想要的connector名,不能和mysql重名,例如我就叫mysql-test-cdc

 我们再将其编译成.class文件,就能在target里找到这个文件

 将其复制到原来的jar包位置

 用WinRAR打开

 直接到那个目录下粘贴上去替换即可:

 再将这个jar包同oracle-cdc一样上传至阿里云flink,我们在写代码时,connector写mysql-test-cdc即可运行了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值