快速,持续,稳定,傻瓜式
支持Mysql,Sqlserver数据同步

1.首先NIFI是什么东西?做什么用?

请联系QQ:1793040 索取软件

  • 可参考的网上的文章
  • 1.首先NIFI是什么东西?做什么用?
  • 2.mysql安装
  • 3.NIFI的下载安装启动,可以查看上面参考文章
  • 4.NIFI新建画布
  • 5.使用NIFI做数据库(oracle)到数据库(mysql)的数据同步
    • NIFI如何配置连接上数据库?
      • ① 第一步
      • ② 第二步
      • ③ 第三步
    • 同步的步骤
      • 在NIFI连接mysql的时候有报了一个cannot create poolableconnectionfactory servertime的错误
      • 感谢上面那些文档博客的帮助!

nifi入门指南参考文章:https://blog.csdn.net/zhanglong_4444/article/details/88652464
较多nifi实例:https://www.cnblogs.com/h–d/tag/NIFI/
数据库到数据库同步:https://blog.csdn.net/zhulu52166/article/details/83380717

Nifi 是一个开源的数据处理工具,可以通过简单的Processor对数据流进行处理。好像很厉害,但是我还是没啥概念。
自己的理解就是:可以拉取别人的数据并作处理放到自己这边使用,做数据同步。这可能只是其中的一点功能而已,应该比较强大,有其他的功能尚未发掘使用,现阶段还在探究阶段。先大概了解一下,怎么使用,做数据同步就好。要求不要太高。

因为要模拟出数据库到数据库的数据同步,所以在本机上再下载一个mysql数据库(原本已经有oracle数据库了),这里下载的是解压版,直接解压就行,然后进行一些系统环境变量配置,配置文件配置即可,具体步骤可看https://blog.csdn.net/qq_40612528/article/details/80186323
至于navicat软件连接mysql,就很简单了。

在这里插入图片描述
然后可以按住shift键来copy之前的处理组件放到新的画布中。
一开始以为难不成所有的数据流程处理都只能在这个画布上弄,之后是要画到天上去吗?

因为我们做的是从oracle同步到mysql去
这里的DBCPConnectionPool配置的是oracle,也就是原数据库
DBCPConnectionPool-Target配置的是mysql,也就是目标数据库
总的流程图
在这里插入图片描述
最左边的PutFile可以不需要,那个只是因为乱码的时候调试,弄出来看看json里面是啥东西,因为刚接触nifi,不会,只能这么瞎调试。

第一步

第二步

第三步
mysql的配置也是一样,驱动,url那些对应的改一下即可。

①使用ExecuteSQL处理器,来执行sql语句,获取数据库的数据
该处理器需要配置的有数据源,也就是连接oracle数据库,以及查询的sql。
如何配置数据源请看上面的——NIFI如何配置连接上数据库?

在这里插入图片描述
②使用ConvertAvroToJSON处理器来进行处理
因为NIFI默认查询的数据是Avro格式,所以需要使用这个处理器将Avro格式转为JSON格式。无需其他配置。
③使用ConvertJSONToSQL处理器来进行处理
由于上一步的作用,这时要将json格式的oracle数据,转成sql,然后去mysql数据库进行插入,也就是同步。
在这里插入图片描述
④调用PutSQL处理器
将上一步已经转换成功的sql语句put到mysql中,也就是往mysql执行sql,从而达到数据同步。
在这里插入图片描述
但是这一步一直会有error出现,大致问题就是一直重复插入相同的id,因为你每次都是查找oracle的数据,已经有些数据是之前同步的,也就是已经插入到mysql了,这个怎么解决还不清楚。
在这里插入图片描述
⑤调用SplitJSON处理组件,对json进行拆分
在这里插入图片描述
为什么要拆分?拆分出来是什么?原本value网上例子是$,看公司的是*,不清楚这里设置的区别在哪,反正先跟着写咯。
⑥调用EvaluateJsonPath提取json中的某个属性作为参数
比如这里提取json中的userno(主键),username作为参数,也就是从json中获取值,基本就是这个意思,因为在已经同步的数据,你需要获取这条数据的id也就是这里的userno,然后再将其他有改变的字段也设置进去,进行更新,因为这里的例子只有另一个字段username,所以也获取这个,给下一步操作。
在这里插入图片描述
⑦使用ReplaceText根据参数编写update语句进行更新操作
使用这个编写update语句,然后将上一步的两个参数userno(主键),username,给整进去sql语句中
在这里插入图片描述
⑧最后再使用PutSQL更新数据库即可。
在这里插入图片描述

解决方法如下:https://www.jianshu.com/p/23526221c8dc
在配置的数据库url在其末尾加上serverTimezone=UTC

至此使用NIFI,做oracle到mysql的数据同步就是这样了。关于使用NIFI做oracle到mysql出现中文乱码的问题解决,就看另一篇文章吧
https://blog.csdn.net/xy7570/article/details/90076625

如果上面说的有哪些不对,请告知,共同进步。

相关推荐

咨询软件
 
QQ在线咨询
售前咨询热线
QQ1793040