我不理解streamexecutionenvironment.readfile方法。fileprocessingmode有两个选项:一次处理\u和连续处理\u。如果选择前者,它只处理一次文件,然后在execute()之后退出。如果我们选择后者,即使我们只是在文件中添加一些行,它也会再次处理整个文件(添加all,例如,在最后一次处理之后每个单词的计数)。我认为这是一种类似“尾”的东西,它只是从“流”中读出更多的东西,而不是从一开始就一次又一次地读出。我对这种“流媒体”很迷茫。有人能解释一下为什么我们没有像“尾巴”一样的东西来处理文件,只“一次”,然后在文件被附加更多的文本(比如日志文件)时继续吗?
1条答案
按热度按时间kokeuurv1#
随着进程的不断更新,flink保持一个时间戳作为状态,并接收任何比时间戳更新的文件。你的观察是准确的,但有一种情况下,这是行之有效的。如果您对目录而不是文件连续使用process\u,并且在文件完成并准备好处理时定期将文件移到该目录中,那么您可以获得“恰好一次”行为。