5
回答
kettle 表输入 mysql如何实现分页读取数据?
滴滴云服务器,限时包月0.9元,为开发者而生>>>   

在两个mysql库,同名表之间传输数据,表大小大约9G,如何配置kettle的表输入可以分页呢?

不配置分页报内存溢出,该怎么处理?

举报
debugable
发帖于1年前 5回/664阅

引用来自“fellow99”的评论

kettle本身就是分批次处理数据的 几百万条记录不会一次过加载到内存(除非你加了阻塞)
我调整了kettle启动参数,-xms2048M,仍然报内存溢出呢?
你说的分页不知道有没有,好久没用了。以前处理这类问题的时候都是 增量法或者分批次处理的,不要一次加载完,做一个任务,每次抽取一定的量,分批次抽取
9g的表应该是10亿级的数据量了 不过不管你是10亿还是10条 都不用手工做分页处理 kettle会自动分批的 拿个万把条记录的表试试 发现它是1000条1000条的(取决于你的表输出设置批量提交设置了1000) 不过这么大的数据量要注意很多问题会影响内存 例如日志一定要设置为basic以下
--- 共有 1 条评论 ---
debugable回复@fellow99 : 没有那么大的数据,是因为表里面有大字段了 1年前 回复

楼上说的应该都是直接表输入表输出吧,没有试过带有排序、对比等中间步骤的吧,等你试过了就知道楼主问的这个问题必然是要解决的。我的解决方法是作了几个转换,然后做一个JOB,其中一个转换就是写的sql将数据按批次来进行读取,然后由这个JOB统一进行控制,进行传参

顶部