我正在开发一个春季批处理作业,需要从4个不同的数据库(不同的服务器)中读取。
过程进行如下操作
1)从db1中读取记录
2)用db2中的信息过滤掉一些
3)使用db3中的信息过滤更多
4)使用db4中的信息过滤更多
5)将过滤的记录保存到db5
要从 db1 中进行读取,我可以使用ItemReader(并在步骤中提供块值),然后使用多链处理器进行过滤,然后使用JpaItemWriter。
我认为上述方法的问题是,假设我从db1获得 100,000条记录,我需要查询db2,db3,db4 100,000次,因为将为每个项目调用ItemProcessor。 / p>
1)我认为,如果为每个记录块而不是1个记录调用处理器,将解决问题。
2)或者,如果我可以链接Spring读取器,以便一个读取器将数据(逐块)传递给其他读取器,那么我可以根据其他数据库中的信息进行过滤,最后传递给处理器
但是我不确定还是无法找到一种方法来实现我想到的上述解决方案。
这些解决方案是否足够好?,如果可以的话,我该如何实现呢?
或者还有其他实现方法吗?
编辑:此question可能是重复的,但是该问题的解决方案无法解决我的问题。
因为我要读取两个以上的数据库,而且如果我以writer的write方法编写过滤逻辑,那么它看起来像是黑客,因为writer并不意味着要进行任何数据丰富/过滤。