【问题标题】:NIFI - Process Multiple Files as a GroupNIFI - 将多个文件作为一个组处理
【发布时间】:2020-03-25 03:57:18
【问题描述】:

我对 Apache NIFI 非常陌生,因此可能已经涵盖了这一点,但我能找到的大部分信息都支持稍微不同的用例。

我有一堆文件发布到 FTP 或其他任何地方——它们都通过文件名相互关联:

ID_Part1.zip
ID_Attachments.zip
ID_Part2.zip
ID_Customizations.txt
ID.done

每个逻辑处理组有可变数量的文件,有些是强制性的,有些是可选的,有些可能是意外的。我们知道它们都是根据它们的 ID 前缀关联的,并且一旦存在 .done 文件,我们就会知道它们都已交付。

用 NIFI 的话来说,确保在 .done 文件存在之前不处理属于任何给定 ID 的文件并且接收该组文件的处理器可以访问所有文件的适当方法是什么?

数据拆分和隔离的某些完成方式对我来说仍然很神奇,但如果某个处理器碰巧说看到除 ID_Customizations.txt 之外的所有这些文件并将它们作为有效但秘密不完整的组。

【问题讨论】:

    标签: apache-nifi


    【解决方案1】:

    用 NIFI 的说法,什么是适当的方式来确保没有 处理属于任何给定 ID 的文件,直到 .done 文件 存在

    在您的 GetFile 或 ListFile 处理器中,您可以使用“文件过滤器”属性首先检索您的 .done 文件。

    接收该组文件的处理器可以访问所有文件

    在您的 .done 流文件中,您可以使用 fetchFile 处理器获取目标目录的所有文件。

    有关这些处理器的更多信息:

    https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.6.0/org.apache.nifi.processors.standard.ListFile/index.html

    https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.6.0/org.apache.nifi.processors.standard.FetchFile/

    【讨论】:

    • 也许这是我还不理解的部分——GetFile 不会将它提取的每个文件创建为单独的 FlowFile,理论上可以由集群中的不同工作人员独立处理,或者只是一个同一处理器的不同迭代?
    • 每个文件将被拉取为不同的流文件。我想您必须从属性中的每个文件中检索重要信息才能进行最终处理
    猜你喜欢
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-01
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    相关资源
    最近更新 更多