Spring batch 在批处理输出中处理大型数据集

Spring batch 在批处理输出中处理大型数据集,spring-batch,Spring Batch,我有一个用例,对于每个输入记录(由Itemreader返回),处理器将产生数百万行(巨大的数据集),这些行需要保存在数据库表中 我试图处理ItemWriter中的所有插入,但在它到达步骤的ItemWriter之前,我的内存就用完了。我的工作只有一步 如何在spring批处理步骤中将大数据集的持久性作为输出处理 注意:本地分块是我在这里不能使用的东西,因为只有一条记录失败了你的意思是处理器在处理第一条读卡器记录时内存不足吗?处理器为一条读卡器记录创建了100万条记录。我希望使用ItemWriter

我有一个用例,对于每个输入记录(由Itemreader返回),处理器将产生数百万行(巨大的数据集),这些行需要保存在数据库表中

我试图处理ItemWriter中的所有插入,但在它到达步骤的ItemWriter之前,我的内存就用完了。我的工作只有一步

如何在spring批处理步骤中将大数据集的持久性作为输出处理


注意:本地分块是我在这里不能使用的东西,因为只有一条记录失败了

你的意思是处理器在处理第一条读卡器记录时内存不足吗?处理器为一条读卡器记录创建了100万条记录。我希望使用ItemWriter将100万行写入数据库。但处理器在创建这些对象集合时会耗尽内存。我不能在处理器和写入程序之间批处理,因为分块不起作用。您有多少条输入记录?解决方案可能取决于输入记录的大小。输入记录只有几个100。只需重新迭代1条输入记录,处理器逻辑将生成100万个输出事务。如果我能为1个输入记录处理器解决这个问题,应该足够好。你的意思是处理器在处理第一个读卡器记录时内存不足吗?处理器为一个读卡器记录创建100万条记录。我希望使用ItemWriter将100万行写入数据库。但处理器在创建这些对象集合时会耗尽内存。我不能在处理器和写入程序之间批处理,因为分块不起作用。您有多少条输入记录?解决方案可能取决于输入记录的大小。输入记录只有几个100。只需重新迭代1条输入记录,处理器逻辑将生成100万个输出事务。如果我能为1个输入记录处理器解决这个问题,应该足够好了