什么是ETL
ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。
什么是Kettle(PDI)
Kettle最早是一个开源的ETL工具,全称为KDE Extraction, Transportation, Transformation and Loading Environment。在2006年,Pentaho公司收购了Kettle项目,原Kettle项目发起人Matt Casters加入了Pentaho团队,成为Pentaho套件数据集成架构师 [1] ;从此,Kettle成为企业级数据集成及商业智能套件Pentaho的主要组成部分,Kettle亦重命名为Pentaho Data Integration [1-2] 。Pentaho公司于2015年被Hitachi Data Systems收购。 [3] (Hitachi Data Systems于2017年改名为Hitachi Vantara [4] )
Pentaho Data Integration以Java开发,支持跨平台运行,其特性包括:支持100%无编码、拖拽方式开发ETL数据管道;可对接包括传统数据库、文件、大数据平台、接口、流数据等数据源;支持ETL数据管道加入机器学习算法。
Pentaho Data Integration分为商业版与开源版,开源版的截止2021年1月的累计下载量达836万,其中19%来自中国 [5] 。在中国,一般人仍习惯把Pentaho Data Integration的开源版称为Kettle。
Kettle中有两种脚本文件,transformation(.ktr)和job(.kjb)
kettle的四个核心组件
- SPOON(勺子): 允许你通过图形界面来设计ETL转换过程(Transformation)。 (GUI方式)
- PAN(平底锅):允许你批量运行由Spoon设计的ETL转换 (transform执行器)。(命令行方式)
- CHEF(厨师) :允许你创建任务(Job执行器)。 任务通过允许每个转换,任务,脚本等等,更有利于自动化更新数据仓库的复杂工作。任务通过允许每个转换,任务,脚本等等。任务将会被检查,看看是否正确地运行了。 (GUI方式)
- KITCHEN(厨房): 允许你批量使用由Chef设计的任务 (例如使用一个时间调度器)。(命令行方式)