史上最详细的kettle初步小应用(猪都看得懂哦!!!)

来源:互联网 发布:db2删除数据库实例 编辑:程序博客网 时间:2024/06/06 06:40

kettle英文翻译为水壶,官方的解释为把数据倒进水壶里,然后再以一定的数据格式输出出来。

 1.下载并安装kettle:下载地址:

http://community.pentaho.com/projects/data-integration/      

         把上面的这行连接地址复制下,粘到浏览器的网址搜索栏中,点击搜索,即可看到kettle的下载网站,点击下载,过个3分钟左右浏览器就会提示你下完了,点进下载后的目录,你会发现下载下的是一个名为pdi-ce-5.4.0.1-130.zip的压缩包,接下来双击这个压缩包你会看到一个名为data-integration的文件,右键点击它选择复制,还在这个目录下右键选择粘贴,这个就是运行kettle的文件夹。双击这个文件夹找到lib,这个文件夹中存放着kettle所用到的jar包,把oracle的Java驱动包复制到这个里面来,至于这个驱动包从哪来我就不多说了,有经验的程序员u盘里应该会有,就算u盘里没有,项目里还可能会有,如果都没有就去网上下吧,没经验的程序员可以去下一个,如果不好下的话就看一下你要导的数据是不是来自或者要导出的是oracle,不是的话不用搞这个驱动包,总的来说就是你的数据来自什么数据库或者要导出到什么数据库,用到哪个数据库就把对应的Java驱动包加进去。

     2. 转换的使用

      双击名为data-integration的文件夹,找到spoon.bat这个文件点击,会弹出一个提示,如图



选择关闭,就进入了kettle的操作界面,如图

如果视力没问题的话你会看到主对象树下面的转换这两个字,在转换上右键选择新建,结果如图



点击主对象树,看到转换1下面的DB连接了吗?如果当时没有看到的话就点击一下转换1左边的小三角,在下面就会出现了,右键db连接,选择新建,跳出窗口如图



这是让你新建一个连接,就是你要连哪个主机上的什么数据库,各项填写如下:


这个是oracle的连接,都填完后点击测试,出现如下提示就说明你的连接是存在的


点击确定,这就新建了一个数据库连接,为什么要建立这个数据库连接呢?因为转换要用到这个连接。

     右键转换点击新建就建立了一个转换,转换的名字为转换1,右键连接点击新建,跳出连接的界面用于配置要转入或转出的哪个服务器上的哪个数据库,其中的表空间和索引空间一般都与数据库名一致,都填完后点击测试,会提示你建立的连接是不是对的,如果对的话就建立好了一个连接。  然后切换到核心对象界面, 点击输入,选择表输入,把表输入拖到右侧的主界面中,再点击输出,选择表输出,同样的方式把这个表输出拖到右侧的主界面中,双击右侧主界面上的表输入,会跳出表输入设置窗口,如图:

 

步骤名称随便取,选择一个数据库连接,就是刚才新建的几个数据库连接中的一个,SQL可以自己写,也可以点击获取SQL查询语句自动获取某张表的查询语句,记录数量限制为限制表输入的数据上限,点击确定就设置好了这个表输入。  然后双击表输出,跳出表输出窗口,如图:

 

目标表为要转出数据到哪张表,提交记录数量可以写10002000,或3000,或4000.......

最好元数据记录越多填的值越大,此值对数据转出的速度有影响。   然后按shift键,单击表输入,松开shift键,单击表输出,这样就把表输入和表输入联系起来,如图:

 

然后点击左侧核心对象界面的输出,选择xml输出,同样的方式拖到右侧主界面,双击xml输出,跳出xml输出设置窗口,如图:

 

设置好后点击确定,然后用同样的方式把表输出和xml输出联系起来,连接的过程中会出现主输出步骤和错误处理步骤选项,选择错误处理步骤选项,这时就把表输出和xml输出连接起来,如图:


这样的话整个过程就建完了,转换过程为:把一个数据库的元数据转到另一个数据库中的某个表中,如果有错误数据的话就把错误数据转到xml输出,至于为什么会出现错误数据要自己去分析错误数据与正确数据的差别。  最后点击转换界面上的小三角符号来运行这个转换,完成。

 

 3.插入或更新

在转换里用同样的方式新建表输入,然后在核心对象的输出下找到插入/更新,拖到右面的主界面中,双击插入/更新,如图

填入内容后如下:


至于为什么非要填写用来查询的关键字我也不懂,只知道不填不行。把表输入和插入/更新连接起来,如图

那么这个插入/更新跟表输出有什么区别呢?表输出是把所有的数据全部输出到指定的数据库表中,比如一个表中有30万条数据,你想把它导出到另外一张表中,如果你的表输出执行一次,那么这个表中的30万条数据全部到了另一个表中,如果你再执行一次,那么这30万条数据又到了那个表中,那么另一个表中就有了60万条数据,插入/更新就不一样了,它在输出的时候会判断目标表中有没有该条数据,如果有的话它就不往里插入了。总的来说,表输出用于不动的数据,多少条数据就是多少条,插入/更新用于动的数据,数据一直在增加或减少或更改,插入/更新结合作业使用。那么什么是作业呢?


4.作业:

作业主要用于制定定时任务,看到主界面上的欢迎了吗?不要忽略它,点进去,再点击左侧的主对象树,看到作业了吗?跟转换平级的就是作业,右键作业点击新建,这样就建立了一个作业,如图



点击通用下面的start,拖到右面去,再点击下面的转换,拖到右面去,双击转换,如图



转换的文件名一定要从右面选,点击右面的按钮,如图


看到下面的转换1.ktr了吗?你可能没有看到,是因为你没有保存你之前的转换,在新建作业时一定要保存你想关联的转换,保存后就能看到了,选择你想关联的那个转换,为什么新建作业还要关联转换呢?因为建作业的目的是定时执行转换过程,转换只能执行一次,但如果用作业关联了转换,转换就可以按照你的设定无休止的执行。

再双击start,如图

填入各项后如图

表示60分钟执行一次。

好了,我所知道的就是这些了,至于kettle的其他主要应用我也不知道了。


















 

0 0