目录
????????ETL:extract(提取)——>transform(转换、该步可省略)——>load(装载),本篇文章将介绍企业中ETL常用工具——kettle(壶)
????????Kettle是一款国外绿色开源免费的ETL工具,纯java编写(安装前请先配置jdk),可以在Window、Linux、Unix上运行,数据抽取高效稳定,该软件名副其实,它的主程序员MATT?希望把各种数据放到一个壶里,然后以一种指定的格式流出。它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。
????????Kettle中有两种脚本文件,job(.kjb)和transformation(.ktr),job则完成整个工作流的控制,transformation完成针对数据的基础转换。Job和Transformation的差别:Transformation专注于数据的ETL,而Job的范围比较广,可以是Transformation,也可以是Mail、SQL、Shell、FTP等,甚至可以是另外一个Job。简而言之,job包含transformation(.kjb包含.ktr)
Chef(厨师):工作(job)设计工具?(GUI方式)。
Kitchen(厨房):工作(job)执行器?(cmd方式)。
Spoon(勺子):转换(transform)设计工具?(GUI方式)。
Pan(平底锅):转换(transform)执行器?(cmd方式)。
Kettle的执行分为两个层次:Job和Transformation:
????????Transformation:定义对数据操作的容器,数据操作就是数据从输入到输出的一个过程,可以理解为比Job粒度更小一级的容器,我们将任务分解成Job,然后需要将Job分解成一个或多个Transformation,每个Transformation只完成一部分工作。
????????定义对数据操作的容器,数据操作就是数据从输入到输出的一个过程,可以理解为比作业粒度更小一级的容器,我们将任务分解成作业,然后需要将作业分解成一个或多个转换,每个转换只完成一部分工作
????????Step:是Transformation内部的最小单元,每一个Step完成一个特定的功能。
????????Job:负责将Transformation组织在一起进而完成某一工作,通常我们需要把一个大的任务分解成几个逻辑上隔离的Job,当这几个Job都完成了,也就说明这项任务完成了。
????????Job Entry:Job Entry是Job内部的执行单元,每一个Job Entry用于实现特定的功能,如:验证表是否存在,发送邮件等。可以通过Job来执行另一个Job或者Transformation,也就是说Transformation和Job都可以作为Job Entry。
????????Hop:用于在Transformation中连接Step,或者在Job中连接Job Entry,是一个数据流的图形化表示。
? ? ? ? 最后一点,在Kettle中Job中的JobEntry是串行执行的,故Job中必须有一个Start的JobEntry;Transformation中的Step是并行执行的。
ETL工具——kettle基本介绍如上,后续会更新更多有关数仓和ETL相关知识,如有不足,敬请补充指正!