在Nifi和QueryRecord处理器中,我们是否可以添加一个新列,该列是查询中另一列的正则表达式?
类似:SELECT info, SUBSTRING(info, "([^s]+)") as f_name FROM FLOWFILE
我不想拆分我的流文件、ExtractText、UpdateAttributes,然后是attributesToJson和MergeContent。看起来像是一个循环,如果我们谈论每个FlowFile 400MB,每个 100k行以上,这将需要时间
输入:
{"info":"Rachel: %Robert-100-400-4444-Mrs"}
{"info":": %Martin-200-500-5555-Mr"}
{"info":"%Holand-300-600-6666-Mr"}
期望输出:
{"info":"Rachel: %Robert-100-400-4444-Mrs", "f_name":"Rachel","l_name":"Robert","area_code":100,"last_four_digit":4444,"title":"Mrs"}
{"info":": %Martin-200-500-5555-Mr", "f_name":"","l_name":"Martin","area_code":200,"last_four_digit":5555,"title":"Mr"}
{"info":"%Holand-300-600-6666-Mr", "f_name":"","l_name":"Holand","area_code":300,"last_four_digit":6666,"title":"Mr"}
QueryRecord
将允许您通过LIKE
(文档的"附加详细信息"页面上的示例之一(使用正则表达式过滤流文件中的记录,但要更新记录,您需要使用UpdateRecord
。
UpdateRecord
使用RecordPath DSL语法,该语法还具有类似replaceRegex
和matchesRegex
的regex函数。