zoukankan      html  css  js  c++  java
  • kettle菜鸟学习笔记2----第一个kettle转换的建立及执行

    相关概念

    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条测试数据。

  • 相关阅读:
    [Python] 糗事百科文本数据的抓取
    [Python] 文件扫描
    [Python] 根据博客园用户名抓取其所有文章的标题及其链接
    ParagraphString
    IrregularGridCollectionView处理不定宽度的标签cell
    Java多线程与并发
    设计模式之代理模式
    javascript设置百分比保留两位小数。
    Java基础知识总结(异常机制、集合、JUC、IO)
    Java底层知识JVM、GC
  • 原文地址:https://www.cnblogs.com/dqrcsc/p/4627857.html
Copyright © 2011-2022 走看看