首页 > 代码库 > kettle

kettle

    kettle是一款E(Extract)T(Transform)L(Load)工具.(即数据抽取转换装载的过程)。

    

    kettle有两种方式来整合工作:xml文件形式和资源库(资源库移植性不好,数据表的可读性比xml好)


    kettle有两种脚本文件:transformation和job

    

    kettle有三大组件:Spoon Kitchen Pan

        Spoon:一个图形化界面,windows下直接运行Spoon.bat

        Kitchen:命令行调job     bash /home/kettle/data-integration/kitchen.sh /rep kettle_demo /user username /pass passwd /level Minimal /dir /dirname /job jobname

        Pan:命令行调trans     bash /home/kettle/data-integration/pan.sh /rep kettle_demo /user username /pass passwd /level Minimal /dir /dirname /trans transname


        简单案例:

                1.新建一个trans.ktr,保存到F:\kettleworkspace下

                2.在trans下新建两个DB连接myconn,myconn2.(mysql)

技术分享

技术分享

数据库结构:数据库TestA、TestB。TestA下有一张usera表,TestB下有一张userb表。将usera表的数据装载到userb。

usera:

 技术分享

userb:

技术分享

        3.新建步骤

            将核心对象中的表输入拖到trans中。

技术分享

                           双击表输入图标,写一个最简单的sql:select * from usera

技术分享

                        将表输出下的插入/更新拖到trans中,按住shift,然后点击表输入,按住鼠标左键,移动鼠标到插入/更新。

技术分享

                            双击插入更新。选择数据连接myconn2,目标表为userb,关键字填写id=id,点击获取和更新字段,确定。

技术分享

        4.直接点击运行,刷新userb,会发现数据已同步。


ps:若中文乱码,可以分别双击两个数据连接 选择选项 增加一组参数:characterEncoding:gbk

kettle