kettle 表输入 mysql如何实现分页读取数据?
在两个mysql库,同名表之间传输数据,表大小大约9G,如何配置kettle的表输入可以分页呢?
不配置分页报内存溢出,该怎么处理?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
在两个mysql库,同名表之间传输数据,表大小大约9G,如何配置kettle的表输入可以分页呢?
不配置分页报内存溢出,该怎么处理?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
楼上说的应该都是直接表输入表输出吧,没有试过带有排序、对比等中间步骤的吧,等你试过了就知道楼主问的这个问题必然是要解决的。我的解决方法是作了几个转换,然后做一个JOB,其中一个转换就是写的sql将数据按批次来进行读取,然后由这个JOB统一进行控制,进行传参
回复
没有那么大的数据,是因为表里面有大字段了
9g的表应该是10亿级的数据量了 不过不管你是10亿还是10条 都不用手工做分页处理 kettle会自动分批的 拿个万把条记录的表试试 发现它是1000条1000条的(取决于你的表输出设置批量提交设置了1000) 不过这么大的数据量要注意很多问题会影响内存 例如日志一定要设置为basic以下
你说的分页不知道有没有,好久没用了。以前处理这类问题的时候都是 增量法或者分批次处理的,不要一次加载完,做一个任务,每次抽取一定的量,分批次抽取
引用来自“fellow99”的评论
kettle本身就是分批次处理数据的 几百万条记录不会一次过加载到内存(除非你加了阻塞)
kettle本身就是分批次处理数据的 几百万条记录不会一次过加载到内存(除非你加了阻塞)