2015-04-07 57 views
1

我需要在我的Spring批处理作业中插入聚合。 但是聚合步骤需要有整个数据集可用。Howto在Spring批处理作业中完整数据集合?

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

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

对于插入聚合步骤/过程的最佳实践,您有任何建议吗?

THX很多关于你的启示

回答

2

你必须在春季批次Partitioning选项,它可以有StepExecutionAggregator,它有它接受的所有分区步骤StepContext列表聚集方法。

我们已经与肥皂服务器进行了集成,我们首先收到了需要处理的东西的清单,而不是我们将其分区到子步骤并且在每个子步骤完成后处理完成后调用可以基于儿童步骤环境中的数据。

如果您的数据中包含某些可以用于分区的良好规则(即从数据库中拉出项目列表并将每个项目并行处理,在步骤上下文中保存项目数据,使用聚合器并将所有内容合并到一起)每个步骤上下文并对组合数据执行常见操作)。

这里是link例子与分区(没有聚合,但你可以将它添加到masterStep)。

+0

Thx Nenad!似乎是一个很好的轨道。 – SylvainR