说在前面
- 操作系统:win10
- kettle版本:8.3
Kettle 使用记录
ETL简介
ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。
Kettle简介
Kettle是一款国外开源的ETL工具,纯java编写,可以在Windows、Linux、Unix上运行,数据抽取高效稳定。
Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。
-
特性
- 免费开源
基于java的免费开源的软件,对商业用户也没有限制 - 易配置
可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定 - 不同数据库
ETL工具集,它允许你管理来自不同数据库的数据 - 两种脚本文件
transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制 - 图形界面设计
通过图形界面设计实现做什么业务,无需写代码去实现 - 定时功能
在Job下的start模块,有一个定时功能,可以每日,每周等方式进行定时
- 免费开源
-
Kettle家族产品
- SPOON
允许你通过图形界面来设计ETL转换过程(Transformation) - PAN
允许你批量运行由Spoon设计的ETL转换 (例如使用一个时间调度器)。Pan是一个后台执行的程序,没有图形界面 - CHEF
允许你创建任务(Job)。 任务通过允许每个转换,任务,脚本等等,更有利于自动化更新数据仓库的复杂工作。任务通过允许每个转换,任务,脚本等等。任务将会被检查,看看是否正确地运行了 - KITCHEN
允许你批量使用由Chef设计的任务 (例如使用一个时间调度器)。KITCHEN也是一个后台运行的程序
- SPOON
下载安装
- 官网地址:http://kettle.pentaho.com
- 解压后目录结构
- 使用图形界面Spoon
找到上述目录中的文件Spoon.bat(Windows环境),双击运行;
最终的界面如下:
链接数据库
-
“新建→文件→转换”
-
“主对象树→双击DB连接”
-
配置连接
连接方式若选择Native(JDBC)会出现错误:
更换为JNDI连接,更改配置文件:
在文件尾部添加:mydb_test/type=javax.sql.DataSource mydb_test/driver=com.mysql.cj.jdbc.Driver mydb_test/url=jdbc:mysql://your-host:3306/ your-db?characterEncoding=utf-8&serverTimezone=Asia/Shanghai mydb_test/user=user-name mydb_test/password=your-password
并下载mysql使用的connector驱动
https://dev.mysql.com/downloads/connector/j/
下载最新版即可,兼容大部分版本
解压后将mysql-connector-java-8.0.17.jar放到lib文件夹中重启后连接成功
Kettle简单示例-输出数据库表数据
- 拖拽“核心对象→输入→表输入”至右侧工作区域
- 拖拽“核心对象→输出→文本文件输出”至右侧工作区域
- 鼠标选中上述对象,右键其中一个,选择“新建节点连接”
- 双击“表输入”进行配置
- 双击“文本文件输出”进行配置
- 右键工作区域空白处,选择“转换设置→命名参数”
- 点击“执行→运行”