2016-07-17 44 views
0

某些NiFi處理器不允許動態屬性的原因是什麼?我在我的一個工作流程中使用了FetchFile處理器,並且需要在整個流程中傳遞一些數據以便能夠在最後一步使用它。但是,FetchFile通過不允許動態屬性來打破它。我想知道是否有另一種方式來做到這一點?爲什麼NiFi在某些處理器上不允許動態屬性?NiFi fetchFile處理器不允許動態屬性

我的流程是一樣的東西

ExecuteScript - > EvaluateJSon - >自定義處理器寫文件 - > FetchFile-> SendtoS3 - >標記的工作流程完全

我想送一些元數據,以便我能標記工作流完成。我將這些數據作爲屬性傳遞,但它在FetchFile中斷。

+0

您是否嘗試過使用UpdateAttribute處理器添加任意動態屬性? – James

+0

我做到了,但因爲我的房產是一個流動的連接,我無法做到。 –

回答

3

有兩個單獨的概念,處理器上的用戶定義屬性和流文件屬性。

用戶定義的屬性讓處理器從用戶那裏獲取輸入信息,用於事先不能提前定義的內容。當用戶定義的屬性中指定JSON路徑時,或者在將所有用戶定義的屬性作爲查詢參數傳遞給Solr時,在PutSolrContentStream中,這些示例位於EvaluateJsonPath中。

FlowFile屬性是一個鍵/值對的映射,可以傳遞每個數據片段。這些屬性通常在處理器生成或修改流文件時創建,或者可以使用像UpdateAttribute這樣的處理器進行操作。

由每個處理器決定是否需要用戶定義的屬性以及如何使用它們。 UpdateAttribute恰好是一個處理器,用戶定義的屬性作爲新的鍵/值對添加到每個流文件中,但對於每個處理器都這樣做沒有意義。

+0

感謝您的回覆。我在想,可能會有任何處理器可能需要添加新的屬性的用例。假設我需要根據文件的某些內容(通過獲取文件檢索)添加一個新屬性,我現在沒有辦法做到這一點。或者在那裏? –

+0

您可以使用UpdateAttribute處理器將自定義屬性添加到您的流程文件。您可以稍後在流程中使用這些屬性。 – James

+0

根據您處理的文件類型,ExtractText可用於從流文件的內容中提取文本並將其帶入屬性。 –