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)

                检测一下是否连接成功,前提是将mysql驱动放到kettle目录下的lib目录下,否则会报错。

kettle_第1张图片

kettle_第2张图片

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

usera:

 kettle_第3张图片

userb:

wKioL1kQNYTS7dyAAAAKQr77s3M045.png-wh_50

        3.新建步骤

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

kettle_第4张图片

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

kettle_第5张图片

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

kettle_第6张图片

                            双击插入更新。选择数据连接myconn2,目标表为userb,关键字填写id=id,点击获取和更新字段,确定。若获取时报错,是驱动版本太低,换高版本的就没问题了。

kettle_第7张图片

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


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