java - 如何从mongodb中逐 block 读取数据并写入postgres

标签 java mongodb postgresql spring-boot

我有一个正在生产中运行的 mongo 数据库。我想将数据从 MongoDB 移动到 Postgres 以满足某些迁移需求。

现在谈到数据部分,我打算编写一个实用程序,它将从 MongoDB 读取数据并写入 Postgres。

这里我想从 mongo 数据库(包含 240335 行)读取所有数据到 Postgres。

我无法在应用程序中将整个数据读入内存。我想批量读取 10000,然后进行一些修改,然后将它们写入 Postgres,然后再次读取下一个 10000,再次重复此操作。

我该怎么做?

最佳答案

我没做过,不过我觉得,你可以用游标分别上传记录。 问题 - 解决方案效率低下。

例子

var myCursor = db.bios.find( );
var myDocument = myCursor.hasNext() ? myCursor.next() : null;

if (myDocument) {
    var myName = myDocument.name;
    print (tojson(myName));
    //put record to db or add to batch, and upload if 1000 in collection
}

也许你可以使用流?我不知道流是否可以在 MongoDB 中使用。

关于java - 如何从mongodb中逐 block 读取数据并写入postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53428021/

相关文章:

mongodb - 聚合因内存错误而失败

postgreSQL:jsonb遍历

java - 如果您尝试在完整数组中排队,循环数组是否会覆盖当前数字?

JavaFX 在 css 中设置不可编辑文本字段的外观

mongodb - MongoDB 服务因服务特定错误而终止无法创建另一个系统信号量

postgresql - 兼容性 centos 7.9 和 postgresql

python - Django Postgres 连接池

java - 在 iOS7 中编码 UIImage 并在 Java 中解码(Base64)

java - 在 Message source Spring 中处理 no such messageexception

mongodb - 如何使用 mongo-go-driver 从结构转换为文档