【发布时间】:2014-03-21 16:32:33
【问题描述】:
我使用 Spring 和 Spring Data JPA 编写了一个小的可执行 jar 来从数据库迁移数据,将对象从原始数据库(通过几个表)转换为新数据库的有效对象,然后将新对象插入新数据库。
问题是:我处理大量数据(200 000)并且一个一个地插入真的很耗时(1小时,所有时间都花在验证/转换传入数据后发生的插入操作上,它不用于从原始数据库检索或验证/转换)。
我已经有建议了:
[编辑因为我没有解释清楚] 因为我正在做 extract-validate-transform-insert,做我的插入(这是有效的 因为它们首先被验证)X 个对象由 X 个对象(而不是 一一插入)。 这是一开始的建议 回答:试过了,但效率不高,还很费时间。
不是直接保存在数据库中,而是将插入保存到 .sql 文件中,然后将文件直接导入数据库中。但是如何将 myDao.save() 转换为最终的 SQL 输出,然后将其写入文件。
使用 Talend:知道可能是最好的方法,但时间太长,无法重新做所有事情。我想找到一种使用 java 的方法并重构我的 jar。
其他想法?
注意:重要的一点是,如果一个验证失败我想继续处理其他数据,我只会记录一个错误。
谢谢
【问题讨论】:
标签: java mysql sql spring hibernate