![](https://i-blog.csdnimg.cn/blog_migrate/66f1bc68aac3d254c30776a17ed6bb8d.png)
需求:
- 将MySQL中的数据进行
分页抽取
;- 将分页抽取的数据插入到另一个MySQL表中。
整体架构
- 第一步,
build_query_page
查询所有的页码,将页码保存到结果; - 第二步,
set_values
从结果中获取页码,将页码设置为环境变量; - 第三步,
execute_by_page
从环境变量中获取页码,根据页码,循环获取每页数据并输出到表中。
1.主流程
transfer_table1_to_table2.kjb
![](https://i-blog.csdnimg.cn/blog_migrate/2f64f0e8f07860fb401ff81981ddddf0.png)
2.页数查询
build_query_page.ktr
![](https://i-blog.csdnimg.cn/blog_migrate/fe1334d7e07417cfb18333ec78877505.png)
2.1 input_page
![](https://i-blog.csdnimg.cn/blog_migrate/d696b6df6dd5ce18078fa98a3fd87b09.png)
-- 每页30000条数据,查询页码
SELECT
t.P_PAGE
FROM (SELECT (@rowNum:=@rowNum+1) P_PAGE FROM t_kettle_test t, (select (@rownum :=0) ) b) t
WHERE t.P_PAGE <= (SELECT CEIL(COUNT(*) / 30000) FROM t_kettle_test t)
2.2 字段选择
![](https://i-blog.csdnimg.cn/blog_migrate/672035031fae2876e2836e7eb3e125c8.png)
![](https://i-blog.csdnimg.cn/blog_migrate/13aa41ff50d377ad58139381f27d3e60.png)
2.3 复制记录到结果字符串
![](https://i-blog.csdnimg.cn/blog_migrate/548201d2a679bd211c90321be577742a.png)
3.循环分页查询、插入
loop_execute.kjb
![](https://i-blog.csdnimg.cn/blog_migrate/998db1806b05886de00745bbd30d735e.png)
3.1 set_values.ktr
![](https://i-blog.csdnimg.cn/blog_migrate/e300dd431fba2689cecda55f9d45465a.png)
3.1.1 get_page
(从结果获取页码)
![](https://i-blog.csdnimg.cn/blog_migrate/c73b5d60b12b834b685eb20a090a088b.png)
3.1.2 set_param
(将页码设置为环境变量)
![](https://i-blog.csdnimg.cn/blog_migrate/cd063f9585daa1f892fc0d4b0f94b070.png)
3.2 execute_by_page.ktr
![](https://i-blog.csdnimg.cn/blog_migrate/be152d828341b5af669c682a3c81ff8a.png)
3.2.1 获取变量
(获取之前设为环境变量的页码)
![](https://i-blog.csdnimg.cn/blog_migrate/9e9778dbd02ce8556b938f938ebba179.png)
3.2.2 query_by_page
(根据页码分页查询数据)
![](https://i-blog.csdnimg.cn/blog_migrate/b13db1bed7ae9a2946392e7c9b7fa156.png)
-- 每页30000条数据,查询数据
SELECT t.* FROM (SELECT
(@rowNum:=@rowNum+1) rowNum, page.pageNum, t.*
FROM t_kettle_test t, (select (@rownum :=0) ) row, (select ? pageNum) page) t
WHERE t.rowNum > (t.pageNum - 1) * 30000 AND t.rowNum <= t.pageNum * 30000
3.2.3 select_fields
(筛选想要更新的字段)
![](https://i-blog.csdnimg.cn/blog_migrate/91baadde32ecb035b167567e644ce2d9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a5b7c88d8fbc919562e9d5e2404e80f9.png)
3.2.4 output_target
(将查询到的数据输出到目标表里面)
![](https://i-blog.csdnimg.cn/blog_migrate/bf11d68de3b6091934de6a9249dd98bc.png)
4.执行
执行成功,结果如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/d687654c7fdd54d03dd1077764ab9a9f.png)
代码下载地址:
https://download.csdn.net/download/qq_33204709/18714766
参考地址:(文章略有改动)
https://www.cnblogs.com/greyzeng/p/5524614.html