Операции MapReduce / Aggregate в SpringBatch

Можно ли выполнять операции в стиле MapReduce в SpringBatch?

У меня есть два этапа в моем пакетном задании. На первом этапе вычисляется среднее значение. На втором этапе каждое значение сравнивается со средним значением, чтобы определить другое значение.

Например, Допустим, у меня есть огромная база данных с оценками учеников. На первом этапе рассчитывается средний балл по каждому курсу / экзамену. На втором этапе сравниваются индивидуальные баллы со средними, чтобы определить оценку на основе некоторого простого правила:

  1. A, если баллы учащегося выше среднего
  2. B, если баллы учащегося средний
  3. C, если баллы учащихся ниже среднего

В настоящее время мой первый step - это Sql, который выбирает среднее значение и записывает его в таблицу. Второй шаг - это Sql, который объединяет средние оценки с отдельными оценками и использует процессор для реализации правила.

Существуют аналогичные функции агрегирования, такие как avg, min, которые часто используются в шагах, и я бы предпочел, чтобы это можно было сделать в Процессоры максимально упрощают SQL-запросы. Есть ли способ написать процессор, который объединяет результаты по нескольким строкам на основе критериев группирования, а затем один раз записывает среднее значение / мин в таблицу вывода?

Этот образец повторяется много раз, и я m не ищет однопроцессорную реализацию с использованием Sql, который извлекает как средние, так и индивидуальные оценки.

12
задан Sathish 25 May 2011 в 06:55
поделиться