使用Spring Batch应用流口水规则

时间:2019-05-13 00:05:08

标签: spring-batch drools

在某些情况下,我必须在应用业务规则后从一个数据库获取数据并将数据更新到另一个数据库。

我想使用spring 批处理+ drools +休眠

我们可以一次应用数百万条记录吗?

1 个答案:

答案 0 :(得分:0)

我不是流口水的专家,我只是想提供一些有关Spring Batch的知识。

Spring Batch是一个 Read-> Process-> Write 框架,我们对Drools所做的操作与我们在Spring Batch的 Process 步骤中所做的相同,即,我们进行了转换ItemProcessor中的已读项目。

Spring Batch如何通过实现面向块的处理来帮助您处理大量项目,即,我们一口气读取了N个项目,在Processor中一一转换这些项目,然后编写编写器中的大量项目-通过这种方式,我们基本上减少了数据库调用的数量。

如果可以按照某些标准对数据进行分区,则可以通过分区等方式实现并行性,从而进一步提高性能。

因此,我们批量读取项目,一个接一个地转换,然后批量写入目标数据库,我不认为休眠是在写入步骤进行批量更新/插入的好工具-我会采用纯JDBC。

您的流口水会在转换步骤中显示出来,这将成为您的自定义代码,其性能与Spring Batch无关,即您如何初始化会话,预编译规则等。您将必须以这样一种方式插入此代码,即您不必每次都初始化drools session等,但这应该是一次活动。