2017-01-30 17 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更有开销。 –