首页 文章

Nifi QueryDatabaseTable处理器,何时会重置该值?

提问于
浏览
0

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

Document Link: 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 回答

  • 1

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

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

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

相关问题