Одновременное выполнение потоковой и пакетной среды с помощью 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();

person lidox    schedule 23.11.2016    source источник


Ответы (1)


Я бы предпочел не делать этого. Если ваш процесс потоковой передачи зависит от вашего пакетного результата. Вы можете получить пакетный результат заранее и поместить в очередь или таблицу базы данных, потоковый процесс может получить результат из него, поэтому вам не нужно перезапускать его при изменении пакетного результата. Потому что потоковый процесс несколько бесконечен. Но результат пакетного процесса может измениться, потому что вы можете запустить его на другом входе.

person William_Sang    schedule 24.11.2016