Nifi QueryDatabaseTable处理器什么时候会重置值?

时间:2018-03-05 01:37:45

标签: apache-nifi

根据下面提到的文档,似乎我将重新启动处理器,它将重置我提供的最大列值的值,并将从头开始获取数据。

文档链接: https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.5.0/org.apache.nifi.processors.standard.QueryDatabaseTable/index.html

  

以逗号分隔的列名列表。处理器将跟踪自处理器开始运行以来返回的每列的最大值。

  • 但是,我测试了这种行为,即使我重新启动处理器,我只能获得增量加载。文件中有错误或错过了什么内容吗?
  • 如果我重新部署作业会发生什么,我的意思是删除作业并从模板重新创建它?
  • 在代码中,它提到该值将作为Scop.CLUSTER的一部分存储。有人请向我解释一下它是什么?国家将在哪些条件下被清除?
  

@Stateful(scopes = Scope.CLUSTER,description =“在对指定的表执行查询后,将保留指定列的”+“的最大值,以便在将来执行查询时使用。允许处理器“+”仅获取最大值大于保留值的记录。这可用于“+”增量提取,提取新添加的行等。要清除最大值,请清除状态根据州管理文件处理器“+”“)

1 个答案:

答案 0 :(得分:1)

处理器第一次启动后,除非您进入处理器的“查看状态”菜单并单击“清除状态”,否则它将永远不会重置它的值。

在启动和停止处理器时清除状态是没有意义的,因为任何时候NiFi重新启动以进行维护或崩溃,然后它将重置,这是不希望的。

存储状态的位置取决于您运行的是单个节点还是群集。在单个节点中,它存储在本地预写日志中,在集群中它存储在ZooKeeper中,因此所有节点都可以在必要时访问它。在任何一种情况下,它都由处理器的UUID存储。