Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache nifi Nifi记录最大时间戳_Apache Nifi - Fatal编程技术网

Apache nifi Nifi记录最大时间戳

Apache nifi Nifi记录最大时间戳,apache-nifi,Apache Nifi,我在每个流文件中都有时间戳值,我需要将当前流文件的时间戳与以前的流文件进行比较,如果使用Put文件处理器将时间戳更大,那么最后我需要在文件中有最大时间戳。我通过以下方式尝试了更新属性处理器的高级功能: 添加了一个名为max\u timestamp的规则,其条件为${getStateValue(“maxTimestamp”):lt(${timestamp})},并将属性maxTimestamp的操作设置为${timestamp} 我还将“设置存储状态”功能设置为在处理器中本地存储,但我没有看到将m

我在每个流文件中都有时间戳值,我需要将当前流文件的时间戳与以前的流文件进行比较,如果使用Put文件处理器将时间戳更大,那么最后我需要在文件中有最大时间戳。我通过以下方式尝试了更新属性处理器的高级功能:

添加了一个名为
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})}