之前一段時間從事nifi的開發工作,想總結一些經驗以便大家快速上手nifi
etl工具nifi使用系列(一):nifi介紹及基本概念
etl工具nifi使用系列(二):簡單資料處理processor的使用
etl工具nifi使用系列(三):關于nifi Expression Language 表達式
etl工具nifi使用系列(四):列印日志調試
etl工具nifi使用系列(五):與外部互動(HDFS、mysql、kafka)
etl工具nifi使用系列(六):使用ExecuteScript執行腳本
etl工具nifi使用系列(七):開發自己的processor
etl工具nifi使用系列(八):調用rest api
nifi官方網站:http://nifi.apache.org/
Apache NiFi supports powerful and scalable directed graphs of data
routing, transformation, and system mediation logic. Some of the
high-level capabilities and objectives of Apache NiFi include:
- Web-based user interface
- Seamless experience between design, control, feedback, and monitoring
- Highly configurable
- Loss tolerant vs guaranteed delivery
- Low latency vs high throughput
- Dynamic prioritization
- Flow can be modified at runtime
- Back pressure
- Data Provenance
- Track dataflow from beginning to end
- Designed for extension
- Build your own processors and more
- Enables rapid development and effective testing
- Secure
- SSL, SSH, HTTPS, encrypted content, etc…
- Multi-tenant authorization and internal authorization/policy management
nifi:一個易用、強大、可靠的資料處理與分發系統
- 可視化指令與控制
- 設計,控制,回報和監測之間的無縫體驗
- 高度可配置
- 損失容忍vs保證傳遞
- 低延遲vs高吞吐量
- 動态優先
- 流可以在運作時修改
- 資料回壓
- 資料溯源
- 從頭到尾跟蹤資料流
- 為可擴充而設計
- 建立自己的處理器和更多
- 快速開發和有效的測試
- 安全
- SSL,SSH,HTTPS,加密内容等
- 多租戶授權和内部授權/政策管理
nifi是将資料轉換成一種流的形式在各種處理器之間進行處理轉換的etl工具,它通過可視化可操作的使用者界面來編輯資料,更加直覺有效。
常用術語介紹:
-
FlowFile
一個FlowFile代表每個被系統處理的資料對象,一個FlowFile由兩部分組成:屬性(FlowFile Attributes)和内容(FlowFile Content)。内容是資料本身,屬性是與資料相關的key-value的鍵值對,用于描述資料。所有flowFile都有以下标準屬性:uuid、filename、path
-
FlowFile Processor
Processor是NiFi的元件,可以用來建立、發送、接受、轉換、路由、割裂、合并、處理FlowFiles。在使用者建立資料流時,Processor是最重要的組成部分
-
Connection
提供Processors之間的連接配接,用來定義Processors之間的執行關系,并允許不同Processors之間以不同的速度進行互動
-
Flow Controller
其負責維護Processors之間的關聯資訊,并且管理所有程序對于線程的使用、配置設定
-
Process Group
一個特定集合的Processors與它們之間的連接配接關系形成一個Process Group,其定義了從接受端口接受資料到通過發送端口發送資料之間,整個資料流的處理過程。并可以通過簡單組合其它的部件來建立新的部件