相关概念

Kettle数据清洗是采用元数据(Meta-data)驱动,以数据流的方式进行的,数据从数据源(数据库/文件等)在一系列相连的step之间依次向后流动,各个step完成对流经该step的数据进行需要的处理工作。

Kettle中的数据转换组件按粒度从小到大分为Step、Trans、Job

Step:是完成单一具体功能的组件,如从文件中读取数据、对流中的字段进行字符串拆分操作、对不能为空的字段设置相应默认值、将流中的数据写入到数据表等。

Trans:转换,一般最终清洗完成的数据库中有多少个标准表,就要有多少个Trans,通常与表是一一对应的。

Trans由多个Step组成,Step之间使用hop连接,实现数据在Step之间的流动,一系列Step的连接从而完成更复杂的转换。

Job:作业,由多个Trans组成,表示一次完整的数据清洗任务。

kettle的使用:

新建一个转换

1新建空白转换

文件—>新建—>转换 :新建一个空白的转换,ctrl+s保存该转换,命名为标准表的表名;

2添加数据库连接

在主对象树中,双击DB连接,或右击DB连接,选择新建数据库连接,打开数据库连接对话框:

其中Oracle数据库连接中的数据表空间,索引表空间两项不需要填。其余参数必填,填好之后点测试,检测是否能正确连接,连接成功后,点确认,便保存了当前连接。

其实,可以随时在需要的时候建立数据库连接,而不必刚开始就添加。

3添加需要的step

在核心对象的各个分组中,找到需要的step,双击,或者拖拽到右侧设计界面,即可添加step到当前转换中。

简单示例:新建一个转换,实现生成10000条测试数据,存放到mysql中的表t1中,t1只有两个字段,一个是整型,一个是varchar。

step1:新建一个空白转换,保存,文件名为data_gen.ktr

step2:在核心对象树中找到“输入”分组中的“生成记录”这个Step,并拖放到右边的工作区中

Step3:在“转换”分组中,找到“添加序列”,并拖放到工作区中

Step4:在“输出”分组中,找到“表输出”Step,并拖放到工作区中

Step5:单击选中“生成记录”,然后按住shift+鼠标左键,拖至“增加序列”,如此,便在这两个Step中建立了一个Hop,将这两个Step链接起来,注意hop是有向的。

同样的方法链接“增加序列”和“表输出”

Step6:双击“生成记录”配置该Step的元数据信息:

如图中的修改,步骤名称更改为“生成字符串”;限制改为“10000“,表示生成10000条记录;字段列表中,如图填写,名称随意,类型在下拉列表中选择String,值填写”aaaa”,其他留空,不要填写。然后,点击确定即可。

Step7:双击“增加序列”,配置其元数据信息:

如图填写:值的名称即为当前添加字段的名称,使用计数器来生成序列,会生成从1递增的序列,可以修改起始值即步长。最大值可以修改为10000,不设置也行,因为它之前的Step结束后,它也跟着结束了。

Step8:双击表输出,配置其元数据信息:

点数据库连接后面的“新建”按钮,即为创建一个数据库连接。

根据自己数据库的实际情况,设置上述信息,最好点击下连接测试,防止信息填写错误。

测试通过,后确认即可保存该数据库连接,此时表输出设置窗口的数据库连接自动填上了刚才建立的连接:

点击目标表后的“浏览”按钮,选择要存放数据的表:

如上图,我选择了t1表存放生成的数据。

提交记录数量,是每多少条数据提交一次,这里可以默认。

勾选指定数据库字段,否则下面没法设置:

然后切换到数据库字段选项卡,点击输入字段映射,会自动获取流入该Step中数据的各个字段名,以及该表中的字段名。

点击源字段中的某个字段,然后点击目标中的某个字段,然后点击add按钮,表示两者之间建立了一个映射,该源字段的值都存在对应的目标字段中。当源字段与目标字段的名字有相同字符串时,可以使用猜一猜,自动匹配,不过不保证准确性。

匹配完成,点击确定。

如上,这个转换就建立完成了,注意Ctrl+S保存。

Step9:运行该转换,查看结果:

点击:三角形按钮,表示执行

在弹出的窗口中,点“启动”即可。

成功执行后,出现如下信息:若失败,会出现红色的“×”,并且会在下面日志中记录错误的Step及错误信息。

查看t1表中有无数据:

如上,便成功生成了10000条测试数据。

kettle菜鸟学习笔记2----第一个kettle转换的建立及执行的更多相关文章

  1. kettle菜鸟学习笔记1----相关准备知识

    最近导师让给师弟师妹做个关于kettle的培训,瞬间囧了,kettle我也只是简单学过,连皮毛都算不上,而且,上次使用kettle已然是去年的事了…… 没办法,只好重新学习下,好在之前写了几个文档,也 ...

  2. kettle菜鸟学习笔记3----kettle数据库连接错误及解决

    数据库连接测试时,所有的参数信息都填写正确,却报错了. 或者,没有进行数据库连接测试,直接保存了当前数据库连接,然后在浏览,选择目标表时报错: 或者其他别的关于数据库连接的错误…… 第一个要考虑的就是 ...

  3. C#.NET学习笔记2---C#.第一个C#程序

    C#.NET学习笔记2---C#.第一个C#程序 技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com 6.第一个C#程序:   ...

  4. Spark学习笔记1——第一个Spark程序:单词数统计

    Spark学习笔记1--第一个Spark程序:单词数统计 笔记摘抄自 [美] Holden Karau 等著的<Spark快速大数据分析> 添加依赖 通过 Maven 添加 Spark-c ...

  5. Unity3D学习笔记2——绘制一个带纹理的面

    目录 1. 概述 2. 详论 2.1. 网格(Mesh) 2.1.1. 顶点 2.1.2. 顶点索引 2.2. 材质(Material) 2.2.1. 创建材质 2.2.2. 使用材质 2.3. 光照 ...

  6. kettle学习笔记(二)——kettle基本使用

    一.子程序功能和启动方式介绍 Spoon.bat: 图形界面方式启动作业和转换设计器. Pan.bat: 命令行方式执行转换. Kitchen.bat: 命令行方式执行作业. Carte.bat: 启 ...

  7. MiZ702学习笔记12——封装一个普通的VGA IP

    还记得<MiZ702学习笔记(番外篇)--纯PL VGA驱动>这篇文章中,用verilog写了一个VGA驱动.我们今天要介绍的就是将这个工程打包成一个普通的IP,目的是为后面的一篇文章做个 ...

  8. Java菜鸟学习笔记--数组篇(三):二维数组

    定义 //1.二维数组的定义 //2.二维数组的内存空间 //3.不规则数组 package me.array; public class Array2Demo{ public static void ...

  9. [原创]java WEB学习笔记12:一个简单的serlet连接数据库实验

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

随机推荐

  1. li中包含span,在IE6、IE7下会有3pxbug

    如果给每个li里面加个span标签的话,在IE6,IE7下看,li与li之间的距离就会多了3px. 解决方法:在li中加vertical-align:middle; <div class=&qu ...

  2. jQuery进行DOM操作记录

    1.在元素内部插入DOM元素 ①插入到元素内部原有元素之后 append(content)      返回值:jQuery  参数-content:要插入的元素String,Element,jQuer ...

  3. C# API: 生成和读取Excel文件

    我们想为用户提供一些数据,考虑再三, 大家认为对于用户(人,而非机器)的可读性, Excel文件要好一些. 因为相比csv,xml等文件, Excel中我们可以运用自动筛选, 窗口锁定, 还可以控制背 ...

  4. UVA 253 (13.08.06)

     Cube painting  We have a machine for painting cubes. It is supplied withthree different colors: blu ...

  5. 约瑟夫圆环的C++实现

    转载请注明出处:点我 昨天参加了企鹅的2015年实习生招聘的笔试,编程题第一道题就是约瑟夫圆环问题,要求用C++来实现. 约瑟夫圆环问题其实是一个很有名的问题:问题的描述为: 设有编号为1,2,……, ...

  6. linux C(hello world)程序调试

    程序的调试(先得安装gdb工具,以root身份执行命令:sudo apt-get install gdb) 程序的调试是一个很重要的环节,windows IDE下那些强大的调试功能,Linux以什么来 ...

  7. java list三种遍历方法性能比較

    从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便測试各种遍历方法的性能,測试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象 ...

  8. corner2

    Original: https://github.com/LondonX/corner2 Backup: https://github.com/eltld/corner2

  9. Web安全XSS

    Web安全XSS 简单的反射型XSS钓鱼演示 </form> <script> function hack(){ XSSImage=new Image; XSSImage.sr ...

  10. 给大家普及一下CPU和SOC的基本知识,好让大家在盲目喝彩做出基本的判断

    转载:http://bbs.tianya.cn/post-worldlook-544367-1.shtml 目前,华为推出了自己的四核手机,用自己的SOC,所以很多不明就里的人开始嚷嚷国产处理器的骄傲 ...