如何将大量数据导入生产数据库? (我们使用的是Java)

时间:2012-07-10 13:03:12

标签: java spring data-import

我们必须从Web服务,平面文件和其他外部源将大量数据导入生产数据库。 我们正在使用春季批次来做这件事。

其中一个主要问题是其中一些数据彼此相关,但不会同时导入。 另一个主要问题是存在大量数据,因此如果出现问题,我无法真正进行大量事务并回滚。

我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

假设在执行此操作时数据库不在服务器中:备份数据库,关闭所有约束检查,导入数据,重新打开约束。如果全部失败,那么至少你有备份可以依赖。

答案 1 :(得分:1)

最好的方法是将数据加载到正在运行的应用程序未使用的“保留”表中。然后,在应用程序最不忙的时候,使用SELECT INTO将数据复制到应用程序表中。

这种方法的优点是

  1. 将数据加载到保留表中对应用程序表没有锁定影响
  2. 根据您的数据库配置,SELECT INTO可以通过最少(或没有)写入事务日志来完成,从而使其非常高效