Java 将数据从PostgreSQL迁移到MongoDB

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条记录/小

我必须将500万条记录从
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天生就更快。