根据下面提到的文档,似乎我将重新启动处理器,它将重置我提供的最大列值的值,并将从头开始获取数据 .
以逗号分隔的列名列表 . 处理器将跟踪自处理器开始运行以来返回的每列的最大值 .
-
但是,我测试了这种行为,即使我重新启动处理器,我只能获得增量加载 . 文件中有错误或遗漏了什么?
-
如果我重新部署作业会发生什么,我的意思是删除作业并从模板中重新创建它?
-
在代码中,它提到该值将作为Scop.CLUSTER的一部分存储 . 有人请向我解释一下它是什么?国家将在哪些条件下被清除?
@Stateful(scopes = Scope.CLUSTER,description =“在对指定的表执行查询后,将保留指定列的最大值,以便在将来执行查询时使用 . 这允许处理器“”仅获取最大值大于保留值的记录 . 这可用于“”增量提取,提取新添加的行等 . 要清除最大值,请清除处理器的状态“”国家管理文件“)
1 回答
处理器第一次启动后,除非您进入处理器的“查看状态”菜单并单击“清除状态”,否则它将永远不会重置它的值 .
在启动和停止处理器时清除状态是没有意义的,因为任何时候NiFi重新启动以进行维护或崩溃,然后它将重置,这是不希望的 .
存储状态的位置取决于您运行的是单个节点还是群集 . 在单个节点中,它存储在本地预写日志中,在集群中它存储在ZooKeeper中,因此所有节点都可以在必要时访问它 . 在任何一种情况下,它都由处理器的UUID存储 .