kettle实例–数据转换-不一致数据的转换

  • Post author:
  • Post category:其他


1.打开Kettle工具,创建转换

使用Kettle工具,创建一个转换inconsistent,并添加表输入控件、字段选择控件、记录集连接控件、插入/更新控件以及Hop跳连接线,具体如图所示。

2.配置表输入控件

双击“表输入”控件,进入“表输入”配置界面,具体如图所示。

创建数据库连接,在SQL框中编写查询数据表company中品牌型号不一致数据的 SQL语句,然后单击【预览】按钮,查看数据表company中品牌型号不一致数据是否成功从MySQL数据库中抽取到表输入流中,具体如图所示。

3.配置表输入2控件

双击“表输入2”控件,进入“表输入”配置界面。


创建数据库连接,在SQL框中编写SQL语句,查询出不一致数据在数据表suppliers中的全部信息;在“从步骤插入数据”的下拉框选择“表输入”步骤;勾选“执行每一行”处的复选框,用于将表输入控件流中的数据放入到SQL语句对应的参数位置,通过条件查询与数据表suppliers中的数据进行匹配,具体配置如图所示。

4.配置字段选择控件

双击“字段选择”控件,进入“选择/改名值”界面,并在“选择和修改”选项卡的“字段”处添加表输入2控件流中的所有数据字段,并将字段unitPrice改名成unitPrice1,具体如图所示。

选择“移除”选项卡,切换到“移除”选项卡界面,添加需要移除字段,这里添加的是字段id,由于后续操作不需要字段id,因此在此进行移除,具体如图所示。

5.配置表输入3控件

双击“表输入3”控件,进入“表输入”配置界面。


创建数据库连接,在SQL框中编写查询与标准价格表(供货商提供的价格表)中品牌型号不一致数据的SQL语句,然后单击【预览】按钮,查看数据表company中品牌型号不一致数据是否成功从MySQL数据库中抽取到表输入流中,具体如图所示。

6.配置记录集连接控件

双击“记录集连接”控件,进入“合并排序”界面。 在“第一个步骤”处的下拉框中选择“字段选择”控件,“第二个步骤”处的下拉框中选择“表输入3”控件,用于将“字段选择”控件流中的数据与“表输入3”控件流中的数据进行合并连接;在“第一个步骤的连接字段”和“第二个步骤的连接字段”处添加连接字段,这里添加的连接字段是brand、model,用于将“字段选择”控件流中的字段brand、model与“表输入3”控件流中的字段brand、model进行连接;在“连接类型”处的下拉框选择连接类型,这里选择的RIGHT OUTER,即右外连接,具体如图所示。


7.配置字段选择2控件

双击“字段选择2”控件,进入“选择/改名值”界面,并在“选择和修改”选项卡的字段名称处填写id和unitPrice1,用于在插入/更新控件中,通过唯一字段id修改对应的价格unitPrice1字段内容,具体如图所示。

8.配置插入更新控件

双击“插入/更新”控件,进入“插入/更新”配置界面,具体如图所示。

创建数据库连接,单击目标表右侧的【浏览】按钮,弹出“数据库浏览器”窗口,选择目标表company;单击【获取字段】按钮,用来指定查询数据所需要的关键字,也可通过手动输入,指定查询数据所需要的关键字,这里选择的是数据表company中的id字段和输入流里面的id字段;单击【获取和更新字段】按钮,用来指定需要更新的字,具体如图所示。

9.运行转换

单击转换工作区顶部的    按钮,运行创建的转换inconsistent,实现将数据表company中品牌型号相同、价格不同的不一致数据修改成品牌型号价格均相同的一致数据,具体如图所示。



版权声明:本文为fxxhmn原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。