天天看點

Apache NiFi之MySQL資料同步一.簡述二.功能三.特性四.案例

一.簡述

Apache NiFi

是一個易用、強大、可靠的資料處理與分發系統,Apache NiFi的設計目标是自動化管理系統間的資料流

是美國國家安全局(NSA)開發和使用了8年的一個可視化、可定制的資料集産品。2014年NSA将其貢獻給Apache開源社群,2015年7月成功成為Apache的頂級項目

是一個基于web-ui使用者界面,高度配置的、安全的、基于工作流設計理念、具有很強互動性、易用的、為不同系統間或系統内提供資料流管理與處理的系統

單機模式

Apache NiFi之MySQL資料同步一.簡述二.功能三.特性四.案例

叢集模式

Apache NiFi之MySQL資料同步一.簡述二.功能三.特性四.案例

二.功能

Ⅰ).Processor

處理器接口是Apache NiFi公開對FlowFile屬性及内容的通路機制,處理器是構成NiFi資料流的基本建構塊;可完成功能如下:
  1. 建立FlowFiles
  2. 擷取FlowFile内容
  3. 編輯FlowFile屬性
  4. 更新FlowFile屬性
  5. 攝取資料
  6. 輸出資料
  7. 路由資料
  8. 提取資料
  9. 修改資料

Ⅱ).ReportingTask

Reporting Task接口是NiFi公開的一種機制,允許将名額、監控資訊和内部NiFi狀态釋出到外部端點,例如日志檔案、電子郵件和遠端Web服務

Ⅲ).ControllerService

ControllerService在單個JVM中跨處理器,其為ControllerService和ReportingTask提供共享狀态和功能。通過在ControllerService中執行工作,資料可加載一次,并通過此服務公開給所有處理器,而不用在許多不同的處理器加載資料集

Ⅳ).FlowFilePrioritizer

FlowFilePrioritizer接口提供了一種機制,通過該機制可以對隊列中的FlowFile進行優先級排序,以便按照對特定用例最有效的順序處理FlowFiles

Ⅴ).AuthorityProvider

AuthorityProvider負責确定應授予給定使用者的特權和角色

三.特性

Ⅰ).可視化

資料流的處理有時非常複雜,NiFi提供了可視化的資料流開發功能,使使用者直覺、有效的進行業務開發

Ⅱ).可靠傳遞

遵循NiFi的核心理念:通過利用定制化的持續預寫日志和資料倉庫技術實作,即使在高壓力、高規模的環境中,保證資料的傳遞。

Ⅲ).資料回壓

NiFi提供所有隊列資料的緩存,并在隊列到指定限制或逾時時,可提供資料回壓

Ⅳ).高擴充性

NiFi最初設計為可擴充的資料流處理程式,可預測和可重複模式執行。NiFi通過提供自定義類型裝載器模型,確定了每個擴充元件間的限制關系被限制在有限的範圍

Ⅴ).優先級隊列

NiFi允許設定一個或多個優先級方案,用于對資料如何在隊列中被檢索。預設:先進先出政策;可設定後進先出、最大先出

Ⅵ).資料跟蹤

NiFi自動記錄、索引對于資料流的每步個記錄檔,并将可用的跟蹤資料作為對象在系統中傳輸;這些資訊可用于系統故障診斷、優化等其它場景

Ⅶ).曆史資料恢複

NiFi的資料存儲庫被設計成曆史滾動緩沖區的角色,資料僅在逾時或空間不足時才資料存儲庫中删除

Ⅷ).流程模闆

對資料流高度面向模式,在多種方式解決同一個問題時,可以建立共享的通用處理模闆

Ⅸ).安全性

系統間:NiFi可通過雙向SSL進行資料加密,并允許在發送與接收端共享密鑰,以及其它機制的資料加密與解密

使用者與系統間:NiFi允許雙向SSL鑒定,并提供可插入的授權模式,來控制使用者的登陸權限

四.案例

Ⅰ).案例一:擷取MySQL資料到本地檔案

1).配置ExecuteSQLRecord

a).選擇ExecuteSQLRecord

在Processor中搜尋ExecuteSQLRecord
Apache NiFi之MySQL資料同步一.簡述二.功能三.特性四.案例

b).配置ExecuteSQLRecord

1.建立Database Connection Pool

2.建立JsonRecordSetWriter

3.配置SQL select query

select Host,User,authentication_string from mysql.user;           
Apache NiFi之MySQL資料同步一.簡述二.功能三.特性四.案例

c).建立DBCPConnectionPool

在Database Connection Pool中選擇DBCPConnectionPool
Apache NiFi之MySQL資料同步一.簡述二.功能三.特性四.案例

d).配置DBCPConnectionPool

1.Database Connection URL: jdbc:mysql://hostname:3306/mysql

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

3.Database User: username

4.Database Password: password

Apache NiFi之MySQL資料同步一.簡述二.功能三.特性四.案例

e).激活服務

Apache NiFi之MySQL資料同步一.簡述二.功能三.特性四.案例

f).選擇JsonRecordSetWriter

在Processor中搜尋JsonRecordSetWriter
Apache NiFi之MySQL資料同步一.簡述二.功能三.特性四.案例

g).配置JsonRecordSetWriter

Apache NiFi之MySQL資料同步一.簡述二.功能三.特性四.案例
Apache NiFi之MySQL資料同步一.簡述二.功能三.特性四.案例

h).選擇AvroSchemaRegistry

在Processor中搜尋AvroSchemaRegistry
Apache NiFi之MySQL資料同步一.簡述二.功能三.特性四.案例

i).配置AvroSchemaRegistry

Apache NiFi之MySQL資料同步一.簡述二.功能三.特性四.案例
Apache NiFi之MySQL資料同步一.簡述二.功能三.特性四.案例

j).激活JsonRecordSetWriter & AvroSchemaRegistry

Apache NiFi之MySQL資料同步一.簡述二.功能三.特性四.案例

2).配置PutFile

a).選擇PutFile

在Processor中搜尋PutFile
Apache NiFi之MySQL資料同步一.簡述二.功能三.特性四.案例

b).配置PutFile

1.配置Directory: 檔案儲存路徑

2.可配置Create Missing Directories: 預設true

Apache NiFi之MySQL資料同步一.簡述二.功能三.特性四.案例

3).啟動服務

可以點選選擇單個Processor啟動,也可以在空白處點選流程啟動
Apache NiFi之MySQL資料同步一.簡述二.功能三.特性四.案例

4).驗證結果

a).MySQL源資料查詢

Apache NiFi之MySQL資料同步一.簡述二.功能三.特性四.案例

b).檔案内容查詢

Apache NiFi之MySQL資料同步一.簡述二.功能三.特性四.案例