NIFI 列表文件如何维护其时间戳?

how does NIFI listfile maintains its timestamp?

我正在开发 NiFi,其中我使用了 list、fetch 等处理器。列表文件处理器在新文件到达上述目录系统时列出文件。到目前为止,我已经完成了从 2016 年 1 月至今的一年数据文件的处理。

现在我想将 flow.xml 文件导出到新环境并继续处理。当我启动列表处理器时,它从头开始,即 2016 年 1 月。无论如何,是否可以继续在之前的环境处理中留下的列表处理器。

在独立的 NiFi 实例中,状态由配置在 state-management.xml:

中的本地状态提供程序存储
<local-provider>
        <id>local-provider</id>
        <class>org.apache.nifi.controller.state.providers.local.WriteAheadLocalStateProvider</class>
        <property name="Directory">./state/local</property>
        <property name="Always Sync">false</property>
        <property name="Partitions">16</property>
        <property name="Checkpoint Interval">2 mins</property>
    </local-provider>

您可以看到磁盘上的位置在 ./state/local 中,因此您需要将此目录结构及其下的所有内容复制到另一个 NiFi 实例上的相同位置。

此外,这仅在您将 flow.xml.gz 从一个实例复制到另一个实例时才有效,因为状态是根据组件的 UUID 存储的,因此您需要 UUID 保持不变。如果您使用模板移动流程,那么您将获得新的 UUID,并且状态不会对齐。