我不了解StreamExecutionEnvironment.readFile方法。 FileProcessingMode有2个选项:PROCESS_ONCE和PROCESS_CONTINUOUSLY。如果我们选择前者,它只处理文件一次并在execute()之后退出。如果我们选择后者,即使我们只是在文件中附加一些行,它也会再次处理整个文件(添加所有文件,例如,在最后一次处理之前的每个单词的计数)。我希望这就像' tail'它只会从" stream"中读取更多内容。而不是一次又一次地从头开始阅读。我迷失了这个"流媒体"。任何人都可以解释为什么我们没有“尾巴”。喜欢只处理文件的事情一次'并在文件附加更多文本如日志文件时继续?
答案 0 :(得分:0)
使用PROCESS_CONTINUOUSLY,Flink将时间戳保持为状态,并摄取任何比时间戳更新的文件。您的观察结果是准确的,但有一种情况很好。如果您对目录而不是文件使用PROCESS_CONTINUOUSLY,并在文件完成并准备好处理时定期将文件移动到该目录中,那么您可以“完全一次”行为。