Java 在使用带有检查点的PROCESS_时,数据会被切断,有没有办法防止这种情况发生?
假设我正在读取一组有限的文件,因此我选择使用Java 在使用带有检查点的PROCESS_时,数据会被切断,有没有办法防止这种情况发生?,java,apache-flink,Java,Apache Flink,假设我正在读取一组有限的文件,因此我选择使用FileProcessingMode.PROCESS\u ONCE,它将在处理所有文件时退出作业。但是有一个问题,如果作业在检查点完成之前完成,那么那里的任何数据都不会到达目的地。例如,假设我有1分钟的检查点增量,处理所有文件需要1分钟30秒。最后30秒的数据将不在S3中(假设您使用的是db) DataStreamSource msgOutStream=environment.readFile(avroInputFormat,msgOutPath,Fi
FileProcessingMode.PROCESS\u ONCE
,它将在处理所有文件时退出作业。但是有一个问题,如果作业在检查点完成之前完成,那么那里的任何数据都不会到达目的地。例如,假设我有1分钟的检查点增量,处理所有文件需要1分钟30秒。最后30秒的数据将不在S3中(假设您使用的是db)
DataStreamSource msgOutStream=environment.readFile(avroInputFormat,msgOutPath,FileProcessingMode.PROCESS_ONCE,1000L);
有没有办法在作业被终止之前强制设置检查点
我可以禁用检查点吗?我尝试注释我的检查点配置设置,如//StreamExecutionEnvironment.enableCheckpoint()
,希望它能直接写入数据库,但数据文件被卡在.inprogress中,我不明白是什么阻止了它
是否有一种方法可以连续使用PROCESS\u
在不再处理任何内容时结束它
我使用的是flink 1.8。请在此处签出Avro的StreamingFileSink:
DataStreamSource<Message> msgOutStream = environment.readFile(avroInputFormat, msgOutPath, FileProcessingMode.PROCESS_ONCE, 1000L);