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