拍摄集

kettle 版本和mysql版本兼容



文章目录

  • 关于ETL的流程熟悉以及自己的见解
  • 一些概念
  • ETL
  • kettle
  • Kettle编写抽取数据
  • 引用jar
  • 库表文件
  • 数据库连接类
  • 表信息封装类
  • 利用kettle进行转换测试
  • 初始化
  • 定义数据库连接
  • 生成表输入
  • 设置sql查询
  • 获取目标库信息
  • 关联input和output步骤
  • 添加监听
  • 执行抽取
  • 控制台输出


一些概念

ETL

ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程.(数据仓 说法就是从数据源抽取数据出来,进行清洗加工转换,然后加载到定义好的。

kettle 版本和mysql版本兼容_java

kettle

Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。

  • Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。
  • Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。
  • Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制(也就是说先转换数据,再做工作流)

kettle 版本和mysql版本兼容_spring_02

解读:如图,可以看到,transformation中进行了发送、读写的步骤转换;job关联transformation基础转换,在进行一系列的工作流操作,比如Ftp获取相关文件、执行SQL转换信息等

Kettle编写抽取数据

下面的讲解没有图形化kettle的,相对应的是底层代码的剖析。因为基于公司的业务没有用到图形化,有兴趣的小伙伴可以转向相关学习网址:

(打开项目)

引用jar

这是我的pom文件,根据不同需求进行微调修改

库表文件

找一个可以测试的mysql库,建立以下的表文件,并在源表插入若干测试数据

数据库连接类

此类封装了数据库连接信息

表信息封装类

此类封装了转换需要的源表、目标表的一些基础信息

利用kettle进行转换测试

前面做好了jar包、相关辅助类的铺垫,现在正式写demo测试代码。

我们建一个测试Test类

kettle 版本和mysql版本兼容_spring_03

初始化

使用kettle必须先要初始化,这里初始化并进行测试数据封装

定义数据库连接

这里有两种方式:xml传参和构造传参

生成表输入
设置sql查询
获取目标库信息
关联input和output步骤
添加监听
执行抽取
控制台输出

当你的控制台输出,是以下类似的输出数据,就说明转换成功,代码跑的没问题。之后再去目标表看下有没有数据生成

kettle 版本和mysql版本兼容_kettle 版本和mysql版本兼容_04


相关推荐