Apache Flink-阅读后将文件移动到其他文件夹

时间:2018-08-27 12:33:42

标签: apache-flink

我正在从目录中读取csv文件并进行一些处理。 现在,flink只会选择该目录中的所有新文件并进行处理。这对我来说很好。

我陷入了两个问题:

  1. 我要记录flink完成处理的文件名。
  2. 我想在flink完成处理后将处理过的文件移到另一个文件夹中。

我的代码段是:

final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

org.apache.flink.core.fs.Path filePath = new org.apache.flink.core.fs.Path(feedFileFolderPath);

RowCsvInputFormat format = new RowCsvInputFormat(filePath, FetchTypeInformation.getTypeInformation());

DataStream<Row> inputStream = env.readFile(format, feedFileFolderPath, FileProcessingMode.PROCESS_CONTINUOUSLY,
                parseInt(folderLookupTime));

1 个答案:

答案 0 :(得分:0)

该主题在flink邮件列表中出现了两次-请参阅讨论herehere,但是简短的摘要是,尚无简便的方法来执行此操作从Flink内部。

似乎通常要做的是使用cron作业,将旧文件定期移出要监视的目录,并假设它们已被处理。如果要比这更小心,则必须实施自己的机制来跟踪执行处理的作业进度。上面提到的电子邮件线程包含一些有关如何执行此操作的想法。