如何在Spring Batch作业中聚合完整数据集?

时间:2015-04-07 08:21:10

标签: aggregate-functions spring-batch

我需要在Spring Batch作业中插入聚合。 但聚合步骤需要提供整个数据集。

在纯SQL中,编写SQL聚合请求很容易:完整的数据集(存储在数据库中)可用。

但是在Spring Batch工作中,一切都在内存中完成,并在分块中传播。 那么如何处理这种数据?

您对插入聚合步骤/流程的最佳做法有任何建议吗?

对你的启发很重要

1 个答案:

答案 0 :(得分:4)

春季批次中有Partitioning个选项可以StepExecutionAggregator,它有聚合方法,可以接受所有分区步骤的StepContext列表。

我们与肥皂服务器集成,我们首先收到了需要处理的内容列表,而不是将它分区为子步骤并且并行处理,并且在每个子步骤完成后调用聚合器,可以根据数据执行操作在儿童步骤环境中。

如果您的数据中有一些可以作为分区的好规则(例如从DB中提取项目列表并并行处理每个项目,在步骤上下文中保存项目数据,使用聚合器并将每个项目中的所有内容组合在一起)步骤上下文并对组合数据执行常见操作。)

以下是link示例分区(没有聚合,但您可以将其添加到masterStep)。