【问题标题】:Execute Python Script After PutFile (Apache - NiFi)在 PutFile (Apache - NiFi) 之后执行 Python 脚本
【发布时间】:2021-10-25 21:09:25
【问题描述】:

我正在尝试做一些我认为应该相对简单的事情,但是我在构思如何执行这个过程时非常努力。

在高层次上,我只是将一个 zip 文件解压缩到一个目录中。完成后,我需要执行一个 python 脚本。

我遇到的问题是我无法确定实现此目标的最佳方法。我假设通知/等待将是答案,但是设置释放信号标识符并仅在放置所有流文件时才释放,似乎不可能?我也尝试过使用类似属性的 MergeContent,但我只想要一个合并的流文件,并且我无法将最小条目数 = 设置为 ${fragment.count}。请参阅下面的任何可能有益的屏幕截图。谢谢。

【问题讨论】:

  • python脚本是做什么的?它是为每个 FlowFile 执行一次还是为所有 16 个执行一次?
  • 它将执行一系列批处理脚本来处理与文件相关的逻辑。但是如果所有文件都在目录中,我们只想执行批处理脚本。因此,简而言之 - 16 人一次。

标签: python apache-nifi


【解决方案1】:

如果您使用UnpackContent,所有解压的流文件都会获得片段标识符、索引和计数属性 - 请参阅文档的写入属性部分。

如果您想将所有这些收集到一个 FlowFile 中,您可以使用 MergeContentMerge StrategyDefragment。这将采用 UnpackContent 创建的所有流文件并将它们合并到一个流文件中 - 它将按 identifier 分组并等到它看到每个 indexcount - 因此如果产生了 16 个流文件, 它将所有 16 合并为 1。

您可以使用该单个 FlowFile 来触发您的脚本。

【讨论】:

  • 会检查并报告。我以为 MergeContent 可以处理这个问题,但我没有意识到 UnpackContent 有这些标识符。谢谢。
  • 标记为答案。谢谢你提供信息。我没有完全理解合并内容处理器,但现在肯定有了更好的理解。
猜你喜欢
  • 2020-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多