Apache nifi 文件名中的nifi表达式concat文本

Apache nifi 文件名中的nifi表达式concat文本,apache-nifi,Apache Nifi,我在nifi数据流中创建了一个RouteOnAttribute处理器,我希望它只选择要解析的特定文件。 在属性中,我创建了一个属性“filetofetch” 用下面的表达 ${filename:contains('INCOMING.D151221') 我需要获取文件名INCOMING.D 因此,今天的21 MARTS 2017文件名为 INCOMING.D20170321 我尝试过用类似这样的东西来扩展文件名 ${filename:contains('INCOMING.D'+ ${now(

我在nifi数据流中创建了一个RouteOnAttribute处理器,我希望它只选择要解析的特定文件。 在属性中,我创建了一个属性“filetofetch” 用下面的表达

${filename:contains('INCOMING.D151221') 
我需要获取文件名INCOMING.D 因此,今天的21 MARTS 2017文件名为

INCOMING.D20170321
我尝试过用类似这样的东西来扩展文件名

${filename:contains('INCOMING.D'+ ${now():format('yyyymmdd')} )}
但是我不能用日期前缀来表示 有什么建议吗

havmage

您可以在表达式语言中使用append进行concat,如下所示

必须使用updateAttribute将“Incoming.D”存储在一个属性名中,如下所示

   fileStartsWith:Incoming.D
   Date:${now():format('yyyyMMdd')
    ${filename:contains(${fileStartsWith:append(${date})})}
最后使用routeonattribute进行如下检查

   fileStartsWith:Incoming.D
   Date:${now():format('yyyyMMdd')
    ${filename:contains(${fileStartsWith:append(${date})})}
在Nifi中,您不能与“+”连用

编辑-1:

  Date:${now():format('yyyyMMdd')

好的,我仍然没有得到匹配,好的,我仍然没有得到匹配,我的流文件名是INCOMING.D170321,我的更新属性是条件${filename:contains('INCOMING')}属性日期${now():format('yymdd')属性文件开始${now():format('yymdd'),在RouteONAttribute中,我的表达式是${filename:contains(${FileStartWith:append(${Date})})例如,${now():format('yymmdd')我会检查它是否为170321FileStarWith属性具有以下值'INCOMING.D'您可以检查我的编辑-1吗?您在'mm'中指定了月份,这是问题所在。如果您将其更改为'mm',则它应该可以工作。