目录

  • 1.简介
  • 2.csv文件输入
  • 3.文本文件输入
  • 4.Excel文件输入
  • 5.多文件合并
  • 6.XML /XPath /Get data from XML
  • 7.生成记录
  • 8.表输入
  • 9.Excel输出
  • 10.文本文件输出
  • 11.sql文件输出
  • 12.表输出
  • 13.更新
  • 14.插入更新
  • 15.自定义常量数据/删除
  • 16.转换 /Concat fields

1.简介

ETL

ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。

kettle

Kettle 是 PDI 以前的名称,PDI 的全称是Pentaho Data Integeration,Kettle 本意是水壶的意思,表达了数据流的含义。Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。作为Pentaho的一个重要组成部分,现在在国内项目应用上逐渐增多。

kettle目录意思

kettle工具会比mysql更快吗 kettle有什么作用_数据

kettle工具会比mysql更快吗 kettle有什么作用_数据_02

kettle工具会比mysql更快吗 kettle有什么作用_mysql_03

2.csv文件输入

输入:就是用来抽取数据或生成数据。是ETL操作的E

csv文件是一种带有固定格式的文本文件

练习:把csv文件的数据复制到excel文件

kettle工具会比mysql更快吗 kettle有什么作用_mysql_04

kettle工具会比mysql更快吗 kettle有什么作用_mysql_05

3.文本文件输入

提取日志信息的数据是开发常见的操作,日志信息基本都是文本类型,如果要处理文本信息,就采用文本输入

练习:把文本文件的数据复制到excel文件

1.准备文本文件

kettle工具会比mysql更快吗 kettle有什么作用_数据_06

2.添加转换

kettle工具会比mysql更快吗 kettle有什么作用_mysql_07

kettle工具会比mysql更快吗 kettle有什么作用_kettle工具会比mysql更快吗_08

kettle工具会比mysql更快吗 kettle有什么作用_mysql_09

查看excel转换的文本文件

kettle工具会比mysql更快吗 kettle有什么作用_kettle工具会比mysql更快吗_10

4.Excel文件输入

微软的Excel目前有两种后缀名的文件:xls和xlsx

xls:2007年之前

xlsx:2007年之后

练习:把Excel文件的数据复制到Excel文件

kettle工具会比mysql更快吗 kettle有什么作用_数据_11

kettle工具会比mysql更快吗 kettle有什么作用_kettle工具会比mysql更快吗_12

5.多文件合并

数据往往也是以多个文件的形式出现,有的数据还会分散在多个子文件夹,所以合并数据

练习:读取input目录下以04多文件合并开头的所有Excel数据合并到一个Excel

kettle工具会比mysql更快吗 kettle有什么作用_文本文件_13

kettle工具会比mysql更快吗 kettle有什么作用_文本文件_14

kettle工具会比mysql更快吗 kettle有什么作用_kettle工具会比mysql更快吗_15

kettle工具会比mysql更快吗 kettle有什么作用_文本文件_16

6.XML /XPath /Get data from XML

kettle工具会比mysql更快吗 kettle有什么作用_mysql_17

kettle工具会比mysql更快吗 kettle有什么作用_文本文件_18

kettle工具会比mysql更快吗 kettle有什么作用_文本文件_19

练习:从xml文件中提取testDescription、rowID、v1、v2数据保存到excel中

kettle工具会比mysql更快吗 kettle有什么作用_文本文件_20

kettle工具会比mysql更快吗 kettle有什么作用_文本文件_21

kettle工具会比mysql更快吗 kettle有什么作用_mysql_22

7.生成记录

练习:往excel文件中插入1000条记录:id为1,name为cdan,age为18

kettle工具会比mysql更快吗 kettle有什么作用_kettle工具会比mysql更快吗_23

8.表输入

练习:从mysql数据库的mysql库的user表获取所有数据插入到Excel文件

前提:先用Navicat连接数据库

kettle工具会比mysql更快吗 kettle有什么作用_mysql_24

kettle工具会比mysql更快吗 kettle有什么作用_数据_25

kettle工具会比mysql更快吗 kettle有什么作用_文本文件_26

9.Excel输出

练习:从mysql数据库的mysql库的user表读取数据插入到excel的.xls和.xlsx的文件中

kettle工具会比mysql更快吗 kettle有什么作用_文本文件_27

10.文本文件输出

练习:从mysql数据库的mysql库的user表读取数据插入到.txt和.csv的

kettle工具会比mysql更快吗 kettle有什么作用_数据_28

kettle工具会比mysql更快吗 kettle有什么作用_mysql_29

11.sql文件输出

SQL文件输出可以导出数据库表的结构和数据

练习:获取mysql数据库的user表的结构和数据的SQL文件

kettle工具会比mysql更快吗 kettle有什么作用_kettle工具会比mysql更快吗_30

12.表输出

表输出就是把数据写入到指定的表

练习:从excel中读取id,name,age字段的数据,并写入到mysql数据库的04table-output中

kettle工具会比mysql更快吗 kettle有什么作用_文本文件_31

kettle工具会比mysql更快吗 kettle有什么作用_数据_32

13.更新

练习从excel读取数据,并把数据更新到test数据库的04table-output中

1.新建转换。excel输入(输入)---->更新(输出)
2.增加需要更新的excel输入

kettle工具会比mysql更快吗 kettle有什么作用_数据_33

kettle工具会比mysql更快吗 kettle有什么作用_kettle工具会比mysql更快吗_34

kettle工具会比mysql更快吗 kettle有什么作用_kettle工具会比mysql更快吗_35

3.更新指定库下的表

kettle工具会比mysql更快吗 kettle有什么作用_mysql_36

确定后执行,表已更新

14.插入更新

插入更新就是把数据库已经存在的记录与数据流里面的记录进行比对,如果不同就进行更新。如果记录不存在,则会插入数据。

练习:从excel中读取id,name,age字段的数据,并插入更新到mysql/test数据库的table_output表中

kettle工具会比mysql更快吗 kettle有什么作用_数据_37

kettle工具会比mysql更快吗 kettle有什么作用_kettle工具会比mysql更快吗_38

kettle工具会比mysql更快吗 kettle有什么作用_mysql_39

15.自定义常量数据/删除

自定义常量数据就是生成key-value形式的常量数据

删除就是删除数据库表中指定条件的数据

练习:从mysql/test数据库table_output表中删除指定id为1的数据

kettle工具会比mysql更快吗 kettle有什么作用_kettle工具会比mysql更快吗_40

kettle工具会比mysql更快吗 kettle有什么作用_数据_41

kettle工具会比mysql更快吗 kettle有什么作用_kettle工具会比mysql更快吗_42

16.转换 /Concat fields

转换是转换里面的第四个分类

转换属于ETL的T,T就是清洗、转换

ETL三个部分中,T花费时间最长

Concat fields就是多个字段连接起来形成一个新的字段

练习:从excel中获取FirstName和LastName,并把2者连接起来,输出到excel

kettle工具会比mysql更快吗 kettle有什么作用_数据_43

kettle工具会比mysql更快吗 kettle有什么作用_文本文件_44

kettle工具会比mysql更快吗 kettle有什么作用_数据_45