是否可以在 SpringBatch 中进行 MapReduce 样式的操作?
我的批处理作业有两个步骤。第一步计算平均值。第二步将每个值与平均值进行比较以确定另一个值。
例如,假设我有一个庞大的学生成绩数据库。第一步计算每门课程/考试的平均分数。第二步将个人分数与平均分数进行比较,以根据一些简单的规则确定成绩:
- A 如果学生成绩高于平均水平
- B 如果学生成绩是平均
- C 如果学生成绩低于平均水平
目前我的第一步是选择平均值并将其写入表的 Sql。第二步是将平均分数与个人分数连接起来并使用处理器来实现规则的 Sql。
有类似的聚合函数,如 avg,min 在 Steps 中使用了很多,如果这可以在保持 Sqls 尽可能简单的处理器中完成,我真的更喜欢。有没有办法编写一个处理器,它根据分组标准聚合多行的结果,然后将平均值/最小值写入输出表一次?
这种模式重复了很多,我不是在寻找一个使用 Sql 的单处理器实现,它可以同时获取平均分数和个人分数。