ETL工具-nifi乾貨系列 第九講 處理器EvaluateJsonPath,根據JsonPath提取字段

1、其實這一節課本來按照計劃一起學習RouteOnAttribute處理器(相當於java中的ifelse,switch case 控制語句),但是在學習的過程中遇到了一些問題。RouteOnAttribute 需要依賴處理器EvaluateJsonPath,所以本節課我們一起來學習下EvaluateJsonPath處理器。如下圖所示:

 本節課的示例依然很簡單:

GenerateFlowFile 產生測試json字符串:{"name":"Javax 小金剛","id":"2"}

JoltTransformJSON 轉換json結構:{"person":{"name":"Javax 小金剛","id":"2"}}

EvaluateJsonPath 提取指定字段(下一節課進行路由)

LogAttribute 打印屬性到日誌文件nifi-app.log

2、EvaluateJsonPath,此處理器的作用是根據jsonPath提取json數據中指定的屬性

 Destination:下拉選項有flowfile-content和flowfile-attribute,默認值flowfile-content,用於指示 JsonPath 提取結果是寫入到 FlowFile 內容還是 FlowFile 屬性中。如果選擇屬性,必須指定屬性名稱。如果設置爲 flowfile-content,則只能指定一個 JsonPath,屬性名稱會被忽略。這裏選擇flowfile-attribute進行演示。

Return Type:下拉選項有auto-detect、json、scalar,默認值爲auto-detect,用於指示 JSON Path 表達式的期望返回類型屬性。選擇 'auto-detect' 會根據目標的設置來確定返回類型:對於目標爲 'flowfile-content' 的情況,返回類型將設置爲 'json';對於目標爲 'flowfile-attribute' 的情況,返回類型將設置爲 'scalar'。

Path Not Found Behavior:下拉選項有warn、ignore、skip,默認值爲ignore,目標設置爲 'flowfile-attribute' 時,如何處理缺失的 JSON Path 表達式的方式。選擇 'warn' 會在找不到 JSON Path 表達式時生成警告。選擇 'skip' 會忽略任何未匹配的 JSON Path 表達式,不生成對應的屬性。

Null Value Representation:下拉選項有empty string、the string 'null',默認值empty string,對於 JSON Path 表達式返回空值時的期望表示方式。

Max String Length:默認值20 MB,這解析 JSON 文檔時字符串值的最大允許長度的描述。

userId:$.person.userId,此處爲自定義屬性名稱,json path。

3、LogAttribute ,在指定的日誌級別上記錄 FlowFile 的屬性,如下所示,此處理器在debug的時候比較有用。比較簡單不做介紹。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章