一、需求说明
将源表(T_USER)中的用户信息抽取并且将性别进行转换后(由男女转换为0,1表示)装载到目标表(T_USER_T)中。
这是源表、中间表和迁移后表的数据对比
二、数据库说明
--源表 CREATE TABLE T_USER ( FID VARCHAR2(8), -- ID F_NAME VARCHAR2(32), -- 名称 F_SEX VARCHAR2(8) --性别 );
--映射表 CREATE TABLE T_MAP ( FID VARCHAR2(8), -- ID F_SEX VARCHAR2(8), --性别 F_SEX_MAP VARCHAR2(2) --性别映射值(0女;1男) );
--目标表 CREATE TABLE T_USER_T ( FID VARCHAR2(8), -- ID F_NAME VARCHAR2(32), -- 名称 F_SEX VARCHAR2(2) --性别 (0女;1男) ); |
三、启动kettle
双击 Spoon.bat 就能启动 kettle 。
四、创建转换
打开 kettle,点击 :文件->新建->转换。
在左边 DB 连接处点击新建。
根据提示配置数据库,配置完成后可以点击测试进行验证,这边以 Oracle 为例。
输入“连接名称”(自定义输入即可),输入“主机名称”、“数据库名称”、“端口号”、“用户名”、“密码”。输入完成后可点击测试,检查是否连接成功。
右击刚刚新建的数据源,点击共享,就可以把刚刚新建的数据源共享出去,供以后的转换使用。
在左侧找到表输入(核心对象->输入->表输入),拖到右方。
双击右侧表输入,进行配置,选择数据源,并输入 SQL。可以点击预览进行预览数据。
按照上面的步骤再拖入一个“表输入”控件获取映射表数据,由于存在重名字段所以需要设置别名便于区别,如下所示:
在左侧找到“记录关联”(核心对象->连接->记录关联),拖到右方。按住 Shift 键,把源表、映射表和记录关联用线连接起来。
双击记录关联进行配置。增加俩表的对应条件(源表/映射表F_SEX字段数据对号入座)
在左侧找到“表输出”(输出->表输出),拖到右方。按住 Shift 键,把目标表和记录关联用线连接起来。
双击表输出进行配置。选择数据库连接,输入目标表名称,选择指定数据库字段,点击获取字段,将目标表字段跟上一步骤返回的流字段进行匹配。
点击运行,就可以运行这一个转换。
运行结束后,我们可以在下方看到运行结果,其中有日志,数据预览等。这样就完成了一个最简单的转换,从一个表取数据通过字段映射,插入到另一个表。
五、创建作业
如果想要定时运行这个转换,那么就要用到作业。
1. 新建一个作业
2. 从左侧依次拖动 START 、转换、成功到右侧,并用线连接起来
3. 双击 START,可以配置作业的运行间隔,这边配置了每小时运行一次。
4. 双击转换,选择之前新建的那个转换。
点击运行,就能运行这次作业,点击停止就能停止。在下方执行结果,可以看到运行的日志。这样就完成了一个最简单的作业,每隔1小时,将源表的数据迁移到目标表。
六、总结
kettle 是一个非常强大的 ETL 工具,通过图形化界面的配置,可以实现数据迁移,并不用开发代码。通过它的作业,kettle 能自动地运行转换。
至此介绍结束,如果大家还想深入学习,可以扫描下图关注本人公众号,本人将在上面分享更多关于kettle的学习资料。