我正在从 URL 获取一些带有 API 的数值数据,并且我正在寻找一种在将数据放入文件目录之前在 apache nifi 中进行一些数学运算的方法。现在已经谢谢了。
顺便说一句,我正在使用 InvokeHTTP 处理器来获取数据并将文件放在我正在使用 PutFile 处理器的某个地方。我搜索了一些相关网站,但找不到工作方法。
我正在从 URL 获取一些带有 API 的数值数据,并且我正在寻找一种在将数据放入文件目录之前在 apache nifi 中进行一些数学运算的方法。现在已经谢谢了。
顺便说一句,我正在使用 InvokeHTTP 处理器来获取数据并将文件放在我正在使用 PutFile 处理器的某个地方。我搜索了一些相关网站,但找不到工作方法。
最终答案取决于您正在使用的数据是在 FlowFile 的内容中还是在属性中。如果数据足够小并且只有几个操作,建议的方法是将数据用作属性并使用 NiFi 的表达式语言进行转换。
Apache 文档[2] 中有一段数学运算[1]。操作范围从简单的操作数(如加/减)到公开 java.lang.Math 静态方法。
[1] https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#numbers [2] https://nifi.apache.org/docs.html
尝试使用QueryRecord处理器和定义Record Reader/Writer
控制器服务来读/写流文件。
QueryRecord
通过使用Apache calcite SQL 查询和对流文件的数学运算,将新属性添加到处理器。
SQL 查询的结果将添加到outgoing flowfile
您想要的格式中。
如果要获取整个文件然后运行操作,可以尝试 ExecuteStreamCommand。或者,您可以摆弄流文件中的变量 - 取决于您的操作有多大。
例如,如果您有一些初始变量,您可以将它们包含在文件名中,然后提取它们,在流文件的变量中运行操作,然后添加到原始文件的底部