删除 Nifi 中的列

Remove Columns in Nifi

我正在尝试从 CSV 格式文本的流文件中删除 18 列中的最后 16 列。我认为我的正则表达式模式可以工作,但输出与原始数据完全相同。我的日志没有显示任何内容,因为它认为它正确应用了规则,所以我的正则表达式一定有问题。我在下面包含了我的流程和我设置的 ReplaceText 处理器属性的两张图片。

想通了:我不确定是我的分组模式不起作用还是什么,但我将 .* 更改为 []* 并为前两列中的每一列创建了两个单独的组,然后其余列的一组 (.*)

^((?:[^,]*,))((?:[^,]*))((.*))

如果您已经使用了基于记录的处理,我建议最好使用 QueryRecord 并且 select 仅使用该处理器的所需列。做复杂的正则表达式对于维护 imo 来说是痛苦的。

QueryRecord 处理器的 sql 将是:

SELECT column_header1, column_header2 FROM FLOWFILE