【发布时间】: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。
标签: mongodb postgresql bigdata talend