最近因公司项目的原因,小编接触到了Kettle这样一款工具,感觉挺好玩儿的,通过几天的探索和学习,对Kettlde的使用有了一点点小心得,小编打算把这段期间学习和探索到的关于Kettle的东东写几篇博客记录一下,一来是可以总结一下这几天的研究成果,二来可以帮助到有需要的小伙伴们,不足之处,还请小伙伴们多多指教。
自我介绍
Hello大家好,我是Kettle,我是一款国外开源的ETL工具,我是纯java编写的,可以在Windows、Linux、Unix上运行,数据抽取高效稳定。我的中文名称叫水壶,该项目的主程序员MATT希望把各种数据放到一个壶里,然后以一种指定的格式流出。ETL是Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程,对于IT行业(也有其他行业)来说,经常会遇到大数据量的处理,转换,迁移,所以了解并掌握一种ETL工具的使用,必不可少。我绿色无需安装,Kettle中有两种脚本文件,transformation和job;transformation完成针对数据的基础转换,job则完成整个工作流的控制。
e 部署运行以及可能遇见的坑
小编用的版本是6.1,小伙伴们可以直接去官网上进行下载,解压到任意盘即可,Windows平台下,双击运行Kettle文件夹下的spoon.bat 文件,如果是Linux、AppleOSX运行的是Spoon.sh。当然安装的前提是,小伙伴们的电脑已经配置好java的环境变量了,如果java_home设置,仍然提示
could not find the main class. Program willexit!
可以设置环境变量:PENTAHO_JAVA_HOME,变量值为:jdk的安装目录,1.6以上即可。小编的为:C:\ProgramFiles\Java\jre1.8.0_77,如果启动还是报错 ERROR:could not create the java virtualmachine! 不是Java虚拟出了问题,修改一下spoon.bat里内存配置:
if"%PENTAHO_DI_JAVA_OPTIONS%"=="" setPENTAHO_DI_JAVA_OPTIONS="-Xms1024m" "-Xmx2048m""-XX:MaxPermSize=256m"
改为:
if"%PENTAHO_DI_JAVA_OPTIONS%"=="" setPENTAHO_DI_JAVA_OPTIONS="-Xms512m" "-Xmx1024m""-XX:MaxPermSize=256m",其中还有可能遇到的一个坑就是连接数据库找不到驱动的问题,小编的数据库是MySql,提示错误为[mysql] :org.pentaho.di.core.exception.KettleDatabaseException:
Error occured while trying to connect tothe database
Driver class 'org.gjt.mm.mysql.Driver'could not be found, make sure the 'MySQL' driver (jar file) is installed.
org.gjt.mm.mysql.Driver
解决办法:把mysql-connector-java-5.1.37-bin.jar拷贝到安装包lib的文件夹下面,然后重新启动spoon.bat即可。以上是小编在安装Kettle过程中遇到的一些问题,写下来,希望小伙伴们看到可以避免相同的坑。
产品家族
Kettle家族目前包括4个产品:Spoon、Pan、CHEF、Kitchen。是不是感觉来到了厨房世家!
SPOON:通过图形界面来设计ETL转换过程(Transformation)。
PAN :批量运行由Spoon设计的ETL转换(例如使用一个时间调度器)。Pan是一个后台执行的程序,没有图形界面。
CHEF :创建任务(Job)。任务通过允许每个转换,任务,脚本等等,更有利于自动化更新数据仓库的复杂工作。任务通过允许每个转换,任务,脚本等等。任务将会被检查,看看是否正确地运行了。
KITCHEN :批量使用由Chef设计的任务(例如使用一个时间调度器)。KITCHEN也是一个后台运行的程序。
配置数据库
配置数据库有两种方式,第一种是直接配置,另一种是在JNDI配置文件里,首先我们来看第一种配置数据库的方式,点击菜单栏文件里面有一个数据库连接,打开如下所示:
例如,小编的一些设置如下所示:
这个就是常见的工具连接数据库,填写好上述内容之后,点击测试,出现如下界面,表示数据库连接成功!
ok,出现上述这个界面,说明我们的数据库已经连接成功了,这样配置数据库的优点是随时需要随时进行配置,如果需要改变连接,修改此处配置可以立即生效,缺点是如果转换的比较多,一旦需要修改数据源每个转换都要进行改动,就比较麻烦了,所以介绍第一种配置连接数据库的方式,通过配置文件,如下图所示:
所连接名称是为了在转换中好选择进行填写的,填什么都OK!
小编寄语:该博文小编主要介绍了Kettle的基础知识,包括kettle的简介,部署Kettle时可能遇见的坑,Kettle
的产品家族以及如何配置数据库的两种方式,Kettle这个ETL工具集她允许我们管理来自不同数据库的数据,好啦,
关于Kettle的一些基本知识,小编就先介绍到这里,接下来的博文中,小编将结合具体的Demo来讲解如何在实际操作
中运用Kettle,敬请期待!