Apache NiFi 中的 ReplaceText 用法

ReplaceText Usage in Apache NiFi

我正在尝试使用 Apache NiFi 中开箱即用的处理器 ReplaceText 在 .dsv 文件中搜索,匹配所有日期时间格式并将它们转换为日期。但是,我不确定如何配置处理器本身。我试图将搜索值(搜索值 属性)设置为如下所示:

(0{0,1}[1-9])|(1/d)|(2/d)|(3[0-1])/(0{0,1}[1-9])|(1[0-2])/([1-9]/d):(0{0,1}/d)|(1/d)|(2[0-4]):(0{0,1}/d)|([1-5]/d)

虽然我的替换值是与 ${time:format("yyyy-MM-dd'")} 匹配的 regex1,但我还设置了另一个 属性 命名时间,它依次与 (0{0,1}[1-9])|(1/d)|(2/d)|(3[0-1])/(0{0,1}[1-9])|(1[0-2])/([1-9]/d):(0{0,1}/d)|(1/d)|(2[0-4]):(0{0,1}/d)|([1-5]/d) 匹配

这不起作用,我感觉我没有按应有的方式使用 ReplaceText。你能帮我吗?

编辑:

我应该包括我正在使用称为正则表达式替换和评估模式整个文本的替换策略。

我相信 Apache 邮件列表上已经回答了类似的问题,供参考:

我创建了一个模板 [1],其中展示了如何进行您描述的日期转换的示例。它链接到 wiki [2] 上的主模板页面,并命名为 "DateConversion.xml"

它首先使用 ExtractText 查找日期字符串并将其提取到名为 "date" 的属性中。使用的正则表达式为:(\d{2}-\d{2}-\d{4} \d{2}.\d{2}.\d{2})

然后它使用 ReplaceText 和上面相同正则表达式的搜索值,将其替换为 ${date:toDate("dd-MM-yyyy HH.mm.ss"):format("yyyy-MM-dd HH:mm:ss+0000")}

[1] https://cwiki.apache.org/confluence/download/attachments/57904847/DateConversion.xml?version=2&modificationDate=1462288576652&api=v2

[2] https://cwiki.apache.org/confluence/display/NIFI/Example+Dataflow+Templates