最近因为项目需要开始接触kettle,之前也用过一些其他etl工具,所以不觉得入门有多难,有需求,就动手,下载安装开工干。
kettle是用java写的,所以先确保电脑有java运行环境,没有可以从这里下载安装:
https://www.java.com/zh_CN/download/windows-64bit.jsp
从官网下载kettle比较慢,推荐从国内镜像网站下载:
http://mirror.bit.edu.cn/pentaho/Data%20Integration/
下载好后直接解压,打开文件“Spoon.bat”就可以启动。
本机安装kettle、oracle、java环境及做项目测试都问题不大,使用也很简单,直接从左边拖入所需的控件,在界面设置参数,如下图,一个简单的从文本读取数据后插入数据库的转换就完成了。
转换完成后可以新建job调度,这样就可以按时批量完成转换了,如上图。在job的START中可以设置调度的频次。
基本操作都没啥问题,但今天也遇到个小麻烦,在客户机环境上也按流程装了kettle,开发过程中遇到从文本读入文件没问题,就在插入的时候老是报错,关键信息为“ora-00911 invalid character”。
开始以为真的是字符问题,因为之前开发的一个文件是可以正常跑,能读文本插入到数据库,所以就拿两个的设置进行对比,左右都没问题,后来才发现是表输出控件设置有问题,新手正常在设置时以为只要点击了“获取字段”,左边对应关系没问题就可以跑了,但此时源与目标的对应关系不一定正常,还得在“输入字段映射”中进行编辑才可以正确对应,完成正确关系对应后一跑,完美跑通。
说到字符问题,这个也是比较常见的,可以在数据库连接设置中加上命令参数进行设置“characterEncoding,值的那栏写:utf8”。