首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >记忆问题。处理大文件

记忆问题。处理大文件
EN

Stack Overflow用户
提问于 2018-01-24 16:33:07
回答 1查看 902关注 0票数 1

在管理员把我活活吃掉之前,我想为自己辩护,我不能在原来的出版物上发表评论,因为我没有权力,所以我不得不再问一次。

我在talend (Open for BIG !)中运行一个作业有问题。我有一个3GB的档案。我不认为这是太多,因为我有一台电脑有32 GB的RAM。

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

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

( a) Talend性能

#Kailash评论说,并行只是在我必须订阅平台解决方案之一的条件下。我的评论/问题:所以没有其他类似的选项来并行3Gb存档大小的作业?

( b) 内存错误的10GB输入和查找

#54l3d提到,将查找文件拆分为可管理的块(可能是500米),然后对每个块执行多个阶段的联接,这是一个选项。

如何在talend中推送大文件数据?只是提到我也读过"c“,但我对此没有任何评论。

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

1)我有一个inputFile MySQLInput来自MySQL中的DB (3GB)

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

3)使用tSplitRow将多个simmilar列的数据转换为一个列。

4) MySQLOutput

在这里输入图像描述

再次感谢你读我的话,加倍感谢你的回答。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-24 20:02:12

据我所知,您的查询返回了大量数据(3GB),这将导致作业中出现错误。我建议如下:

  1. 筛选数据库端的数据:将tSampleRow替换为tMysqlInput组件中的一个WHERE子句,以便在tMysqlInput组件中检索更少的行。
  2. 默认情况下,MySQL jdbc驱动程序会将所有数据检索到内存中,因此您需要在tMysqlInput的高级设置中使用stream选项来流行。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48427368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档