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
引导至自动终止并继续执行其余操作直至成功。
我有大约 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
引导至自动终止并继续执行其余操作直至成功。