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
选项以流式传输行。
在管理员开始生吃我之前,我想为自己辩护,我不能在原版发表评论,因为我没有权力,所以我不得不再次询问这个问题。
我有问题 运行在 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
选项以流式传输行。