nifi实现数据库到数据库之间数据同步

时间:2024-04-06 12:49:54

nifi实现数据库到数据库之间数据同步

一.安装:NiFi 是免安装地,仅需从官网下载压缩包,然后解压,即完成了整个安装过程,官网下载安装包(http://nifi.apache.org/download.html),选择nifi-x.x.x-bin.tar.gz的最新版本即可。解压结束即完成安装过程。

二.配置:修改配置文件nifi.properties(路径/usr/download/nifi-1.7.1/conf,根据解压位置而定),做如下修改:修改为本机ip,默认端口为8080,这里修改为9191.

# web properties #
nifi.web.war.directory=./lib
nifi.web.http.host=192.168.203.7 # 设置成本机的 ip
nifi.web.http.port=9191
nifi.web.https.host=
nifi.web.https.port=
nifi.web.jetty.working.directory=./work/jetty
nifi.web.jetty.threads=200

修改bootstrap.conf(路径/usr/download/nifi-1.7.1/conf),修改java的jvm,默认为512,这里调整为2048。

# JVM memory settings
java.arg.2=-Xms2048m
java.arg.3=-Xmx2048m

三.启动,进入/usr/download/nifi-1.7.1/bin目录,使用命令sh nifi.sh start启动,同样可以进行stop ,status,restart操作。在浏览器中访问:192.168.203.7:9191/nifi,即可出现nifi的操作界面。

四.nifi操作界面简单介绍(具体还需要自己操作,摸索摸索):
nifi实现数据库到数据库之间数据同步
五.数据库到数据库之间数据同步需要的组件有:ExecuteSQL,ConvertAvroToJSON,ConvertJSONToSQL,PutSQL,SplitJson,EvaluateJsonPath,ReplaceText。具体流程:使用ExecuteSQL连接mysql数据库,通过写sql查询所需要的数据,nifi默认查出来的数据为Avro格式,所以需要ConvertAvroToJSON把Avro格式转化为json格式的数据,然后使用ConvertJSONToSQL把json数据转化为sql语句,最后使用PutSQL把数据存入数据库。为了使已同步的数据重复插入数据库,需要对数据进行更新操作,SplitJson对json进行拆分,EvaluateJsonPath提取json中的某个属性作为参数,ReplaceText根据参数编写update语句进行更新操作,PutSQL更新数据库。

ExecuteSQL
nifi实现数据库到数据库之间数据同步
配置数据库连接:DBCPConnectionPool
nifi实现数据库到数据库之间数据同步
ConvertAvroToJSON:
nifi实现数据库到数据库之间数据同步
ConvertJSONToSQL:
nifi实现数据库到数据库之间数据同步
PutSQL:
nifi实现数据库到数据库之间数据同步
SplitJson:
nifi实现数据库到数据库之间数据同步
EvaluateJsonPath:
nifi实现数据库到数据库之间数据同步
ReplaceText:
nifi实现数据库到数据库之间数据同步
PutSQL(注意这地方更新的是源主机的数据库):
nifi实现数据库到数据库之间数据同步
配置完成后,把这几个组件连接起来,如下图:
nifi实现数据库到数据库之间数据同步
总结:文档不是太详细,还有很多东西需要自己摸索,nifi不仅支持数据库之间的数据同步,各种数据流的操作都能很好的支持,各组件的具体说明请参考官方文档:http://nifi.apache.org/docs/nifi-docs/。