在使用ETL工具kettle做数据导入的时候,如果数据量比较大,如果不使用分页导入数据,因为一次性加载数据量太大,会导致内存溢出错误,所以使用适当的分页,可以避免此错误的出现。
实现的思路是,先把分页的初始条件设置为变量, 然后判断分页条件是否符合,如果不符合,则直接退出,如果符合,则继续导入,本次导入完成之后,执行控操纵,然后再次到分页条件判断,一词进行,直到最后一页导入完成。下次判断就会返回false,直接跳到成功步骤。
整体的job如下图,对错误忽略不做处理
具体步骤: 这里使用的是增量更新,所以会使用分割的字段,这里使用的是记录的创建时间
设置分页变量
在设置变量的时候,【变量活动类型】设置为【Valid in the parent job】
编写数据抽取并导入到目标数据库表中的转换 这里的数据抽取要加上分页条件
到这里,一个循环分页的数据抽取导入的job就完成了,本文 只是作者在使用中的一次可行性尝试,如有不正确还请留言讨论。
转载请注明出处,谢谢!
新闻热点
疑难解答