1.从本地获取文件,合并后输出

需要的处理器有获取文件、合并文件、放文件,三者之间的串联关系为“获取文件à合并文件à放文件

获取文件的配置如下图,重点是输入目录的设置,其余的配置根据需求进行配置。

 

 

 

合并文件的配置如下图,重点是压缩文件大小和分界符的配置,其余根据需要进行配置,分隔符策略选择文本,在分界符属性上填写不同文件之间的分隔符。

 

 

 

放文件的配置如下图,重点是输出目录的配置,其余根据需要配置

 

 

 

三个处理器配置完成后,依照顺序连接起来,然后全部启动即可完成文件的提取合并后输出。

2.将合并之后的文件拆分后输出

获得合并之后的文件流,根据合并规则,填写拆分规则,拆分成功之后输出,需要用到的处理器有分割文件和更新属性两种。文件流的来源多样,拆分成功之后的输出多样,这里以案例1得到的合并之后的文件流为输入文件流,输出时输出到本地。

分割文件的配置如下图所示,根据合并文件的规则进行填写,如案例1中合并文件时选择分隔符策略为文本,分界符为“文件结束”,所以此分割文件中字节序列格式选择文本,然后字节序列填写“文件结束”。

 

 

 

文件分割成功之后默认用时间来命名,但是在同一时间分割成功多个文件时容易出现文件名重复的问题,因此需要添加更新属性处理器来更新文件名属性,更新属性处理器配置如下图所示,重点是添加一个“filename”的属性,然后按照使用方法进行重命名,本例中使用UUID的方法进行文件重命名,具体的用法可查看帮助。

 

 

 

将合并文件流连接到分割文件处理器,然后在连接到更新属性处理器,最后连接到输出处理器,本例中文件流链路图如下:

 

 

 

3.从数据库抽取数据,然后输出

从数据库抽取表数据然后输出,主要用到的处理器为执行数据库语句处理器,输出的处理器则根据需要进行选择,本例选择放文件处理器,将从数据库中抽取的数据以文件的形式存储到本地。

执行数据库语句处理器的配置如下图所示,重点是数据库连接池服务的配置和sql选择查询语句的填写。本例为从oracle数据库中抽取数据,因此数据库连接池服务选择DBCP连接池,sql查询为普通的查询全表数据。

 

 

 

DBCP连接池的服务需要进行配置,配置如下图所示,重点需要配置数据库连接url,数据库驱动程序类名,数据库驱动程序位置,数据库用户和密码五项,配置完成后点击启用来启动连接池服务。

 

 

 

执行数据库语句的配置中,一般需要将调度选项中的执行调度的时间进行修改,因为我们选择定时器驱动,所以每隔执行调度的时间的长度,处理器执行一次,也就会执行一次抽取操作,一般情况下,我们只需要将数据库中表的数据抽取一次即可,因此需要进行修改。

 

 

 

配置完成后连接输出处理器,即可完成数据库数据的抽取配置。

4.加密文件

加密文件时需要用到加密文件处理器,加密文件处理器配置如下图所示,其中重要的配置是模式要选择加密,密钥推导函数可选择NiFi Legacy KDF或者OpenSSL EVP_BytesToKey本例中选择后者,填写加密的密码,其余的配置项根据需要进行配置。

 

 

 

本例从本地获取文件,然后加密,然后输出到本地,数据流连如下图所示:

 

 

 

5.解密文件

解密文件是加密文件的逆过程,需要用到的处理器还是加密文件处理器,只是在使用时将模式选择为解密即可,如下图所示,注意密钥推导函数,加密算法和密码等需要与加密时配置的相同,才能成功解密文件。

 

 

 

本例模拟从本地获取加密后的文件,解密后输出到本地,数据流链路如下图所示:

 

 

 

6.压缩文件

压缩文件需要用到压缩文件处理器,该处理器配置比较简单,具体见下图,默认4个必填属性,都需要进行配置,模式需要选择压缩,压缩格式根据需要进行选择,压缩级别为数字越大,压缩比例越高。

 

 

 

本例从本地获取文件,压缩后输出到本地,数据流链路如下图所示:

 

 

 

7.解压缩文件

解压缩文件与压缩文件配置基本相同,也是用压缩文件处理器进行解压缩处理,只要将模式从压缩改为解压缩即可,其余配置相同,如下图所示。注意,解压缩文件时压缩格式等参数要与压缩文件时相对应。

 

 

 

8.ftp获取文件

ftp获取文件需要用到获取ftp文件处理器,配置如下图所示,主要的属性是主机名,端口,用户名,密码和远程路径几项,根据实际情况进行填写即可。

 

 

 

本例中从192.168.81.33机器的ftp上获取文件,然后输出到本地,获取ftp文件处理器的配置如上图所示,整体的数据流链路图如下图所示。

 

 

 

9.ftp放文件

ftp放文件时需要用到“向ftp放文件”处理器,处理器的配置如下图所示,与案例7中的获取ftp文件处理器的配置类似,重要的属性也是主机名,端口,用户名,密码和远程路径。

 

 

 

本例从本地获取文件,然后输出到192.168.81.33机器上的ftp的根目录下,整个数据流链路如下图所示。

10.Avro文件转换为文本文件

nifi的使用中,大多数类型的文件都可以转换为Avro类型的文件,本例介绍如何将Avro类型的文件转换为文本文件。需要用到的处理器为 转换记录、更新记录、更新属性转换记录处理器的作用是将Avro类型的文件转换为CSV的文件,更新记录处理器的作用是将CSV文件的记录转换为文本文件,更新属性处理器的作用是改变文件的名称和后缀,改为txt文件。

转换记录处理器的配置如下图所示,主要有读记录和写记录两个属性,因为我们要处理Avro文件,因此创建读属性为Avro读取。

 

 

Avro读取配置如下所示,使用默认配置即可。

 

 

Avro文件转换为CSV文件,因此创建写属性为CSVRecordSetWriter,该属性的配置如下图所示,基本使用默认设置即可,但是第一项需要选择图中标识的值。

 

 

更新记录处理器的配置如下图所示,读属性配置为CSVReader。写属性选择之前配置的CSVRecordSetWriter。除此之外配置一个/center_code,值随便写即可。

 

 

CSVReader属性的配置如下图所示,其余属性使用默认值,红线标出来的属性按照图中标识的进行配置,其中模式注册表属性选择Avro模式注册表。

 

 

Avro模式注册表配置如下图所示,第一个属性设置为true,添加一个test属性,然后值写红线框中的值即可。

 

 

本例从oracle数据库中抽取表中数据,以Avro文件的形式传入转换记录,将Avro文件转换为CSV文件,然后传入更新记录,将CSV文件转换为文本文件,然后经过更新属性处理器改变文件名称和后缀,最后使用PutFile处理器将文件存放在本地。该流程的处理器链路图如下图所示: