开源ETL工具-kettle的使用入门介绍

                            开源ETL工具-Kettle的使用入门介绍

    首先,给大家介绍一写关于ETL的基本知识。 ETL是由三个词组成的。分别是extract, transform, load .也就是抽取,转换和加载。在现代互联网企业中使用时比较频繁的,在商业智能BI中也是很受欢迎的。 常用的ETL工具也有很多,比如infomatia, dataStage, kettle, talend 等等。  有开源的也有商业的,不同的软件之间在性能和学习使用成本等是有差别的。本文主要以kettle工具为主。 版本:  kettle-pdi 7.0

 1. 下面简单介绍一下这几款工具的对比。

Kettle vs Informatica
相似点:
•Pentaho 和 Informatica 都提供了大量的转换步骤、脚本功能,都
可以处理复杂的ETL 转换。
•通常情况下 Informatica 比 Kettle 更快。Informatica 有下推优化,
缓存查询等提高性能的手段。但是如果你对 Kettle 和数据库有足够
的了解,做一些调整,你可以提高 Kettle 的速度,在一些情况下可
以达到甚至超过 Informatica 的速度。
Kettle  的优点:
•Kettle 的易用性比 Informatica 好,需要的培训要少很多。
•Kettle 不需要像 Informatica 那样大的前期投入。
•Kettle 的插件架构支持快速定制开发
Informatica  的优点:
•Informatica 的错误报告功能比 Kettle 更友好,更容易定位错误。
Kettle 通常只把异常抛出,需要实施人员有更丰富的经验。
•Informatica 比 Kettle 有更好的监控工具和负载均衡等企业级应用

功能,更适合大规模的ETL 应用。

2. 下面介绍一下kettle的子程序组成。               

Spoon.bat: 图形界面方式启动作业和转换设计器。
Pan.bat: 命令行方式执行转换。
Kitchen.bat: 命令行方式执行作业。
Carte.bat: 启动web服务,用于 Kettle 的远程运行或
集群运行。

Encr.bat: 密码加密

3. kettle的基本功能: 作业(job)和转换 (trans)。

     本文介绍的版本是开源的kettle 版本,下载地址可以在 http://kettle.pentaho.org/downloads/  

Kettle 的 Spoon 设计器用来设计转换(Transformation)
和 作业(Job)。
•转换主要是针对数据的各种处理,一个转换里可以包
含多个步骤(Step)。
•作业是比转换更高一级的处理流程,一个作业里包括
多个作业项(Job Entry),一个作业项代表了一项工

作,转换也是一个作业项。

因为kettle 是用java实现的,所以必须安装java环境才可以运行kettle 程序。 本文默认使用了jdk  1.8版本。具体安装过程忽略,请参考百度,jdk 和kettle的安装。 kettle 解压可直接使用,安装目录下找到spoon.bat 脚本启动,在windows下运行。如果是linux 下运行就需要运行spoon.sh 脚本启动。

源代码下载地址:

svn://source.pentaho.org/svnkettleroot/Kettle/trunk

用户通过 Spoon 创建的转换、作业、数据库连接等可以保存在资源库和 XML 文件中。
• 转换文件以 ktr 为扩展名,作业文件以 kjb 为扩展名
•资源库可以是各种常见的数据库。可以在 Spoon 中

自动创建资源库,资源库默认用户名和密码是  admin/admin。

不过kettle 也是支持集群模式的,资源库是方便了程序的管理,但是某些情况下,访问资源比较慢,看个人情况使用决定。

4.  kettle 常用组件介绍。  输入组件,输出组件,转换组件等、

  4.1 输入组件

    输入类步骤用来从外部获取数据,可以获取数据的数据源包括,文本文件(txt,csv,xml,json)数据库、 Excel 文件等桌面文件,自定义的数据等。对特殊数据源和应用需求可以自定义输入插件。

   4.2 转换组件 

   转换类步骤是对数据进行各种形式转换所用到的步骤。
例子: 字段选择,  计算器。 增加常量

  流程步骤是用来控制数据流的步骤。一般不对数据进行操作,只是控制数据流。

 4.3 输出组件

     输出步骤是输出数据的步骤,常见的输出包括 文本文件输出、表输出等,可以根据应用的需求开发插件以其他形式输出

常用的是表输出,文本文件输出,写日志输出等。也可以输出到关系型数据库,hadoop output 等文件系统。

  下次继续更新。 

猜你喜欢

转载自blog.csdn.net/xingyue0422/article/details/80366820