如何删除Nifi流文件中的流文件属性?

时间:2019-03-13 16:18:19

标签: apache-nifi

enter image description here 更新属性配置 enter image description here

2 个答案:

答案 0 :(得分:2)

很难从提供的屏幕截图中看出来,但是您似乎要删除的字段是流文件内容的一部分,与流文件的属性不同。 UpdateAttribute只能删除属性,而不能删除内容中的任何内容。

为了修改内容,您将需要使用特定于所处理内容类型的处理器。在您的情况下,它看起来像JSON,因此您可以将ConvertRecord处理器与JsonTreeReader和JsonRecordSetWriter一起使用,并将编写器配置为与阅读器具有不同的架构。基本上读所有字段,但只写出所需的字段。

也有一个UpdateRecord处理器,但是它目前尚不能删除字段。

答案 1 :(得分:0)

要删除FlowFile的属性,可以使用UpdateAttribute和名为Delete Attributes Expression的属性。您只需要用与要删除的属性匹配的正则表达式填充它即可。

但是,正如@Bryan Bende所说的,看起来您并不是要删除FlowFile的属性,而是要删除内容。

如果您愿意从内容中删除JSON属性,则可以使用JoltTransformJSON中的Jolt Transformation DSLRemove。然后,只需使用您要删除的属性的说明即可。例如,我要从此JSON中删除属性t1

{
"t1": "test",
"t2": "test2",
"t3": "test3"
}

所以,我的规范是:

{
    "t1": ""
}

您可以详细了解here