使用Spring Batch进行数据迁移

时间:2014-01-15 13:19:39

标签: spring spring-batch

我正在迁移已经写入Spring批处理的java应用程序。该应用程序将在2个不同的环境中进行数据迁移。该应用程序的设计如下

1)根据某个标志从源DB读取一组用户ID。

2)从每个用户的源环境中的3个不同数据库中读取用户特定数据。

3)为每个用户在目标数据库中写入数据。

我还需要实现并行处理,以便一次运行10个或更多线程,每个线程将负责迁移单个用户的数据。

我是spring的新手,因此在查看配置xml的结构时遇到问题。我正在考虑先读取用户标识集的步骤,然后将其传递给第二步,该步骤将负责读取用户特定数据并编写它。但是我在实施同样的问题时遇到了问题。如果有人可以在春季批处理的情况下建议我使用相同的结构,并通过并行处理

,这将对我有所帮助

1 个答案:

答案 0 :(得分:0)

我希望这是一个单步的工作:

<job>
    <step id="step1">
        <tasklet>
            <chunk reader="flagReader" processor="userSpecificDataProcessor" writer="databaseWriter" commit-count="10"/>
        </tasklet>
    </step>
</job>

flagReader将根据标志读入用户ID,处理器将按id查找额外数据并构建填充该数据的相应对象。编写器会将结果对象写入数据库。

关于并行化的要求,请查看分区步骤。我首先从基础知识开始,然后解决它们的并行化问题(一旦你运行基本工作就很容易添加)。