【大数据ETL工具,Kettle的学习和使用】

第1章 Kettle概述

1.1 ETL简介

ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种ETL工具的使用,必不可少。
市面上常用的ETL工具有很多,比如Sqoop,DataX,Kettle,Talend等,作为一个大数据工程师,我们最好要掌握其中的两到三种,这里我们要学习的ETL工具是Kettle!

1.2 Kettle简介

Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。
Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。
Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。
Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
Kettle(现在已经更名为PDI,Pentaho Data Integration-Pentaho数据集成)。

1.Kettle 输入控件

  • CSV文件输入
  • 文本文件输入
  • Excel输入
  • XML输入
  • JSON输入
  • 表输入

2.Kettle 输出控件

  • Excel输出
  • 文本文件输出
  • SQL文件输出
  • 表输出
  • 更新&插入/更新
  • 删除

3.Kettle 转换控件

3.1 kettle的转换控件,是ETL里面的T(Transform),主要工作是进行数据转换,数据清洗
3.2 ETL整个过程中,Transform的工作量最大,耗时也久,约整个ETL的2/3。
3.3 Kettle的常用转换控件有:

  • 1 Concat fields
  • 2.值映射
  • 3.列拆分
  • 4.列转行
  • 5.剪切字符串
  • 6.去除重复记录
  • 7.唯一行(哈希值)
  • 8.增加常量
  • 9.增加序列
  • 10.字段选择
  • 11.字符串操作
  • 12.字符串替换
  • 13.拆分字段
  • 14.排序记录
  • 15.行扁平化
  • 16.行转列
  • 17.计算器

3.1 Concat Fileds(拼接字段)

转换控件Concat fields,顾名思义,就是将多个字段连接起来形成一个新的字段。
练习:将staff表的firstname和lastname拼接起来,形成name字段,然后再将数据插入到新表emp中

3.2 值映射(把字段一个值映射成其他值)

本章节任务:将staff表的sex字段,映射成男or女,然后再插入到emp表中

3.3 增加常量&增加序列(给数据流加一列相同值&加一列序列)

3.4 字段选择(从数据流选择字段、改变名称,类型)

3.5 计算器 (通过函数集合创建新的字段)

3.6 字符串剪切&替换&操作

剪切字符串是指定输入流字段裁剪的位置剪切出新的字段。
字符串替换是指定搜索内容和替换内容,如果输入流的字段匹配上搜索内容就进行替换生成新字段。
字符串操作是去除字符串两端的空格和大小写切换,并生成新的字段。

3.7 排序记录&去除重复记录

去除重复记录是去除数据流里面相同的数据行。但是此控件使用之前要求必须先对数据进行排序,对数据排序用的控件是排序记录,排序记录控件可以按照指定字段的升序或者降序对数据流进行排序。因此排序记录+去除重复记录控件常常配合组队使用。

3.8 唯一行(哈希值)

唯一行(哈希值)就是删除数据流重复的行。此控件的效果和(排序记录+去除重复记录)的效果是一样的,但是实现的原理不同。排序记录+去除重复记录对比的是每两行之间的数据,而唯一行(哈希值)是给每一行的数据建立哈希值,通过哈希值来比较数据是否重复,因此唯一行(哈希值)去重效率比较高,也更建议大家使用。

3.9 拆分字段

拆分字段是把字段按照分隔符拆分成两个或多个字段。需要注意的是,字段拆分以后,原字段就会从数据流中消失。

3.10 列拆分为多行

列拆分为多行就是把指定字段按指定分隔符进行拆分为多行,然后其他字段直接复制。

3.11 行扁平化

行扁平化就是把同一组的多行数据合并成为一行,可以理解为列拆分为多行的逆向操作。

3.12 列转行(顾名思义)

列转行,顾名思义多列转一行,就是如果数据一列有相同的值,按照指定的字段,将其中一列的字段内容变成不同的列,然后把多行数据转换为一行数据的过程。

3.13 行转列

行转列,一行转多列,就是把数据字段的字段名转换为一列,把数据行变为数据列。我们也可以简单理解为行转列控件是列转行控件的逆向操作。

4 Kettle应用控件

  • 替换NULL值
  • 写日志

5 Kettle流程控件

  • Switch/case
  • 过滤记录
  • 空操作
  • 中止

6 Kettle查询控件

  • 数据库查询
  • 流查询

7 Kettle连接控件

  • 合并记录
  • 记录集连接

8 Kettle统计控件

  • 分组

9 Kettle映射控件

  • 映射

10 Kettle脚本控件

  • 执行SQL脚本
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宇智波.望

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值