了解kettle首先要先明白一个概念ETL,ETL是英文Extract-Transform-Load的缩写,用来描述将业务系统的数据从来源端经过抽取(extract)、清洗\转换(transform)、加载(load)至目的端的过程。目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据, ETL是BI(商业智能)项目重要的一个环节。
而Kettle是一款国外开源的ETL工具,纯java编写,可以在Windows、Linux、Unix上运行,数据抽取高效稳定。
Kettle是ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。
Kettle中有两种脚本文件,transformation和job。transformation完成针对数据的基础转换;job则完成整个工作流的控制。
kettle顾名思义,翻译为水壶,很形象的将数据描绘为水壶中的水,而kettle就是将水倒入水壶,烧开转换后再倒出的水壶的过程,其中k e t t l e也有ETL之意,生动形象,可见开发者煞费苦心。此文主要讲理解,并不具体写哪些模块儿什么配置、怎么应用,因为那些细节东西的视频或者其他形式培训资料有很多,而我感觉既然kettle既然为我们提供了spoon的图形化界面,所以过多的讲解可能都不如你亲自练一下尝试一下。下面言归正传,说说自己初始kettle的一点见解和感受。
刚开始使用kettle时就遇到了spoon打不开的bug,后经过一番查阅解决了相关问题,可见文章《关于kettle工具spoon.bat打开报错问题》。解决后登录可以选择文件资源库、数据库资源库等方式登录,然后新建一个转换就出现如下界面,大体布局如下,一目了然。我们基本上常用的功能主要有输入模块、输出模块、转换模块、流程模块、查询模块、脚本模块。其中很大一部
分拖拽后都有详细说明,各个所需操作模块用连接线连接进行工作流转和数据传递,乍一看其实很容易上手,但细细研究kettle还有很多复杂且酷炫的操作可以让我们慢慢品味,功底好的选手可以直接写sql、JavaScript脚本或java代码进行所需完成的操作。实现数据抽取、清洗、转换、输出的操作不止一条路,可以设计和优化自己的流程,让这一工作过程在最短的时间内达到预期目标,这就是kettle的强大之处。这也是我对kettle的初始感受,有其他想法或意见的小伙伴欢迎踊跃发言,今后的工作有很大时间要和这个水壶打交道,往后余生,请多指教~