Kettle使用_26 根据增删改标识处理数据
需求:已知数据的状态标签(insert、update、delete)利用kettle对其进行相应的操作。
解决方法:主要通过过滤记录组件来解决如上问题。
Previous work:
数据库(以mysql为例)里准备源数据,表结构与数据见下:
DROP TABLE tb_user;
CREATE TABLE tb_user(
id integer,
name varchar(12)
);
TRUNCATE TABLE tb_user;
INSERT INTO tb_user VALUES(1,'上海');
INSERT INTO tb_user VALUES(2,'北京');
INSERT INTO tb_user VALUES(3,'深圳');
Step1:新建个转换
Step2:拖个自定义常量组件,并定义结构和数据。
元数据:
数据:
Step3:拖个过滤记录组件,命名为“是否新增”,通过SHIFT使得自定义数据常量与该组件关联,并配置过滤记录如下:
配置过滤记录(这里的删除标记字段和是否删除分别对应下文的组件),该组件命名为“是否新增“:
Step4:拖个字段选择组件,命名为删除标记字段,并配置选择字段组件。再拖个文本文件输出组件,并配置。
SHIFT连接是否新增与删除标记字段组件,注意这里是为TRUE时选择。
在移除里配置字段名
配置文本文件输出路径和字段。
Step5:同理拖个过滤记录,其名称为“是否删除”,
Step6:拖个删除组件,该组件位于转换的输出分类下,SHIFT连接“是否删除组件”与删除组件。
Step7:同理拖个过滤记录,其名称为“是否更新”,SHIFT连接“是否删除“与该组件,并配置如下:
Step8:拖个更新组件,该组件位于转换的输出分类下,SHIFT连接“是否更新”与更新组件。配置更新组件见下:
Step9:保存、运行、验证该转换。
完整的流程示意见下: