文章目录
- 一、抽取的数据量特别大,2000万条数据,内存不能一次性加载出来时,可以采用分页查询的办法。构建分页、循环执行。
- 主体作业
- 1、build_query_page转换
- 1.1自定义常量数据,先确定元数据、然后确定数据
- 1.2字段选择,先确定字段名称、然后确定元数据
- 1.3复制记录到结果字符串
- 2、 loop_execute作业
- 2.1 设置变量转换
- 2.1.1从上一步获取结果
- 2.1.2增加常量
- 2.1.3 计算器1
- 2.1.4计算器2
- 2.1.5 设置变量
- 2.2 执行分页查询转换
- 二、作业的执行顺序
一、抽取的数据量特别大,2000万条数据,内存不能一次性加载出来时,可以采用分页查询的办法。构建分页、循环执行。
主体作业
双击loop_execute作业,设置对每个输入执行一次
具体做法:
1、build_query_page转换
1.1自定义常量数据,先确定元数据、然后确定数据
当然这里也可采用mysql查询出一个页码序列
SELECT help_keyword_id num
FROM mysql.help_keyword
HAVING num BETWEEN 1 AND 100
ORDER BY 1;
1.2字段选择,先确定字段名称、然后确定元数据
1.3复制记录到结果字符串
2、 loop_execute作业
2.1 设置变量转换
2.1.1从上一步获取结果
2.1.2增加常量
2.1.3 计算器1
2.1.4计算器2
2.1.5 设置变量
2.2 执行分页查询转换
转换的目的是为了将orcl中的NEW_TEST表中的数据部分更新,要与mysql中的STUDENT表进行关联,关联到student中的s_name,更新NEW_TEST中的NAME字段。
得出的结论是,kettle根本不适合不同库之间的关联,数据量小还好,太慢了。插入更新也慢得很。kettle最适合数据增量同步,表输出这种。最好的解决办法是把orcl的数据同步到mysql,在mysql关联查出出数据后再同步到orcl。