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
處理資料:
AttributeToJson:将流資料的屬性轉換為json
配置attributes list:添加屬性名稱,可以将屬性名稱和屬性值拼接為json鍵值對。
destination如果選擇是flowfile-attribute,則會新增一個名為“JSONAttributes“的json類型新屬性。

EvaluateJsonPath:使用jsonPath表達式語言擷取json檔案的節點和内容。
Jsonpath與XPath的文法結構近似,可以參考以下部落格。
位址:http://www.cnblogs.com/kill0001000/p/4884803.html
EvaluateXPath:通過xPath解析xml檔案。
可以配置選項中Destination選擇flow-attribute操作流的節點。
Return Type選擇string傳回結果為字元串。添加屬性(corpcode),添加屬性擷取規則(/result/scheme/tool_info/attribute::corpcode)擷取xml檔案中節點下的屬性。
或者(/result/scheme/tool_info)擷取xml檔案中節點中的内容。
EvaluateXPath元件應用XPath對xml進行操作,關于XPath的具體使用方法參考:http://www.w3school.com.cn/xpath/index.asp
EvaluateXQuery:擷取xml中多個節點,并将他們拆分成多個流,基于XQuery表達式語言。
XQuery參考:http://w3school.com.cn/xquery/xquery_example.asp
SplitText:将檔案按照行分割,Line Split Count參數設定分割步長
SplitJson:拆分json數組,勾選failure、original
JsonPath Expression:選擇json中需要拆分的字段名稱,該字段名稱中的value為json格式的多條資料,元件會将value中的多條資料拆分成數量相等的資料流,并舍棄拆分字段名稱value值之外的所有資料。
jsonPath:$.name[*]
原始資料:{“name”: [{“last”: “li”},{“first”: “wang”}],”testdata”: “test”}
分割後後變成兩條:
{“last”:”li”}
{“first”:”wang”}
如果整體資料就是jsonArray的形式,jsonPah可以用
$.*
。另外如果檔案名重複,可以使用updateAttribute更改filename,設定為uuid。
存儲資料:
PutElasticsearch5:将資料存儲到ES中,勾選全部三個選項
Putfile:配置接收檔案路徑,勾選failure、success
資料分流:
RouteOnAttribute
RouteOnContent :使用正則比對flow-content的内容。需要添加一個動态屬性,屬性名稱将會作為一個新的relationship輸出,屬性值将作為比對的規則。
以下是從資料庫取出資料,判斷是否是多條的例子:
正規表達式
^\[(.*)\]$
,比對以
[
開始
]
結束的内容
RouteText
資料壓縮:
CompressContent
資料加密:
EncryptContent