采用 Kettle 分页处理大数据量抽取任务
作者:Grey
原文地址:
需求
将Oracle数据库中某张表历史数据导入MySQL的一张表里面。
源表(Oracle):table1
目标表(MySQL):table2
数据量:20,000,000
思路
由于服务器内存资源有限,所以,无法使用Kettle一次性从源表导入目标表千万级别的数据,考虑采用分页导入的方式来进行数据传输,即:
根据实际情况设置一个每次处理的数据量,比如:5,000条,然后根据总的数据条数和每次处理的数据量计算出一共分几页,
假设总数据量有:20,000,000,所以页数为:20,000,000/5,000=4,000页
注: 若存在小数,小数部分算一页,比如:20.3算21页
步骤
根据需求的条件,首先对数据进行分页:
数据量:20,000,000
每页数据量:5,000
页数:4,000
源

本文介绍了如何使用Kettle工具进行大数据量的分页处理,以解决内存限制问题。在从Oracle数据库的table1向MySQL的table2导入20,000,000条数据时,采用每页5,000条的策略,总共分为4,000页。主要流程包括构建页数游标(build_query_page.ktr)和根据页数执行数据导入(loop_execute.kjb),其中execute_by_page.ktr利用Oracle的三层嵌套分页算法进行数据抽取。该方法有效解决了大数据量迁移的问题。
6249

被折叠的 条评论
为什么被折叠?



