Java 将数据从PostgreSQL迁移到MongoDB
我必须将500万条记录从Java 将数据从PostgreSQL迁移到MongoDB,java,node.js,mongodb,postgresql,database-migration,Java,Node.js,Mongodb,Postgresql,Database Migration,我必须将500万条记录从PostgreSQL迁移到MongoDb 我也尝试过使用mongify,但由于它在ruby上运行,我对ruby一点也不熟悉,因此无法解决它带来的错误 因此,我尝试自己在node.js中编写一个代码,首先将PostgreSQL数据转换为JSON,然后将该JSON插入mongoDb。 但是,这失败了,因为它消耗了大量的RAM,并且最多只能迁移13000条记录 然后我想到用Java编写代码,因为它的垃圾收集器。它在RAM利用率方面运行良好,但速度非常慢(大约10000条记录/小
PostgreSQL
迁移到MongoDb
我也尝试过使用mongify
,但由于它在ruby
上运行,我对ruby一点也不熟悉,因此无法解决它带来的错误
因此,我尝试自己在node.js
中编写一个代码,首先将PostgreSQL数据
转换为JSON
,然后将该JSON插入mongoDb
。
但是,这失败了,因为它消耗了大量的RAM,并且最多只能迁移13000条记录
然后我想到用Java
编写代码,因为它的垃圾收集器。它在RAM利用率方面运行良好,但速度非常慢(大约10000条记录/小时)。以这种速度迁移数据需要几天的时间
那么,有没有一种更高效、更快的方法?python程序会比Java程序快吗?或者有没有其他现成的工具可以用来做同样的事情
我的系统配置是:
操作系统-Windows 7(64位),
RAM-4GB,
i3处理器看来我来晚了。然而,有一天,这可能会对某些人有用 以下基于python的迁移框架应该会派上用场 根据您的性能,每个JSON对象的迁移都是动态的,当您使用上述框架时,不应该出现任何内存锁定问题
希望能有帮助 你在使用bulkInsert吗?@RahulKumar不,我正在从Postgresql获取行,然后逐个插入Mongodb。因为RAM不支持将所有500万条记录转换为JSON格式。所以,我正在做db.collection.insert(jsondata),这样您就可以一次从postgresql获取所有500万行,然后逐个进入mongodb?在任何情况下,您都可以寻找批处理。您可以从pg读取每个记录200条(取决于记录的大小)。转换这些,不要插入。然后同时使用多个线程执行此操作?我认为您可以使用postgresql中的skip And limit创建一批1000条记录,并处理这些1000条记录,然后在这些1000条记录上使用bulkinsert并循环执行此批处理,直到所有记录都完成。大部分时间用于连接postgresql和mongodb。java天生就更快。