Talend- 内存问题。处理大文件

Talend- Memory issues. Working with big files

在管理员开始生吃我之前,我想为自己辩护,我不能在原版发表评论,因为我没有权力,所以我不得不再次询问这个问题。

我有问题 运行在 talend 中找工作(Open Studio for BIG DATA!)。我有一个 3 GB 的存档。我不认为这太多了,因为我有一台 RAM 为 32 GB 的计算机。

在尝试 运行 我的工作时,首先我得到一个与 堆内存问题 有关的错误,然后它变成了 垃圾收集器错误现在它甚至没有给我一个错误。(什么都不做然后停止)

我找到了这个解决方案并且:

a)

#Kailash 评论说并行只是在我必须订阅 Talend Platform 解决方案之一的条件下。我的 comment/question:所以没有其他类似的选项可以并行处理 3Gb 存档大小的作业?

b) Talend 10 GB input and lookup out of memory error

#54l3d 提到它可以选择将查找文件拆分为可管理的块(可能是 500M),然后对每个块执行多个阶段的连接。 我的 comment/cry for help/question:我该怎么做,我不知道如何拆分查找,有人可以更形象地向我解释一下吗

c) How to push a big file data in talend? 只是提一下,我也经历了 "c" 但我对此没有任何评论。

我正在执行的工作(感谢#iMezouar)如下所示:

1) 我有一个 inputFile MySQL 输入来自 MySQL (3GB)

中的数据库

2) 我使用 tFirstRows 使流程更容易(不工作)

3) 我使用 tSplitRow 将数据从许多类似的列转换为只有一列。

4) MySQL输出

enter image description here

再次感谢您阅读我的文章,并再次感谢您的回答。

据我了解,您的查询 returns 大量数据 (3GB),这导致您的工作出错。我建议如下:
1. 在数据库端过滤数据:将 tSampleRow 替换为 tMysqlInput 组件中的 WHERE 子句,以便在 Talend 中检索更少的行。
2. MySQL jdbc 驱动程序默认将所有数据检索到内存中,因此您需要使用 tMysqlInput 高级设置中的 stream 选项以流式传输行。