Talend-记忆问题。使用大文件

时间:2018-01-24 16:33:07

标签: memory split talend

在管理员开始吃我活着之前,我想在我的辩护中说我不能在原始出版物中发表评论,因为我没有权力,因此,我不得不再次询问这个问题。

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

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

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

a)Talend performance

#Kailash评论说,并行只是因为我必须订阅其中一个Talend Platform解决方案。我的评论/问题:因此没有其他类似的选项来并行化具有3Gb存档大小的作业吗?

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

#54l3d提到它可以选择将查找文件拆分为可管理的块(可能是500M),然后为每个块执行多个阶段的连接。我的评论/请求帮助/问题:我怎么能这样做,我不知道如何拆分查看,有人可以向我解释一点点图形

c)How to push a big file data in talend? 只是提到我也经历了“c”,但我对它没有任何评论。

我正在执行的工作(感谢#iMezouar)看起来像这样:

1)我有一个来自MySQL(3GB)数据库的inputFile MySQLInput

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

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

4)MySQLOutput

enter image description here

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

1 个答案:

答案 0 :(得分:3)

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