ETL工具kettle学习总结
ETL工具kettle学习总结 Kettle,也称为Pentaho Data Integration(PDI),是一款开源的ETL工具,项目开始于2003年,2006年加入了开源的BI组织Pentaho,正式命名为PDI。官方网站为http://kettle.pentaho.org/。 Kettle提供了三大主要概念:Transformation、Job和Hop。 1. Transformation(转换):将一个或者多个不同的数据源组装成一条数据流水线,然后输出到某一个地方,文件或者数据库等。Transformation主要表示数据的流向,从输入,过滤等转换操作,到输出。 2. Job(作业):可以调度设计好的转换,也可以执行一些文件处理(比较、删除等),还可以ftp上传、下载文件、发送邮件、执行shell命令等。Job hop可设置执行条件:1、无条件执行;2、当上一个Job执行结果为true时执行;3、当上一个Job执行结果为false时执行。 3. Hop(连接):连接转换步骤或者连接Job(实际上就是执行顺序)的连线。Transformation hop主要表示数据的流向,从输入,过滤等转换操作,到输出。Job hop可设置执行条件。 Kettle的整体结构图分为四个部分: Spoon(设计工具)、Kitchen(执行引擎)、Pan(数据处理)、和Repository(资源库)。 Kettle的设计样例图中,绿色线条为Hop,流水线表示数据的流向。 Kettle的运行方式有两种:使用Java Web Start方式运行的配置方法和命令行方式。在Windows下执行kitchen.bat,在Linux下执行kitchen.sh。 Kettle的配置文件可以保存在XML格式中或某一个特定的数据库中。转换的设计文件以.ktr结尾,保存所有配置好的数据库连接、文件相对路径、字段映射关系等信息。Job的设计文件以.kjb结尾。 在Kettle中,用户定义的作业可以保存在XML格式中或某一个特定的数据库中。Job的设计文件中包含了多个-entry-,每个-entry-对应一个作业,每个作业都包含了名称、描述、类型、文件名、目录等信息。 Kettle中有多个重要的表,包括r_job表,r_transformation表等。r_job表保存了job的id、name、status、执行时间、创建时间、修改时间等信息。 Kettle是一款功能强大且灵活的ETL工具,广泛应用于数据集成、数据migration、数据报表等领域。