Apache nifi Nifi记录最大时间戳
我在每个流文件中都有时间戳值,我需要将当前流文件的时间戳与以前的流文件进行比较,如果使用Put文件处理器将时间戳更大,那么最后我需要在文件中有最大时间戳。我通过以下方式尝试了更新属性处理器的高级功能: 添加了一个名为Apache nifi Nifi记录最大时间戳,apache-nifi,Apache Nifi,我在每个流文件中都有时间戳值,我需要将当前流文件的时间戳与以前的流文件进行比较,如果使用Put文件处理器将时间戳更大,那么最后我需要在文件中有最大时间戳。我通过以下方式尝试了更新属性处理器的高级功能: 添加了一个名为max\u timestamp的规则,其条件为${getStateValue(“maxTimestamp”):lt(${timestamp})},并将属性maxTimestamp的操作设置为${timestamp} 我还将“设置存储状态”功能设置为在处理器中本地存储,但我没有看到将m
max\u timestamp
的规则,其条件为${getStateValue(“maxTimestamp”):lt(${timestamp})}
,并将属性maxTimestamp的操作设置为${timestamp}
我还将“设置存储状态”功能设置为在处理器中本地存储,但我没有看到将maxtimstamp
属性设置为从更新属性处理器输出的流文件
UpdateAttribute
处理器在有状态模式下使用以下参数计算maxTimestamp
属性:表达式
${timestamp:toNumber():math(“max”,${getStateValue(“maxtimstamp”)}
计算两个数字之间的最大值:
当前流文件中的时间戳
属性,
以及maxTimestamp
属性有状态变量初始值:0定义存储值的默认值
RouteOnAttribute
:因此,你将有两种关系
less\u then
用于timestamp
小于maxtimstamp
unmatched
对于其他情况谢谢,我是否可以在文件中保留此最大时间戳,下次调用http处理器开始提取数据时使用此最后一个最大时间戳。您可以使用AttributesToJSON
->PutFile
将属性存储到文件中,和GetFile
->EvaluateJsonPath
读取和解析json文件属性。
Store State : Store state locally
Stateful Variables Initial Value : 0
maxTimestamp : ${timestamp:toNumber():math("max",${getStateValue("maxTimestamp")})}
Routing Strategy : Route to Property name
less_then : ${timestamp:lt(${maxTimestamp})}