2016-03-15 51 views
0

我有一個不斷更新新項目的Json文件。 使用Nifi我想創建一個流從這個Json文件中提取內容,然後創建一個可以是CSV的輸出文件,以便我可以在Excel中對它進行一些分析。 我是Nifi的新手,你可以提出一些關於這個事件的流程嗎? 任何讓我開始的事情都會更有幫助。從Json文件Nifi流式傳輸

回答

3

有此流程來執行一些操作,我可以提供一些方法來解決每個:

  • 檢索更新JSON文件:要不斷地獲得該文件(如果它已經改變)您可以使用連接到FetchFile處理器的ListFile處理器,並將FetchFile屬性「完成策略」設置爲「無」。這將使JSON文件保留在文件系統上。如果JSON文件不斷重新生成,則可以使用「移動」或「刪除」策略。

  • 提取JSON值(如果文件內容被更改時替換):如果要查找的值位於相同位置(即始終存在相同的JSONPath表達式),則可以使用EvaluateJsonPath將值提取到屬性中。要將值返回到內容中(用於轉換爲CSV),可以使用ReplaceText(使用表達式語言)將屬性放回到內容中。

  • 提取JSON值(如果新項目插入到文檔中):如果項目是數組的一部分,則可以使用SplitJson爲文檔中的每個元素生成流文件。這將涉及更復雜的處理,因爲您可能會忽略已經看到的元素。您可以使用ReplaceText(見上文)將特定值放入內容中,然後使用Put/FetchDistributedMapCache檢查數組元素是否已經處理。

  • 輸出CSV:對於每個包含要作爲CSV字段的屬性的流文件,可以使用ReplaceText生成一行CSV。然後,您可以使用MergeContent創建完整的CSV文件。請注意,這將不包含標題,您可以使用最終的替換文字插入標題行,然後插入傳入的內容。然後PutFile將CSV文件寫入磁盤。