一、基础认识
1.什么是 ETL
• Extract-Transform-Load 的英文缩写,用来描述将数据从来源端经过抽 取(extract)、转换(transform)、加载(load)至目的端的过程。
• ETL 是将业务系统的数据经过抽取、清洗转换后加载到数据仓库的过 程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为 企业的决策提供分析依据,ETL 是 BI(商业智能)项目重要的一个环 节。
2.什么是 Kettle
• Kettle 是一款国外开源的 ETL 工具,纯 java 编写;
• Kettle 被 Pentaho 公司收购后更名为 PDI,Pentaho Data Intergration,数据集成。
3.Kettle 的特点
• 免费开源:基于 java 的免费开源软件,对商业用户也没有明确的限制;
• 容易配置:可以在 Window、Linux、Unix 上运行,绿色无需安装,数 据抽取高效稳定;
• 多种数据源:支持 MySQL、Oracle、SQL Server 等主流数据库,也支 持 Excel、CSV、TXT、JSON 等常见的数据文件;
• 可视化编程:通过图形界面去实现"想要做什么",而无需编写代码去实 现"具体怎么做";
• 定时任务:作业的 Start 控件可以设置每日、每周、每月的定时任务
• 两种脚本:transform 转换和 job 作业,transform 对数据进行转换, job 对流程进行控制。
4.Kettle 的下载
• 下载网址:https://sourceforge.net/projects/pentaho/files/
• 下载版本:Pentaho 8.3
5.Kettle 的界面
• 菜单栏、工具栏和工作区:
• 转换的核心对象:选项卡及具体操作控件
• 作业的核心对象:选项卡及具体操作控件
• 执行结果:日志、执行历史、步骤变量、性能图、Metrics 性能度量、 Preview data 预览数据
• 基本概念:
1)数据的处理单位为行,并行执行任务
2)转换包含一个或多个步骤(steps):读取、清洗、转换、统计、写入 等操作步骤
3)转换中的步骤通过跳连接(hops):允许数据从一个步骤流转至另一个步骤
二、环境搭建
1.安装 jdk 和 kettle:
解压 amazon-corretto-8.302.08.1-windows-x64-jdk.zip
解压 pdi-ce-8.3.0.0-371.zip
2.配置环境变量:
此电脑-属性-高级系统设置-高级-环境变量-系统变量-新建
变量名:JAVA_HOME,变量值:D:\BigData\jdk
变量名:KETTLE _HOME,变量值:D:\BigData\data-integration
3.配置环境变量:Path-新建
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
%KETTLE _HOME%
4.启动 Kettle:
双击 data-integration 目录下 Spoon.bat 文件
桌面添加快捷方式:右键 data-integration 目录下 Spoon.bat 文件 -> 发送到 -> 桌面 -> 回到桌面右键快捷方式 -> 重命名为 Kettle -> 右键选择属性 -> 更改图标 -> 在 data-integration 目录下 找到 spoon.ico 文件 选中并确定
三、Kettle 链接 Hive
菜单栏:文件->新建->转换->主对象树->DB 连接
四、Kettle 链接 MySQL
1.下载 mysql-connector-java
网址:https://dev.mysql.com/downloads/
2.解压 mysql-connector-java-5.1.49.zip
将 mysql-connector-java-5.1.49.jar 复制至 D:\BigData\data-integration\lib
3.重启 Kettle
菜单栏:文件->新建->转换->主对象树->DB 连接