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,并且状态不会对齐。
我正在开发 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,并且状态不会对齐。