天天看點

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

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

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

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/

      出現以下頁面,表示安裝成功

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

7.檢視NIFI運作報表

      安裝路徑\logs\nifi-app.log

操作界面及檔案同步

啟動後,使用浏覽器進行通路,位址:http://localhost:9090/nifi/  

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

    

不了解NIFI是做什麼的,看一個簡單的例子(同步檔案夾)吧,幫助了解

  1、從工具欄中拖入一個Processor,在彈出面闆中搜尋GetFIle,然後确認

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

       2、配置GetFile,設定結束關系、輸入目錄、保留源檔案,其他設定可以不動,輸入目錄中有檔案:file.txt(内容為abc)。

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解
Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

  3、從工具欄中拖入一個Processor,在彈出面闆中搜尋PutFIle,然後确認,如第一步

  4、配置PutFile,設定結束關系、輸出目錄,其他設定可以不動,輸出目錄為空檔案夾

           

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

      

  5、将GetFIle與PutFIle關聯起來,從GetFIle中心點選,拖拉到PutFIle上

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

       

  6、右鍵啟動GetFIle與PutFIle,可以看到結果,輸入目錄中的檔案同步到,輸出目錄中了

    

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

  

  注意:操作過程中,注意錯誤排查

    1、Processor上的警告

      

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

    2、Processor上的錯誤

      

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

Oracle資料庫同步

NIFI資料庫增量同步用到的元件有QueryDatabaseTable、ConvertAvroToJSON,ConvertJSONToSQL、PutSQL四個元件,添加完成後的界面顯示如下:

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

1、以表NIFINOTEST為例,表結構如下:

create table NIFINOTEST

(

  id   NUMBER not null,

  test VARCHAR2(100),

  rem  VARCHAR2(100),

  tags VARCHAR2(10)

)

2、在工具欄拖拽Processor至畫布輸入QueryDatabaseTable點選ADD添加元件到畫布。

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

3、顯示如下:

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

4、右擊元件如圖:

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

5、選擇Configure選項選中Success顯示如下:

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

6、選中PROPERTIES屬性選顯示卡進行資料庫連接配接池,資料庫選擇、資料表填寫,為空字段判斷,主鍵ID填寫。

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

7、點選箭頭顯示如下:

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

8、點選CONTROLLER SERVICES頁籤下的 + 号輸入DBCPConnectionPool顯示如下:

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

9、點選ADD進入如下圖,點選設定圖示進行資料庫連接配接池配置

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解
Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

    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确認後顯示如下:

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

     點選中間圖示顯示如下圖,點選ENABLE啟用連接配接池

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

     啟用後的連接配接池界面顯示如下:

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

10、在工具欄拖拽Processor 添加ConvertAvroToJSON元件(把資料庫元件查詢的資料Avro轉為JSON),設定和屬性配置如下

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解
Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

11、在工具欄拖拽Processor 添加ConvertJSONToSQL元件(把JSON資料轉換為sql語句)設定和屬性配置如下:

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解
Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

12、在工具欄拖拽Processor 添加PutSQL元件(把sql語句執行到資料庫)設定和屬性配置如下:

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解
Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

13、按住Shift鍵,滑鼠選中所有元件,點選面闆啟動按鈕啟動所有元件

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

14、啟動後界面如下:

Apache NIFI 安裝 ● 操作 ● 檔案同步 ● oracle 資料庫增量同步執行個體講解

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、模闆學習:點此下載下傳

繼續閱讀