我是NiFi的新手,所以我不确定这是否可行(或正确的设计方法):
我正在尝试创建一个处理管道,其中NiFi获取一个文件(可能多GB 大小)并执行一些处理 - 非常简单直到......
需要向最终用户显示结果数据的一小部分。用户将提供输入,然后NiFi将需要执行原始数据集的后续处理。
我打算使用Wait
处理器,使用PostHTTP
处理器提示用户(通过GUI),然后使用Notify
处理器。流程如下:
FetchFile
==> Initial Processing
==> Wait
PostHTTP
处理器)ListenHTTP
处理器) Notify
==> Follow-on Processing
不幸的是,PostHTTP
处理器将FlowFile内容的所有发布到指定的端点......再次,可能多个千兆字节大小......这是令人望而却步的。
是否有一个独立的"这种用户交互的NiFi处理器(不包含FlowFile内容)?这个用例是否有另一种实施策略?或者这甚至不是NiFi的正确应用?
谢谢!
答案 0 :(得分:2)
一种可能的方法是将文件写入临时存储(本地磁盘,HDFS,S3等),写入用户操作请求,并完全退出NiFi。然后在用户采取行动后重新启动流程。要触发重启,您可以将UI发布到NiFi,写入消息队列,或将另一个文件写入NiFi正在轮询的目录。
我认为这对于管理用户交互会更灵活,因为您不必在HTTP后期循环中完成整个UI响应。