#JoltTransformJSON
編輯人:酷酷的誠 郵箱:[email protected]
#描述
使用Jolt轉換json,成功的路由到'success',失敗的'failure'。處理JSON的實用程序不是基於流的,因此大型JSON文檔轉換可能會消耗大量內存。目前支持UTF-8流文件內容和Jolt Spec。可以使用表達式語言定義Spec,其中可以在Spec語法的左側或右側引用屬性。支持自定義轉換(實現轉換接口)。包含當前類路徑上不存在的自定義庫的模塊可以通過自定義模塊目錄屬性包含。注意:在配置處理器時,如果用戶選擇了默認的轉換,但仍然提供了一個鏈Spec,那麼系統不會警告該Spec是無效的,並且會產生失敗的流文件。這是確定的一個已知問題。
#屬性配置
在下面的列表中,必需屬性的名稱以粗體顯示。任何其他屬性(不是粗體)都被認爲是可選的,並且指出屬性默認值(如果有默認值),以及屬性是否支持表達式語言。
屬性名稱 | 默認值 | 可選值 | 描述 |
---|---|---|---|
Jolt Transformation DSL | jolt-transform-chain | Cardinality Chain Default Modify -Default Modify - Define Modify - Overwrite Remove Shift Sort Custom |
指定應該使用哪種Jolt轉換模式 |
Custom Transformation Class Name | 自定義Jolt轉換工具類的全類名 | ||
Custom Module Directory | 文件和/或目錄的路徑列表,其中包含包含自定義轉換的模塊(不包括在NiFi的類路徑中)。 | ||
Jolt Specification | JSON數據轉換Spec。如果選擇了Sort轉換,則忽略此值。 支持表達式語言:true(將使用流文件屬性和變量註冊表進行計算) |
||
Transform Cache Size | 1 | 編譯一個震盪轉換可能相當昂貴。理想情況下,這隻會做一次。但是,如果在轉換中使用了表達式語言,我們可能需要爲每個流文件進行新的轉換。這個值控制我們在內存中緩存多少個轉換,以避免每次編譯轉換。 | |
Include Schema | false | true false |
如果爲true,美化輸出json的格式。 |
#連接關係
名稱 | 描述 |
---|---|
success | 成功地轉換json |
failure | 未成功地轉換json |
讀取屬性:
沒有指定。
#寫屬性
Name | Description |
---|---|
mime.type | application/json |
#狀態管理
此組件不存儲狀態。
#限制
此組件不受限制。
#輸入要求
此組件需要傳入連接關係。
#系統資源方面的考慮
沒有指定。
#應用場景
該組件使用開源JOLT庫來實現批量JSON轉換,JOLT目前是一個不基於流式的非常高效的json轉換庫,JOLT有自己定義的一套DSL。使用該組件需要先了解JOLT的知識,並編寫出相應的JOLT規範。這裏不做具體示例,可以直接參看JOLT教程。
#公衆號
關注公衆號 得到第一手文章/文檔更新推送。