Apache NIFI EvaluateJsonPath

EvaluateJsonPath


編輯人:酷酷的誠 郵箱:[email protected]


描述

該處理器根據流文件的內容計算一個或多個JsonPath表達式。這些表達式的結果被寫入到FlowFile屬性,或者寫入到FlowFile本身的內容中,這取決於處理器的配置。通過添加用戶自定義的屬性來輸入jsonpath,添加的屬性的名稱映射到輸出流中的屬性名稱(如果目標是flowfile-attribute;否則,屬性名將被忽略)。屬性的值必須是有效的JsonPath表達式。“auto-detect”的返回類型將根據配置的目標進行確定。當“Destination”被設置爲“flowfile-attribute”時,將使用“scalar”的返回類型。當“Destination”被設置爲“flowfile-content”時,將使用“JSON”返回類型。如果JsonPath計算爲JSON數組或JSON對象,並且返回類型設置爲“scalar”,則流文件將不進行修改,並將路由到失敗。如果所提供的JsonPath計算爲指定的值,JSON的返回類型可以返回“scalar”。如果目標是“flowfile-content”,並且JsonPath沒有計算到一個已定義的路徑,那麼流文件將被路由到“unmatched”,無需修改其內容。如果目標是“flowfile-attribute”,而表達式不匹配任何內容,那麼將使用空字符串創建屬性作爲值,並且FlowFile將始終被路由到“matched”。

屬性配置

在下面的列表中,必需屬性的名稱以粗體顯示。任何其他屬性(不是粗體)都被認爲是可選的,並且指出屬性默認值(如果有默認值),以及屬性是否支持表達式語言。

屬性名稱 默認值 可選值 描述
Destination flowfile-content ▪flowfile-content
▪flowfile-content
指示是否將JsonPath計算結果寫入流文件內容或流文件屬性;如果使用flowfile-attribute,則必須指定屬性名稱屬性。如果設置爲flowfile-content,則只能指定一個JsonPath,並且忽略屬性名。
Return Type auto-detect ▪auto-detect
▪json
▪scalar
指示JSON路徑表達式的期望返回類型。選擇“auto-detect”,“flowfile-content”的返回類型自動設置爲“json”,“flowfile-attribute”的返回類型自動設置爲“scalar”。
Path Not Found Behavior ignore ▪warn
▪ignore
指示在將Destination設置爲“flowfile-attribute”時如何處理丟失的JSON路徑表達式。當沒有找到JSON路徑表達式時,選擇“warn”將生成一個警告。
Null Value Representation empty string ▪empty string
▪empty string
指示產生空值的JSON路徑表達式的所需表示形式。

動態屬性:

該處理器允許用戶指定屬性的名稱和值。

屬性名稱 屬性值 描述
用戶自由定義的屬性名稱 用戶自由定義的屬性值 在該處理器生成的文件流上添加用戶自定義的屬性。如果使用表達式語言,則每批生成的流文件只執行一次計算 .
支持表達式語言:true(只使用變量註冊表進行計算)

連接關係

名稱 描述
failure 當不能根據流文件的內容計算JsonPath時,流文件被路由到這個關係;例如,如果流文件不是有效的JSON
unmatched 當JsonPath不匹配流文件的內容,並且目標被設置爲流文件內容時,流文件被路由到這個關係
matched 當成功地計算了JsonPath並修改了流文件後,流文件將被路由到這個關係

讀取屬性

沒有指定。

寫屬性

沒有指定。

狀態管理

此組件不存儲狀態。

限制

此組件不受限制。

輸入要求

此組件需要傳入關係。

系統資源方面的考慮

沒有指定。

應用場景

通常當需要從流文件json中提取某些數據作爲流屬性時,使用此處理器;或者從流文件json內容中提取一部分內容作爲下一個流文件內容,使用此處理器。

示例說明

1:提取流文件json內容,作爲輸出流的屬性。(注意:當輸出選擇flowfile-attribute時,及時jsonpath匹配不到值,流文件也會路由到matched)

輸入json如下:

輸出結果如下:

2:提取流文件json內容,作爲輸出流的內容。(注意:當選擇flowfile-content時,用戶只能自定義添加一個屬性;如果jsonPath匹配不到,會路由到unmatched)

輸出流內容:

公衆號

關注公衆號 得到第一手文章/文檔更新推送。

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