2017-01-30 18 views
0

如何使用FlowFile的getAttribute中的模式?在NiFi中使用getAttribute中的模式

我打算編寫一個處理器,用於從ListenTCP和ListenUDP處理器接收流文件。 ListenTCP的財產tcp.sender和ListenUDP哈希屬性udp.sender。我如何獲得FlowFile的sender屬性。 目前的解決方案是:

String sender = flowfile.getAttribute("tcp.sender"); 
if(sender!=null && !sender.isEmpty()) { 
    // do something 
} 
else { 
    sender = flowfile.getAttribute("udp.sender"); 
    if(sender!=null && !sender.isEmpty()) { 
     //do something 
    } 
} 

我怎樣才能避免使用如果。我需要這樣的事情:

String sender = flowfile.getAttribute("*.sender"); 

回答

4

目前沒有辦法根據模式獲取屬性。如果有,它會返回一個包含多個屬性值的列表,並且您仍然必須通過列表並找到您感興趣的列表。

您可以使您的自定義處理器需要「網絡」等屬性。發件人「,在ListenTCP和ListenUDP之後,爲每個人重新命名」tcp.sender「爲」network.sender「和」udp.sender「爲」network.sender「的UpdateAttribute處理器。

+0

感謝您的回覆。因此,我認爲使用'if'會更好,因爲您的解決方案比使用if更有開銷。 –