分组/汇总春季批次记录

lul*_*ulu 2 spring spring-batch

我是 spring-batch 的新手,我想用它来实现以下过程:

阅读:来自网络服务的项目列表
流程:对这些项目进行分组
写:这些组回到网络服务

例子:

输入:
交易ID、店铺、金额
1、FooStore,2.50
2、酒吧店,19.99
3、FooStore,12,49

输出:
总计 ID、商店、金额
1、FooStore,14.99
2、酒吧店,19.99

使用 spring-batch 这是否可能,我是否错过了一个重要的步骤,或者这是否与批处理的概念相冲突,以至于我应该寻找不同的解决方案?

我找到了一个可能的解决方案,即使用该writeFooter方法,但这看起来很愚蠢,因为我担心我会失去使用 spring-batch 的很多好处,例如错误恢复和内存管理。另外,据我所知,仅当输出写入文件而不是发送到网络服务时才支持页脚。

Luc*_*cci 5

编写作业分两步:

  1. 读取每条记录并从输入中读取,然后在您自己的中ItemWriter.write()更新汇总表
  2. 将汇总表转储到文本文件(或网络服务)

您还可以尝试使用 SUM() 和 COUNT() 等聚合函数编写单个 SQL 语句来达到目标​​,然后通过单步作业读取自定义 SQL 生成的每条记录并直接写入文本文件(或 Web 服务) )。