ETL与Kettle
Kettle概述
1.1 ETL简介
ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种ETL工具的使用,必不可少。
市面上常用的ETL工具有很多,比如Sqoop,DataX,Kettle,Talend等,作为一个大数据工程师,我们最好要掌握其中的两到三种,这里我们要学习的ETL工具是Kettle!
1.2 Kettle简介
1.2.1 Kettle是什么
Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。中文名称叫水壶,该项目的主程序员MATT希望把各种数据放到一个壶里,然后以一种指定的格式流出。
Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
Kettle(现在已经更名为PDI,Pentaho Data Integration-Pentaho数据集成)。
1.2.2 Kettle的两种设计
简述:Transformation(转换):完成针对数据的基础转换。Job(作业):完成整个工作流的控制。
区别:(1)作业是步骤流,转换是数据流。这是作业和转换最大的区别。(2)作业的每一个步骤,必须等到前面的步骤都跑完了,后面的步骤才会执行;而转换会一次性把所有控件全部先启动(一个控件对应启动一个线程),然后数据流会从第一个控件开始,一条记录、一条记录地流向最后的控件;
转换:数据输入-处理逻辑-输出
作业:Start-转换(X 报警邮件)-作业项-成功
1.2.3 Kettle的核心组件
1、勺子(spoon.bat/spoon.sh):是一个图形化的界面,可以让我们用图形化的方式开发转换和作业。windows选择Spoon.bat;Linux选择Spoon.sh;
2、煎锅(Pan.bat/pan.sh): 利用Pan可以用命令行的形式执行由Spoon编辑的转换和作业。
3、厨房(Kitchen.bat/kitchen.sh):利用Kitchen可以使用命令行调用由Spoon编辑好的job。
4、菜单(Carte.bat/carte.sh):Carte是一个轻量级的Web容器,用于建立专用、远程的ETLserver。