案例介绍:

通过Kettle工具将对数据表company进行不一致数据的转换操作,即通过与供货商提供的标准价格表进行比较,得出不一致数据,从而进行修改,最终输出到数据表company中。

案例实现:

数据准备

A公司和B公司销售的手机均从同一个供货商手里采购,因此,同一品牌型号的手机,售价也应相同。但是,数据表company中存在同一品牌型号的手机,售价却不同。如id为14,18的这两条数据价格字段(unitPrice)与id为20的数据的价格字段不同。

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

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

2.配置表输入控件

双击“表输入”控件,进入“表输入”配置界面。单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。MySQL数据库连接的配置,具体如图所示。

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

3.配置表输入2控件

双击“表输入2”控件,进入“表输入”配置界面。单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。MySQL数据库连接的配置,具体如图所示。

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

4.配置字段选择控件

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

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

5.配置表输入3控件

双击“表输入3”控件,进入“表输入”配置界面。单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。MySQL数据库连接的配置,具体如图所示。

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

6.配置记录集连接控件

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

7.配置字段选择2控件

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

8.配置插入/更新控件

双击“插入/更新”控件,进入“插入/更新”配置界面。单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。MySQL数据库连接的配置,具体如图所示。

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

9.运行inconsistent转换

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

10.运行inconsistent转换

通过SQLyog工具,查看数据表company是否已成功将数据表company中品牌型号相同、价格不同的数据修改成品牌型号价格均相同的数据,查看结果如图所示(只展示部分数据)。

6.2 不一致数据的转换相关推荐

  1. 获取minist数据并转换成lmdb

    caffe本身是没有数据集的,但在data目录下有获取数据的一些脚本.MNIST,一个经典的手写数字库,包含60000个训练样本和10000个测试样本,每个样本为28*28大小的黑白图片,手写数字为0 ...

  2. Vue表格中,对数据进行转换、处理

    众所周知,后端从Mysql取出的数据,一般是很难单独处理某一个Key的数据的(需要处理的话,可能会浪费大量的性能.而且对页面加载时间有很大的影响),所以,从数据库取出的数据.只能由前端进行处理.但是在 ...

  3. 如何从 Datagrid 中获得单元格的内容与 使用值转换器进行绑定数据的转换IValueConverter...

    一.如何从 Datagrid 中获得单元格的内容 DataGrid 属于一种 ItemsControl, 因此,它有 Items 属性并且用ItemContainer 封装它的 items. 但是,W ...

  4. 类选择器遍历赋值_利用反射实现配置表数据到类对象数据的转换

    在游戏开发中,配置表是不可少的.通常我们将一个类,做成一个配置表,将配置表每列的索引都和类的字段名严格对应起来. 先实例化一个类的对象,然后通过反射来遍历类中的字段,通过field.SetValue( ...

  5. JAVA对象JSON数据互相转换的四种常见情况

    这篇文章主要介绍了JAVA对象JSON数据互相转换的四种常见情况,需要的朋友可以参考下 1. 把java 对象列表转换为json对象数组,并转为字符串 复制代码代码如下:     JSONArray ...

  6. JavaScript数据容量单位转换(KB B MB GB....)

    数据容量单位转换(KB B MB GB....) function bytesToSize(bytes) {if (bytes === 0) return '0 B';var k = 1000, // ...

  7. ssis 数据转换_SSIS数据透视和SSIS数据透视转换概述

    ssis 数据转换 This article explores an SSIS Pivot transformation and SSIS Unpivot transformation for cre ...

  8. 数据的转换(shp sde mdb 之间的转换)

    数据的转换(shp sde mdb 之间的转换) 调用用下面的方法可以将要素类从sde导出到shp或者mdb 或者从三个中的任意一个导出到另外一个.方法是: /// <summary>   ...

  9. badatatable转成json_数据表转换成json(DatatableToJson)

    #region 转换Table为JSON数据 /// /// 转换Table为JSON数据 /// /// /// public static string TableToJson(DataTable ...

最新文章

  1. 厉害了,用Python绘制动态可视化图表,并保存成gif格式
  2. 疯狂ios讲义疯狂连载之游戏的状态数据模型
  3. Linq标准查询运算及用法
  4. axure9的中继器在哪编辑_Axure RP 9 教程—中继器实现筛选和排序
  5. 栈的应用--迷宫问题
  6. 【牛客 - 272B】Xor Path(树上操作,路径异或值)
  7. php 匹配关键字,php获取搜索引擎搜索关键词关键字的正则表达式实现方法
  8. 信安教程第二版-第19章操作系统安全保护
  9. SpringBoot 2 集成微信扫码支付
  10. ACM-线段树区间更新+离散化
  11. 关于【画面文言修正】 的 注意点。 (1.确认文字风格 2 从整体来去确认风格)
  12. 541.反转字符串||
  13. 冒泡排序算法详解之C语言版
  14. 超定方程组的最小二乘解
  15. RocksDB 入门
  16. JS实现项目查找功能
  17. uinty SkinnedMeshRenderer (二) batches 优化,模型合并网格贴图
  18. 【Linux】自动执行Mysql常用命令脚本
  19. 财会法规与职业道德【1】
  20. 异常org.apache.ibatibinding.BindingException: Invalid bound statement (not found): com.sxt.mybatis.map

热门文章

  1. 深度卷积神经网络之AlexNet
  2. 我如何使用smartwatch传感器限制covid 19感染
  3. 男女老少皆宜的15种瘦身食物,著名人生保健专家撰写
  4. RT-Thread 01线程调度与管理
  5. Mac 打印机打印乱码%! PS -Adobe -3.0 %!APL_DSL_Encoding:UTF8
  6. 八、PyQt5绘图技术
  7. 【源码分享】一键打开禅意生活——电子木鱼微信小程序源码分享
  8. 关于使用QML的MediaPlayer实现视频和音频的播放时遇到的一些坑
  9. C++:vector的push_back()与emplace_back()
  10. 不是你不懂黑盒攻击,而是你还不懂SurFree