相关链接

开源ETL工具(Kettle) V5.1.0 免费Spoon版
http://www.cr173.com/soft/30051.html
ETL工具大全,你了解多少
http://bbs.csdn.net/topics/390349305
Kettle_抽取数据举例
http://blog.csdn.net/huangyanlong/article/details/42264543

文件列表

kettle入门(三) 之kettle连接hadoop&hdfs图文详解
http://blog.csdn.net/xiaohai798/article/details/39558939


ETL2004ETL和数据集成工具:ETL和数据集成的工作量占BI项目的40%,但是ETL工具约占BI市场的9%,其中很多应用是采用手工编码方式,ETL工具仍有待普及

clipboard.png-24.9kB

  1. 从哪里抽取什么样的数据,即抽取规则。要支持增量抽取,即每次抽取只抽取上次抽取后变化的数据。在复杂情况下,还需要检查上次抽取后修改或者删除的数据,并依据数据安全策略进行相应的处理;
  2. 数据抽取频率即什么时间抽取,即抽取时间设置,确定每天晚上12点抽取,或者每1小时正点时抽取1次,等等;
  3. 数据校验,确定每个抽取的数据是否是有效的,是否是没有缺陷的,是否需要补充内容等;
  4. 数据转换规则,即源数据怎样转化成需要的数据的,经过什么样的计算、拆分、合并等等;本数据转换完后,需要触发哪些数据的ETL过程;
  5. 数据质量检查,可以采用对账等方式对转换完后的数据进行统一检查,保证数据的抽取质量;
  6. 错误处理,如果转换过程中出现错误,需要进行统一的、相应的处理,给出明确的业务描述,记录错误日志,并发到系统信息中心;
  7. 记录ETL日志,包括转换的时间,数据源是哪个,转化的数据种类,转换的源数据是哪些,对应的目标数据是哪些,等等。

ETL大致分为两部分

  • 设计期:ETL过程,

    Extract即是从业务数据库中抽取数据,
    Transform即是根据业务逻辑规则对数据进行加工的过程,
    Load即是把数据加载到数据仓库的过程
    (Extract-Transform-Load ),关键就在T的处理上,这个过程的实现,可 以用可以用perl、shell、存储过程等来实现,也可以用类似Kettle等ETL工具实现

  • 运行期:ETL的调度过程,所谓调度,就是执行定时任务,对以上脚本、job的调度,主要是这其中的依赖如何配置的问题,还有就是对于日增、日全、月增、月全等数据如何加载。

资源库

资源库用来保存连接信息和转换信息。用户通过图形界面创建的的数据库连接和数据转换任务可以保存在资源库中。
资源库可以是各种常见的数据库,用户通过用户名/密码来访问资源库中的资源,默认的用户名/密码是admin/admin。资源库并不是必须的,如果没有资源库,用户还可以把转换任务保存在 xml 文件中。
资源库可以使多用户共享转换任务,转换任务在资源库中是以文件夹形式分组管理的,用户可以自定义文件夹名称。有了资源库,就可以将 transformation/job 保存在数据库里,这样方便共享。

任务

Kettle以任务的方式存在,每个任务就是一个转换流程,以流程图的方式表现,支持各种流程处理模式,包括条件跳转、分支、循环等等,每一个节点就是业务处理单元。业务处理单元可以是SQL语句,也可以是存储过程,还可以是Java程序等等。
Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。主要描述了从各个数据源中抽取数据、转换数据并加载到数据仓库的各个环节及流程。主要功能有数据校验、数据转换规则、数据质量检查、Bug调试错误处理,定时功能、日志跟踪等。

Kettle使用及练习—安装部署

Kettle的下载可以在 http://kettle.pentaho.org/ 网站下载。要求jdk.5以上版本,设置JAVA_HOME 环境变量,.kettle不需要安装,直接解压。运行spoon.bat即能看到kettle的欢迎界面,选择没有资源库,打开kettle主界面,在左边的Main tree,双击transaction,配置DB Connection,点击test,提示成功则表示DB已经配置好了。
注:

  1. Kettle支持跨平台使用,Spoon.bat 是在windows 平台运行,Spoon.sh 是在Linux、Apple OSX、Solaris 平台运行。
  2. spoon.bat 文件中的set OPT=-Xmx256m 改成 set OPT=-Xmx512m,或者更大也可以,否则会在抽取过程中,可能会出现内存溢出的异常

因为kettle7.0是基于jdk1.8的,所以你用1.7的时候会报错,你可以运行SpoonDebug.bat,把完整的报错输出出来。
然后1.8 已经不支持MaxPermSize,所以你要在Spoon.bat中把XX:MaxPermSize修改为MaxMetaspaceSize。


clipboard.png-148.3kB

  1. 只更新、无更新、无删除
    只使用【更新操作】,注意,更新操作的查询字段只能包含PRAMARY KEY,其他字段不能被包含,更新字段要包含全部字段。
  2. 只增加
  3. 增加+更新、无删除
    上述都可以用【插入\更新操作】,注意其中的查询字段同样只需要主键。
  4. 增加+更新+删除
    需要【组合】【多种操作】