文章目录

  • 1.1 基本概念
  • 1.1.1 什么是数据仓库?
  • 1.1.2 什么是ETL?
  • 1.2 什么是Kettle?
  • 1.3 Kettle的安装
  • 1.4 Kettle简单使用
  • 1.5 将EXCEL数据导入MySQL
  • 1.5.1 准备工作
  • 1.5.2 操作过程
  • 1.6 数据同步更新组件


1.1 基本概念

在我们学习kettle之前,首先了解两个基本的概念:数据仓库和ETL.

1.1.1 什么是数据仓库?

数据仓库是很大的数据存储的集合,它主要是为了给企业出分析报告或者提供决策而创建的,它和数据库的区别主要还是概念上的,数据库是面向业务的,如果业务的数据库出现问题了,那么软件就无法使用了,而数据仓库是面向分析的,是为了企业做决策使用,比如通过分析企业的利润,来调整企业的业务发展和规划。

简单的来说,数据仓库本质上也是数据库,但是不是面向业务的,是面向分析的,是为企业做决策的,数据仓库数据来源于很多的地方,但是并不是所有的数据都是数据仓库所需要的,所以我们要对源数据进行处理,只获取对我们有用的数据,然后将它们进行筛选、整合。

1.1.2 什么是ETL?

ETL的英文全称为:Extract-Transform-Load,即:抽取-转换-存储,
一般会先将不同源数据抽取出来,然后对数据进行数据清洗,把杂乱的数、无效的数据清洗成规范的、可用的数据,最后存储到数据仓库的过程,将不同的数据整合到一起。而Kettle就是用来一款用于ETL的开源分析工具。

iotdb 可视化 可视化etl_数据库

1.2 什么是Kettle?

Kettle(现已经更名为PDI)是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定,Kettle本意为水壶,它们的开发人员希望各种数据放到水壶里,然后再从壶嘴统一的流出。

1.3 Kettle的安装

由于Kettle是基于java的,所以需要先安装JDK,JDK配置安装完成后,去Kettle的官网http://www.kettle.be/去下载kettle的包,下载后,无需安装,解压即可使用,解压后会有一个data-integration文件夹,进入文件夹,如果是Windows系统直接双击spoon.bat,即可启动,如果是MAC或者Linux系统,在命令行中输入sh ./spoon.sh即可启动,如下图:

iotdb 可视化 可视化etl_数据库_02

1.4 Kettle简单使用

我们先简单的感受一下,Kettle的使用,现在我们有一个文本文件的数据,想要把它抽取到EXCEL文件中,文本文件的数据如下:

id,name,age,gender
1,小明,10,男
2,小红,14,女
3,小刚,15,男
4,小王,16,男
5,小张,18,男
6,小陈,19,男
7,小李,33,男
8,小陈,48,男
9,小杨,58,男
10,小虎,58,男
11,小魏,66,男
12,张飞,38,男
13,关羽,43,男
14,刘备,58,男

下面我们看下具体的操作,首先创建一个转换作业

iotdb 可视化 可视化etl_iotdb 可视化_03

然后找到输入下的文本文件输入,将其拖拽到窗口中,如下图:

iotdb 可视化 可视化etl_数据仓库_04

然后我们再找到输出下的EXCEL文件输出,将其也拖拽到窗口中,如下图:

iotdb 可视化 可视化etl_iotdb 可视化_05

然后按住键盘上的Shift键,将鼠标从文本文件输入控件拖向EXCEL文件建立连接,当这条线显示颜色的时候,表示这个连接是生效的,点击一下就变成灰色了,此时连接是不生效的。

iotdb 可视化 可视化etl_iotdb 可视化_06

建立完连接后,就需要对两个控件进行配置了,首先配置文本文件输入控件,我们双击一下这个控件,进入配置页面,我们首先选择一下文本文件的路径,选择完毕后再点击增加,如下图:

iotdb 可视化 可视化etl_数据库_07


然后我们点击内容的Tab页,进行配置:

iotdb 可视化 可视化etl_数据库_08


然后我们在点击字段Tab页,进行配置

iotdb 可视化 可视化etl_iotdb 可视化_09


配置完成后,我们可以点击预览记录,查看数据的记录,如下图:

iotdb 可视化 可视化etl_数据_10


最后点击确定即配置完成。

下面我们再来配置EXCEL控件,同样是双击控件,进入配置页面,我们首先配置要EXCEL文件的路径,如下图:

iotdb 可视化 可视化etl_数据库_11


然后我们在点击字段Tab页,进行字段的获取,如下图:

iotdb 可视化 可视化etl_etl_12


最后点击确定即配置完成。然后我们将当前的配置方案保存一下,然后点击一下启动,如下图:

iotdb 可视化 可视化etl_数据库_13


然后我们就在相应的路径看到我们转换后的数据了

iotdb 可视化 可视化etl_数据_14

1.5 将EXCEL数据导入MySQL

1.5.1 准备工作

  • 准备一个excel文件,这里我们已上面生成的EXCEL文件为例
  • 一个可用的MySQL数据库
  • mysql-connector-java-8.0.27.jar、mysql-connector-java-5.1.41-bin.jar驱动包放到Kettle的lib目录下,并重启kettle。

1.5.2 操作过程

和上面的操作一样,先确定输入和输出,我们先在输入中拖拽一个EXCEL输入控件,如下图:

iotdb 可视化 可视化etl_iotdb 可视化_15

然后双击控件,配置EXCEL输入控件

iotdb 可视化 可视化etl_数据_16


然后点击工作表Tab页,选择sheet页

iotdb 可视化 可视化etl_数据_17


最后点击字段Tab页,获取字段,点击确定,即配置完成。

iotdb 可视化 可视化etl_etl_18

下面我们再从输出里面拖拽一个表输出控件,并双击进行配置,首先添加一个数据库连接,选择数据库类型,并输入连接相关信息,并测试一下连接,没问题的话,点击确定就可以了,如下图:

iotdb 可视化 可视化etl_数据_19

选择刚才添加的连接,输入表名,点击确定即可。

iotdb 可视化 可视化etl_etl_20

然后按住键盘上的Shift键,将鼠标从EXCEL输入控件拖向表输出建立连接,如下图:

iotdb 可视化 可视化etl_数据仓库_21


最后点击一下启动执行即可吗,如下图:

iotdb 可视化 可视化etl_iotdb 可视化_22


我们再看一下数据库数据,结果如下:

iotdb 可视化 可视化etl_数据_23

1.6 数据同步更新组件

如果我们现在有两张表,表A和表B,我们现在要求,当表A的数据新数据插入或者表数据有更新的时候,能够同步到表B,这个时候我们就需要使用插入/更新组件,示例操作如下:
我们首先从输入中拖入表输入组件,从输入中拖入插入/更新组件,并将两者建立连接,如下图:

iotdb 可视化 可视化etl_etl_24


下面我们先配置输入控件信息,双击该组件,配置完成后,点击确定,如下图:

iotdb 可视化 可视化etl_iotdb 可视化_25


下面我们再配置一下插入/更新组件,双击该组件,配置完成后,点击确定,如下图:

iotdb 可视化 可视化etl_数据库_26


配置完成后,点击执行即可,这里我们简单的总结一下,这个组件就是执行的insertdelete 操作,当数据新增或者有更新的时候,他就会同步数据。