我在文本文件(sftp server)
中有一些(sftp server)
,希望将这些值存储在memory
或global variables
中,以便在所有ExecuteScript
处理器中使用。我有超过20 ExecuteScript
基于不同类型的数据路由,我需要在这些处理器中使用这些key value pairs
。我不能将这些值存储为NiFi全局变量,因为对于NiFi数据流的每次运行,文件内容并不相同。
我期待的方式是当我的NiFi流启动时,这些文件内容必须存储somewhere(memory/variables)
,这样我就可以在我的所有脚本中引用它。
这能办到吗?如能就此提出任何意见或建议,将不胜感激。
发布于 2020-01-15 07:22:02
有多种方法可以做到这一点。例如:
变量注册表
使用变量注册表。您已经指出了一个警告,即变量注册表不能动态更新。
YAML/JSON配置文件
将您的配置放入一个文件中(就像您已经拥有的那样)。使用ExecuteScript将键值对合并为属性。
Web服务
将配置文件包装在web服务中,并使用InvokeHttp查询它。计算响应并将值合并到FlowFile上的属性中。
DistributedMapCache
设置一个DistributedMapCacheServer和客户端。使用PutDistributedMapCache存储值,使用FetchDistributedMapCache将Put Cache Value In Attribute
设置为true以获取值并将其放入属性中。
如何设置DistributedMapCache:https://stackoverflow.com/a/44591909/401025
https://stackoverflow.com/questions/59745005
复制相似问题