我使用csv
每分钟在我的hdfs
上投放多个logstash
个文件。
我需要从当前时间开始过去一分钟的文件。
我在此过程中使用nifi
。
例如现在是上午11:30,我只需要获取1分钟前或上午11点29分保存的所有文件。
使用nifi
的最佳方法是什么?
谢谢。
答案 0 :(得分:0)
您可以检查以下流程结构。
<强> ListHDFS - &GT; RouteOnAttribute - &GT; FetchHDFS 强>
您可以使用ListHDFS列出hdfs文件夹中的所有文件。
使用RouteOnAttribute检查文件名中的日期时间是否为前一分钟,方法是将 '08 -23-17-11-29-AM'转换为毫秒(toNumber())强>。
然后检查它等于当前日期时间的前几分钟的毫秒数,如下所示。 的 $ {现在():toNumber():减去(60000)} 强>
这里我们有当前日期时间减去1分钟毫秒(“60000”)。
如果两者都是等于,那么将该队列移入 FetchHDFS 处理器,它将获取前一分钟文件中的特定文件。
如果您遇到任何问题,请与我们联系。