Nifi:按内容过滤流文件

Nifi: Filter flow files by content

我有大约 2000 个来自 REST API 调用的 json 格式的流文件。一个文件如下所示:

[ {
  "manager_customer_id" : 637,
  "resourceName" : "customers/673/customerClients/3158981",
  "clientCustomer" : "customers/3158981",
  "hidden" : false,
  "level" : "2",
  "manager" : false,
  "descriptiveName" : "Volvo",
  "id" : "3158981"
} ]

现在我想通过参数 manager 过滤它们。如果 manager 为真 ,我应该跳过这个流程文件。所以我需要处理 manager 为 false 的流文件。如何使用 Apache Nifi 执行此操作?

您可以在 ConvertRecord 的帮助下将流文件转换为记录。 它允许将 Json 格式传递给任何你喜欢的格式,你仍然可以保留 Json 格式。

但是随着您的流文件成为记录,您现在可以使用其他处理器,例如: QueryRecord,所以你可以 运行 SQL 像流文件上的命令:

"SELECT * FROM FLOWFILE WHERE manager=true"

我建议您阅读以下内容:

您可以只使用 EvaluateJSONPath(将管理器的值存储在属性中)和 Route on attribute(根据该属性进行过滤),将流从 Manager=true 引导至自动终止并继续执行其余操作直至成功。