nifi使用詳解


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處理器將文件存放在本地。該流程的處理器鏈路圖如下圖所示:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM