如何使用 Talend Open Studio 处理数百万条 MongoDB 记录并将其插入 Postgres

Posted

技术标签:

【中文标题】如何使用 Talend Open Studio 处理数百万条 MongoDB 记录并将其插入 Postgres【英文标题】:How to process and insert millions of MongoDB records into Postgres using Talend Open Studio 【发布时间】:2020-11-16 18:25:00 【问题描述】:

我需要处理来自 MongoDb 的数百万条记录,并使用 ETL 管道将这些数据插入 PostgreSQL 数据库。但是,在我尝试过的所有方法中,我不断收到内存堆空间异常。这是我已经尝试过的 -

    尝试使用 tMongoDBInput 连接到 MongoDB,并放置一个 tMap 来处理记录并使用到 PostgreSQL 的连接输出它们。 tMap 无法处理。

    尝试将数据加载到 JSON 文件中,然后从文件中读取到 PostgreSQL。数据被加载到 JSON 文件中,但从那里得到了相同的内存异常。

    尝试在设置中为作业增加RAM,并再次尝试以上两种方法,仍然没有变化。

我特别想知道是否有任何方法可以流式传输这些数据或批量处理它以解决内存问题。

另外,我知道有一些组件处理 BulkDataLoad。任何人都可以确认这是否有帮助,因为我想在插入之前处理记录,如果是,请指出正确的文档类型来进行设置。

提前致谢!

【问题讨论】:

尝试使用 tPostgresqlOutputBulk 和 tPostgresqlBulkExec 组件 谢谢 NickW,我试过了,但是我从 MongoDb 获得的输出文件是一个 JSON 文件,我找不到将它与 tPostgresqlBulkExec 一起使用的方法。可以使用 CSV,但想知道它是否可以使用 JSON。 【参考方案1】:

正如您已经尝试了所有可能性,我可以看到满足此要求的唯一方法是将已完成的工作分解为多个子作业或基于关键列或日期列进行增量加载,将其视为一个-现在的时间活动。 如果有帮助,请告诉我。

【讨论】:

谢谢@vikram kumar。您能否提供一些增量负载的示例,我认为它适合我的场景。不,这不是一次性活动,但会持续一段时间。

以上是关于如何使用 Talend Open Studio 处理数百万条 MongoDB 记录并将其插入 Postgres的主要内容,如果未能解决你的问题,请参考以下文章

Talend Open Studio:脚本语言与 Microsoft SSIS

在 Talend Open Studio 中删除作业发布

tCosmosDBConnection 组件未在 Talend Open Studio for Data Integration 中显示

tMatchGroup 在 Talend Open Studio for Big Data 中的位置

Talend Open Studio - tssh 失去与主要工作的连接

Talend Studio - 在元数据中搜索以获取创建的所有查询