使用Kettle循环处理数据(方式一)

目的:将下面两张原始表(需提前建好)中的数据循环的导入目标表(需提前建好)中

原始表1:school。字段:id、school。======> 目标表:school_kettle
原始表2:school1。字段:id、school。======> 目标表:school1_kettle

准备素材:

Excel中的内容(指定了原始表、目标表的映射关系,以及需要的字段):
在这里插入图片描述

1、loop1_step1转换流程:

在这里插入图片描述
详细配置如下:

(1)“从结果获取记录”组件

字段名称”需要手动填写
在这里插入图片描述

(2)“设置变量”组件:

只有在点击“获取字段”时,变量名才会是大写的。“变量活动类型”选择“Valid in the root job
在这里插入图片描述

2、loop1_step2转换流程:

详细配置如下:

(1)“表输入”组件:

记录数量限制: 限制要查询的数据记录数,0表示没有限制。
在这里插入图片描述

(2)“表输出”组件

在这里插入图片描述

3、loop1_job1作业流程:

在这里插入图片描述
详细配置如下:

(1)“转换”1组件:

在这里插入图片描述

(2)“转换”2组件:

在这里插入图片描述

4、loop1_step3转换流程:

在这里插入图片描述
详细配置如下:

(1)“Excel输入”组件:

在这里插入图片描述
指定Excel中的字段
在这里插入图片描述

(2)“复制记录到结果”组件

在这里插入图片描述

5、loop1_job2作业流程:

在这里插入图片描述
详细配置如下:

(1)“转换”组件:

在这里插入图片描述

(2)“作业”组件:

必须勾选“执行每一个输入行”,否则,只会给第一条映射关系的表里导入字段
在这里插入图片描述

总结:

1、关于“设置变量

设置变量”这个组件很特殊,只有将他与需要用到的 组件 分别放到不同的 转换 里面,然后将这两个转换放到一个 job 里面,才会实现所谓的循环读取“ 设置变量 ”这个组件里的内容(逐行读取)。类似于 loop1_step1 转换流程中“ 设置变量 ”之后,在loop1_step2 转换流程中的“ 表输入 ”使用了“ 设置变量 ”里面的内容。最后将这两个组件一起放到一个 job 里面,才会循环的迁移表数据。

2、关于“占位符

${变量} 这种占位符只能与“ 设置变量 ” 搭配使用(可以与“ 设置变量 ” 这个组件搭配使用。也可以与具体的转换里面“ ①转换属性/作业属性 ”—“ 命名参数 ”搭配使用),但是这种搭配无法实现循环。而“ ? ” 占位符可以随意使用。比如在“ 执行sql脚本 ”中的 SQL 语句中,就可以使用

①双击具体的转换或者作业空白处,就可以调出“ 转换属性/作业属性

使用Kettle循环处理数据(方式二)

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Kettle循环抽取表数据的步骤如下: 1. 首先,你需要创建原始表和目标表。原始表可以是school和school1,目标表可以是school_kettle和school1_kettle。这些表需要在Kettle中提前建好。 2. 第二步是使用分页行号节点来获取分页的数值。你可以使用以下SQL语句来实现这一步骤: ``` SELECT a.rownum FROM (SELECT @rownum:= @rownum + 1 AS rownum, m.* FROM (SELECT @rownum := 0) t,`palm_clinic_payment_bill` m) a WHERE a.rownum <= ? ``` 这个SQL语句会返回分页的行号。 3. 如果你获取不到字段或者字段比较多,可以使用一个小技巧。将上一步的分页查询的SQL中的变量替换成数字1,表示查询第一页。这样你可以直接运行这个SQL语句,然后在表输出的时候获取全部的字段。这样就不用一个个选择字段了。在填写数据库字段、表字段和流字段时,记得将上一步的SQL还原。 这样,你就可以在Kettle循环抽取表数据了。希望对你有帮助!\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [使用Kettle循环处理数据方式一)](https://blog.csdn.net/qq_45083975/article/details/121848746)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v12^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Kettle分页循环抽取全量数据,三步搞定](https://blog.csdn.net/GordoHu/article/details/129703977)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v12^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值