一、 kettle–spoon的安装

kettle安装官网https://sourceforge.net/projects/pentaho/files/Data%20Integration/

下载完解压就好。然后按以下步骤使用即可。

二、使用

1、启动

进入安装路径/data-integration下双击Spoon.bat,即可进入spoon的主页面

 2、配置数据库连接

这里配置Oracle数据库。有注释的必填,这样将需要用到的数据库连接好  后续使用的时候就可以直接选择了(当然也可以后续需要再编辑)

一般填写完 要测试一下   如果测试不通过的话  一般都是对应信息没填对  或者  会提示Oracle驱动没有检测到   这个就需要下载对应的驱动放到对应的文件夹底下了

3、一个简单的数据抽取(将一个表的数据抽取到另一个表内) 

文件–》新建–》转换

  创建完之后  点击核心对象  选择输入—表输入   ;输出–插入/更新  (都是点击 拖过去右边空白页即可)

双击表插入:编辑SQL语句(决定了你要查询出流里面的字段)  数据库连接选择查询对应的数据库  

 确定之后,将表输入连接到插入/更新  (相当于将查询出来的数据流向右流给插入/更新操作选择对应的数据流)

点击表输入然后点击红框(表示向右连接)并拉过来连接插入/更新

双击插入/更新   编辑  选择要插入数据的数据库连接 和对应的表     

关键字比较(要插入的目标表字段和流里的字段就是表输入查询出来的字段   )  相等的话就更新、不相等就插入(相当于  根据这个字段比较  如果表内已存在该数据  就更新  不存在则更新)

更新字段(就是  比较之后更新操作的话  要更新的字段  Y更新 N不更新)

 最后   点击执行    显示这样即表示成功  (转换完成之后 可以去插入的数据表查验).

4、一次性全量插入 

使用表输出

(如果是工作过程中  添加某字段映射的话   可以直接在插入字段里 手动添加即可) 

5、定时调度转换

定时调度只能在流流程里面设置  创建一个多个转换流程也是这样操作。

所以   新建一个作业:并在通用里面拖过来一个start转换(并连线)

双击转换  编辑转换  选中已做好的转换要做定时任务的转换 

双击start   可视化编辑是否需要定时  定时周期为多少

设置完之后点确定   我的电脑屏幕小  自动只显示这个框  没有确定按钮  最后发现是需要拉大这个框框的

这样  一个定时任务就完成啦  !!!(定时任务设置完后也是要点击执行才可以开启任务的)

如果设置成不需要定时,且连接多个转换  这样就相当于一个没有定时的流程啦  需要手动执行。  

 

6、使用全量输入  实现多次执行不会插入重复数据

(所以只能在在表输入表输出的最前面先清空将要插入的目标表)

所以我添加一个执行sq脚本

但是要注意的是:连接之后  双击表输入(连接  会自动识别的前一步骤)

7、在kettle里面做一个错误处理:

点击错误处理连接线  编辑  错误描述列名(写自己创建的错误日志表中的错误描述的属性)   这样插入更新失败的时候  就会将错误信息也传送到插入/更新2步骤中,最后根据插入/更新2步骤中设定插入到目标表

8、自动生成一个id时:

第一个表输入

 第二个表输入  框出来的都是需要加上的(‘OK’=?是自带的一个判断 从前面传过来要加上

 第一步查询出来的字段 会替换掉第二步的 ?

(‘OK’=?不能直接接在where后面  所以在没有其他的条件约束的话 就加一个1=1  如上图所上   一般是 AND ‘OK’=? )

————————————————

版权声明:本文为CSDN博主「编不出代码的女程序员」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/Miraitowa_Neo/article/details/109649678