nifi简介
nifi背景
NiFi之前是在美国国家安全局(NSA)开发和使用了8年的一个可视化、可定制的数据集成产品。2014年NSA将其贡献给了Apache开源社区,2015年7月成功成为Apache顶级项目。

NiFi概念
Apache NiFi 是一个易于使用、功能强大而且可靠的数据处理和分发系统。Apache NiFi 是为数据流设计,它支持高度可配置的指示图的数据路由、转换和系统中介逻辑,支持从多种数据源动态拉取数据。简单地说,NiFi是为自动化系统之间的数据流而生。 这里的数据流表示系统之间的自动化和受管理的信息流。 基于WEB图形界面,通过拖拽、连接、配置完成基于流程的编程,实现数据采集、处理等功能。


下载安装

1、需运行在JVM环境下,没有环境,下载安装jdk(我的jdk使用的是1.8版本,可以根据自己需要安装)

2、下载NIFI (下载.zip)

1)下载链接:http://nifi.apache.org/download.html

3、解压下载的nifi-1.9.2-bin.zip到自己需要的路径

4、配置端口号(NIFI默认端口8080)

1)在cmd中查看端口号是否被占用

netstat -ano|findstr "8080"

2)若被占用,到NIFI安装路径下的\conf\nifi.properties中修改端口号(安装路径即为刚才的解压路径)

(打开文件直接搜索8080,更改保存即可,我此处更改端口号为9090)

5、启动NIFI 服务

双击启动文件:安装路径下的\bin\run-nifi.bat

6、测试是否安装成功

启动服务后稍等几分钟,打开浏览器访问 : http://localhost:9090/nifi/

出现以下页面,表示安装成功

7.查看NIFI运行报表

安装路径\logs\nifi-app.log


操作界面及文件同步

启动后,使用浏览器进行访问,地址:http://localhost:9090/nifi/  

    

不理解NIFI是做什么的,看一个简单的例子(同步文件夹)吧,帮助理解

  1、从工具栏中拖入一个Processor,在弹出面板中搜索GetFIle,然后确认

2、配置GetFile,设置结束关系、输入目录、保留源文件,其他设置可以不动,输入目录中有文件:file.txt(内容为abc)。

  3、从工具栏中拖入一个Processor,在弹出面板中搜索PutFIle,然后确认,如第一步

  4、配置PutFile,设置结束关系、输出目录,其他设置可以不动,输出目录为空文件夹

    

  5、将GetFIle与PutFIle关联起来,从GetFIle中心点击,拖拉到PutFIle上

    

  6、右键启动GetFIle与PutFIle,可以看到结果,输入目录中的文件同步到,输出目录中了

    

  

  注意:操作过程中,注意错误排查

    1、Processor上的警告

      

    2、Processor上的错误

      


Oracle数据库同步

NIFI数据库增量同步用到的组件有QueryDatabaseTable、ConvertAvroToJSON,ConvertJSONToSQL、PutSQL四个组件,添加完成后的界面显示如下:

1、以表NIFINOTEST为例,表结构如下:

create table NIFINOTEST
(
  id   NUMBER not null,
  test VARCHAR2(100),
  rem  VARCHAR2(100),
  tags VARCHAR2(10)
)

2、在工具栏拖拽Processor至画布输入QueryDatabaseTable点击ADD添加组件到画布。

3、显示如下:

4、右击组件如图:

5、选择Configure选项选中Success显示如下:

6、选中PROPERTIES属性选显卡进行数据库连接池,数据库选择、数据表填写,为空字段判断,主键ID填写。

7、点击箭头显示如下:

8、点击CONTROLLER SERVICES选项卡下的 + 号输入DBCPConnectionPool显示如下:

9、点击ADD进入如下图,点击设置图标进行数据库连接池配置

Database Connection URL:jdbc:oracle:thin:@你的IP:1521:你的数据库名

Database Driver Class Name:oracle.jdbc.driver.OracleDriver

Database Driver Location(s):file:///D:/app/Administrator/product/11.1.0/db_1/jdbc/lib/ojdbc6.jar

此处Oracle的驱动jar加载一定要加上file:///(为3个/),jar文件我使用的是ojdbc6.jar,ojdbc4.jar插入数据会报错。

Database User:你的数据库名称

点击APPLY确认后显示如下:

点击中间图标显示如下图,点击ENABLE启用连接池

启用后的连接池界面显示如下:

10、在工具栏拖拽Processor 添加ConvertAvroToJSON组件(把数据库组件查询的数据Avro转为JSON),设置和属性配置如下

 

11、在工具栏拖拽Processor 添加ConvertJSONToSQL组件(把JSON数据转换为sql语句)设置和属性配置如下:

12、在工具栏拖拽Processor 添加PutSQL组件(把sql语句执行到数据库)设置和属性配置如下:

13、按住Shift键,鼠标选中所有组件,点击面板启动按钮启动所有组件

14、启动后界面如下:

15、操作数据源数据库新建的NIFINOTEST表插入数据后,查看目的数据库新建的NIFINOTEST表是否有了同步数据。

16、其它数据库如Mysql、SQLserver只需要在设置数据库驱动文件为对应的JAR即可,其它操作类同;我使用的数据库连接URL、数据库驱动程序类名、数据库驱动程序位置更换为对应的标示即可。我使用的驱动程序位置如下:

//mysql      

        Database Connection URL:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8

Database Driver Class Name:com.mysql.jdbc.Driver

Database Driver Location(s):file:///D:/apache-maven-3.3.9/WareHouse/mysql/mysql-connector-java/5.1.30/mysql-  connector-java-5.1.30.jar

 //sqlserver

       Database Connection URL:jdbc:jtds:sqlserver://你的IP:1433/TEST

Database Driver Class Name:net.sourceforge.jtds.jdbc.Driver

Database Driver Location(s):file:///D:/apache-maven-3.3.9/WareHouse/net/sourceforge/jtds/jtds/1.3.1/jtds-1.3.1.jar

17、模板学习:点此下载

Apache NIFI 安装 ● 操作 ● 文件同步 ● oracle 数据库增量同步实例讲解相关推荐

  1. ExcelToOracle:批量导入Excel文件到Oracle数据库的自动化工具

    ExcelToOracle:批量导入Excel文件到Oracle数据库的自动化工具 简介 ExcelToOracle 是一个可以批量导入excel到数据库(mysql/oracle/sqlserver ...

  2. PL/SQL Developer操作界面查看oracle数据库版本

    PL/SQL Developer操作界面查看oracle数据库版本 BANNER 1 Oracle Database 11g Enterprise Edition Release 2 PL/SQL R ...

  3. 群晖增量同步Linux文件夹,用自定义脚本实现群晖NAS中本地文件夹之间的增量同步复制...

    用自定义脚本实现群晖NAS中本地文件夹之间的增量同步复制 2021-02-21 15:39:44 60点赞 646收藏 52评论 使用情景:群晖DS918+,两块12T RAID1存重要数据,1块2T ...

  4. 【4如何添加Oracle数据库ORCL2新实例】

    4如何添加Oracle数据库ORCL2新实例 输入用户名:sys 输入口令: change_on_install as sysdba select name from v$database; 注意,以 ...

  5. python读取csv某一列存入数组_python 读取.csv文件数据到数组(矩阵)的实例讲解

    利用numpy库 (缺点:有缺失值就无法读取) 读: import numpy my_matrix = numpy.loadtxt(open("1.csv","rb&qu ...

  6. Oracle数据库数据同步到mysql数据库(Oracle数据库备份dmp如何同步到mysql)

    Oracle数据库dmp转mysql格式 一.背景 一项目客户是oracle数据库,需要导一个表数据到自研系统mysql数据库,甲方已给出oracle格式dmp文件! 处理思路: ①.安装Oracle ...

  7. Oracle数据库数据同步方案,ORACLE数据库热备方案

    ORACLE数据库热备方案 相关指标 1.数据库秒级.事务级热备(可跨操作系统平台) 实时监控数据库,将数据库变化后的数据以秒级别的时间备份到备库,同时只备份主数据库已成功的事务. 2.备用数据库在线 ...

  8. windows平台goldgate同步oracle数据库

    一.环境 操作系统 Microsoft Windows Server 2003 R2 Enterprise Edition Service Pack 2 数据库版本: Oracle Database ...

  9. oracle数据文件离线,oracle数据库的文件在哪里

    Oracle体系结构 Oracle 服务器由Oracle实例与Oracle数据库组成 Oracle实例(instance),通过ORACLE_SID来引导(Oracle标识) 单实例情况下:Oracl ...

最新文章

  1. linux终端字体大小6,[adminitrative][archlinux][setfont] 设置console的字体大小
  2. 【网络流24题】解题报告:E 、圆桌问题(最大流求二分图多重匹配)
  3. “中国风”拯救国货彩妆?
  4. 悼念512汶川大地震遇难同胞——老人是真饿了
  5. [leetcode]Median of Two Sorted Arrays @ Python
  6. android开发访问百度搜索,Android开发如何添加搜索功能———大神求救啊
  7. 安装DevExpress QuantumGrid 4.5组件出现问题,急!!
  8. (一)CentOS Docker 安装
  9. 教您用公式编辑器打恒不等于符号
  10. STC89C52单片机学习笔记(一)
  11. 初中英语多词性单词怎么办_初中英语单词按词性分类表.pdf
  12. 题目:js实现求100以内的质数
  13. PG-Strom源码分析
  14. 拆弹专家【爆改车间主任】学习笔记(2)小结
  15. 如何在移动钱包中搭建一个小程序应用商店
  16. C语言用函数指针实现数组排序
  17. 小程序如何引用阿里巴巴图标
  18. SQLite虚表介绍
  19. WebJars和wro4j集成
  20. 计算机学校起名网,最新微信网名校园系列

热门文章

  1. Unity下载中文文档
  2. 平层、错层、跃层、复式、loft的区别是什么?
  3. python ai取名_Python让你成为AI 绘画大师,简直太惊艳了!(附代码)
  4. 中国移动全球合作伙伴大会,释放了什么信号?
  5. 最强版派克斯使用安装教程
  6. 输出关于 PHP 配置的信息的函数是,输出关于 PHP 配置的信息的函数是() 答案:phpinfo()...
  7. 国产台式计算机,国产台式机哪一款好?
  8. 数组中出现__ob__: Observer无法取值
  9. 在安装office2003时,出现:系统管理员设置了系统策略,禁止进行此安装
  10. 深度学习刷新SOTA的tricks大盘点