我们必须将大量数据从 Web 服务、平面文件和其他外部来源导入生产数据库。我们正在使用 Spring Batch 来执行此操作。
主要问题之一是其中一些数据相互关联,但不会同时导入。另一个主要问题是数据量很大,所以我不能真正做一个巨大的事务,如果出现问题就回滚。
我怎么能那样做?
我们必须将大量数据从 Web 服务、平面文件和其他外部来源导入生产数据库。我们正在使用 Spring Batch 来执行此操作。
主要问题之一是其中一些数据相互关联,但不会同时导入。另一个主要问题是数据量很大,所以我不能真正做一个巨大的事务,如果出现问题就回滚。
我怎么能那样做?
最好的办法是将数据加载到正在运行的应用程序不使用的“保存”表中。然后查看在应用程序最不忙时使用SELECT INTO将数据复制到应用程序表中。
这种方法的优点是
假设您执行此操作时数据库未处于服务状态:备份数据库,关闭所有约束检查,导入数据,重新打开约束。如果一切都失败了,那么至少你有备份可以依靠。