Можно ли выполнять операции в стиле MapReduce в SpringBatch?
У меня есть два шага в моем пакетном задании.Первый шаг вычисляет среднее значение.Второй шаг сравнивает каждое значение со средним, чтобы определить другое значение.
Например, допустим, у меня есть огромная база данных оценок учеников.На первом этапе рассчитывается средний балл по каждому курсу / экзамену.На втором этапе сравниваются индивидуальные оценки со средними, чтобы определить оценку на основе некоторого простого правила:
- A, если студент набирает баллы выше среднего
- B, если студент набирает средний балл
- C, если ученик набирает баллы ниже среднего
В настоящее время мой первый шаг - это Sql, который выбирает среднее значение и записывает его в таблицу.Второй шаг - это Sql, который объединяет средние оценки с индивидуальными и использует Процессор для реализации правила.
Существуют аналогичные функции агрегирования, такие как avg, min, которые часто используются в Steps, и я действительно предпочел бы, если бы это моглобыть сделано в процессорах, сохраняя Sqls как можно более простым.Есть ли способ записать процессор, который агрегирует результаты по нескольким строкам на основе критериев группировки, а затем записывает среднее / минимальное значение в выходную таблицу?
Этот шаблон многократно повторяется, и я не ищу реализацию с одним процессором, использующую Sql, который выбирает как средние, так и индивидуальные оценки.