2017-06-20 53 views
0

我試着從卡夫卡獲取數據,但這些數據是在節儉。從thift變換成JSON

如果我想將它轉換成JSON爲了改變一些值,我該怎麼辦呢?

是否有從thift轉變爲JSON任何處理器?

感謝

+0

你可以和服務器管理員/開發者進行一些協商嗎? Thrift包也有JSON選項 –

+0

嘿Jacek,是的,它是我們的選擇之一,但他們更喜歡它在節儉,所以我正在尋找所有選項。由於 – Bentipe

+0

什麼亞切克是說,節儉已經支持['TJSONProtocol'](https://github.com/apache/thrift/blob/master/lib/java/src/org/apache/thrift/protocol/TJSONProtocol.java )(實際上有兩個,但一個是隻寫的) – JensG

回答

1

由於亞切克指出,這將是理想的,直接從卡夫卡使用JSON,但在事件這是不可能的,這裏有幾個選項:

  1. 執行命令 - 在線轉換 - 編寫一個簡單的編譯Java客戶端,接受Thrift輸入和converts it using a JSON serializer to JSON。使用ExecuteStreamCommand處理器調用此客戶端。這有利於不將任何Thrift依賴關係帶入NiFi的JVM。
  2. 使用ExecuteScript在NiFi執行轉換 - 寫在節儉一個Groovy腳本直接變換(你可以在這裏使用純Java爲好),要麼引用該文件或粘貼腳本主體到處理器。這將要求Thrift庫在處理器的模塊目錄中可用。
  3. 編寫自定義處理器 - 按照Apache NiFi Developer Guide中的說明,您可以編寫自己的自定義處理器,並將NAR捆綁在一起並放入您的NiFi實例中。您將可以訪問完整的處理器生命週期,框架API,控制器服務,單元測試線束等。

祝您好運。

+0

感謝Andy,是的最好的選擇是直接從Json服務器,它會花更少的時間。謝謝。 – Bentipe