【问题标题】:Can GetFile/ListFile/FetchFile Be Configured To Repeat List For Each Trigger?GetFile/ListFile/FetchFile 可以配置为每个触发器重复列表吗?
【发布时间】:2019-12-17 13:50:17
【问题描述】:

我希望能够在每次触发流程时列出目录中的所有文件。我遇到了以下问题

a) 使用 ListFile + FetchFile - 文件夹中的所有文件只列出一次,但它会记住状态,因此下次运行时它不会列出任何文件,除非文件已被修改。我希望 ListFile + FetchFile 像以前一样运行。我可以去手动删除“状态”信息。但这不可配置

b) 使用 GetFile 方法和 KeepSource=true 时,处理器会重复不断地列出文件。它希望它只发生一次。

有没有一种方法可以将其配置为重复列出文件,无论它是否已更改且仅一次?

【问题讨论】:

  • 重复列出文件一次是什么意思?
  • 只需将GetFile的调度改为每天运行一次?
  • @mattyb 我希望文件只列出一次而不是重复
  • 这就是 ListFile 所做的,只列出一次。与此不同,您还想做什么?
  • “触发流量”是什么意思?您是否启动然后停止源处理器(ListFile 或 GetFile)?如果是这样,那么 Bryan 的评论很好,只需安排 GetFile 长时间运行一次,然后通过启动和停止 GetFile 来触发流程。它没有时间再次安排,因此每个“触发器”只会运行一次。

标签: apache-nifi


【解决方案1】:

我想第一个要问的问题是为什么要重复列出所有内容?

NiFi 是一种构建流程的工具,它旨在处理新数据,而不是一遍又一遍地处理所有数据。您似乎很可能处于以下情况之一:

  1. 通过重新设计流程,您不需要重复列出所有内容
  2. 您正在做一些不应该用 NiFi 真正做的事情。

有许多工具可以列出文件并且很乐意再次这样做。 (一个简单的 shell 命令,甚至是一些 python 或 spark 代码)。

一个。如果您正在寻找协调器:考虑像 Oozie 或 Airflow 之类的东西

b.如果你真的需要,你可以让 Nifi 执行一个脚本而不是使用 ListFile,但如前所述,你很可能会朝着不应该的方向前进。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-16
    • 1970-01-01
    • 2017-04-21
    • 2013-04-04
    • 1970-01-01
    • 2011-10-01
    • 1970-01-01
    相关资源
    最近更新 更多