运行 使用 Flink 并排处理流和批处理环境

Running the stream and batch environment side by side using Flink

运行 在 Flink 中并行处理流和批处理有意义吗?

//calculate median using DataSet (Batch Environment)
BatchFunctions batch = new BatchFunctions();
DataSet<Tuple2<Double, Integer>> dataSet1 = batch.loadDataSetOfOctober2016();
double median = batch.getMedianReactionTime(dataSet1);

// now use the calculated median in the DataStream (stream environment)
StreamFunctions stream = new StreamFunctions();
DataStream<Tuple7<String, String, Integer, String, Date, String, List<Double>>> dataStream1 = stream.getKafkaStream();
stream.printPredictionForNextReactionTimeByMedians(dataStream1, median, Time.seconds(10));
stream.execute();

我宁愿不做。 如果您的流处理过程取决于您的批处理结果。您可以提前获取批处理结果并放入队列或数据库table,流处理可以从中获取结果,因此当批处理结果发生变化时无需重新启动。 因为流式处理在某种程度上是无限的。但是批处理结果可能会改变,因为您可能 运行 它在不同的输入上。