Swa*_*ood 2 time execution apache-nifi
我想知道如何找出/捕获Apache Nifi中任何流的总执行时间.有没有办法做到这一点,并将其添加到属性列表,以便可以通过PutEmail共享?
我相信您必须在收到流文件时添加自定义时间戳属性,执行大部分处理,然后计算要包含在电子邮件中的已用时间属性.您可以使用两个UpdateAttribute处理器执行此操作.
UpdateAttribute,收到 =${now():toNumber()}
(做处理)
UpdateAttribute,elapsed =${now():toNumber():minus(${received}):format("HH:mm:ss")}
这将格式化经过的时间,如"00:04:16"(4分16秒).您可以${elapsed}
在PutEmail邮件内容中使用此功能.
但这有点难看,只给出了处理时间的近似值.NiFi起源系统保持"Lineage Duration",描述自文件进入NiFi后经过的时间.这是一个更权威的数字.但我不相信你可以从表达语言中查询谱系持续时间.您必须单独查询和分析出处数据.
小智 7
詹姆斯上面提供了很好的解释.但另外需要注意的是,不是为接收数据的时间戳添加属性,而是可以简单地引用该lineageStartDate
属性:
${now():toNumber():minus(${lineageStartDate}):format("HH:mm:??ss")}
Run Code Online (Sandbox Code Playgroud)
这与用于确定物种中的谱系持续时间的值相同.
归档时间: |
|
查看次数: |
1889 次 |
最近记录: |