数据清洗(黑马程序员)日常学习笔记——Kettle基础概念

一、Kettle转换

定义:转换是ETL解决方案中重要的组成部分之一, 主要用于数据的抽取、转换以及加载等操作,其本质是一组图形化的数据转换配置的逻辑结构。一个转换包括一个或多个步骤,如读取文件、过滤输出行、数据清洗或将数据加载到数据库中等步骤。转换中的步骤是通过“跳”连接的。 跳定义了一个单向通道, 允许数据从一个步骤向另一个步骤流动。 在Kettle中,数据的单位是行,数据流就是 数据行及一个步骤到另-个步骤的移动。
例:

 图一

图一是一个简单的转换例子

创建转换的步骤:

1.双击Kettle目录下的Spoon.bat脚本,启动Kettle工具,在工具栏处选择文件→新建→转换 命令,创建一个转换,名称默认是“转换1”,如下图所示:

图二

图三(成功创建转换)

转换的核心对象如图四所示:

图四 

2、重命名转换,选择文件→保存 命令,可以对转换进行重命名以及选择转换保存路径,如图所示:

图五 

图六 (重命名为example1)

3、右击空白处,选择“新建注释”命令,添加注释内容;然后单击“输入”,将“表输入”拖拽到Kettle的工作区单击“输出”,将“文本文件输出”拖拽到工作区,按住Ctrl键的同时选中“表输入”和“文本文件输出”并右击,选择“新建节点连接”,单击“确认”按钮,建立“表输入”向“文本文件输出”的连接,具体如下:

图七

图八 

图八就是一个简单的转换的例子,实现了从数据库中读取数据并把数据写到文本文件中,该转换中包含了步骤、跳、注释以及数据行。

图九 

转换的组成部分:

 步骤是转换里的基本组成部分,也可被称为控件,以图标的方式实现。(Kettle转换中的步骤按功能分类课分为输入类、输出类、操作类以及脚本类等,每个步骤都完成一种特殊的功能。)

跳是步骤之间带箭头的连接线,即数据的通道,用于连接两个步骤,实现将元数据从一个步骤传递到另一个步骤,支持分发和复制等方式。(Kettle中,所有步骤都是以并发方式执行的)

注释是一个特殊的存在,不参与程序的处理,它以文本描述的方式呈现在作业中,只为增强流程的可读性,可放在流程图中的任意一个位置。

数据是以数据行的形式沿着步骤流动。一个数据行是从零到多个字段的集合。、

二、Kettle作业

一个作业包含一个或者多个作业项,并且这些作业项都是以某种顺序进行执行的。作业执行的顺序由作业项之间的跳(Job Hop)和每个作业项的执行结果决定。

 图十

图十是一个简单的作业例子

作业的核心对象如下图所示:

图十一 

创建作业的步骤:

1、双击Kettle目录下的Spoon.bat脚本,启动Kettle工具,在工具栏处选择文件→新建→作业 命令,创建一个作业,名称默认是“作业1”,如下图所示:


图十二(成功创建作业)

2、重命名作业,选择文件→保存 命令,可以对作业进行重命名以及选择作业保存路径,如图所示:

图十三 

图十四(作业重命名为job1) 

3、右击空白处,选择“新建注释”命令,添加注释内容;然后单击“通用”,将“start”和“作业”依次拖拽到Kettle的工作区;单击“邮件”,将“发送邮件”拖拽到工作区,按住Ctrl键的同时选中“start”和“作业”并右击,选择“新建节点连接”,单击“确认”按钮,建立“start”和“作业”之间的连接,再通过同样的操作将“作业”与“作业”、“作业”与“发送邮件”之间也建立 连接,具体如下:

图十五(一个简单的作业例子) 

图十五就是一个简单的作业的例子,是一个典型的加载数据到数据仓库的作业,该作业中包含作业项、作业跳以及多路径和回溯。

作业的组成部分:

作业项是作业的基本构成部分,也可称为控件。作业项类似于转换中的步骤,也可以使用图标的方式进行图形化展示。(所有作业项目都是以串行方式执行的)

作业跳是作业项之间的连接线,它定义了作业的执行路径。作业里每个作业项的不同运行结果决定了作业的不同执行路径,具体有:

(1)无条件执行:不论上一个作业项执行成功还是执行失败,下一个作业项都会执行

(2)当运行结果为“真”时则执行:当上一个作业项的执行结果为“真”时,执行下一个作业项。(通常需要在无错误执行的情况下使用)

(3)当运行结果为“假”时则执行:当上一个作业项的执行结果为“假”或者没有执行成功执行时,执行下一个作业项

多路径和回溯:

Kettle使用一种回溯算法执行作业里的所有作业项 并且作业项的执行结果(真/假)决定执行的路径。回潮算法: 假设执行到一条路径的某个 节点时,,依次执行这个节点的所有子路径,直到没有可执行的子路径,就返 回该节点的上一个节点,如此反复。
下面通过一不简单的例子介绍回潮算法,具体 如图十六所示。

由于没有定义作业的执行顺序,上述执行顺序可以为(A→B→C),也可以为(C→A→B) 

作业项结果:

作业项的执行结果不仅决定了作业的执行路径,还向下一个作业项传递了一个结果对象,结果对象包含一组数据行、一组文件名、行数(读、写、输人、输出、更新、删除、拒绝的行数)、错误数(转换中的错误数)以及脚本作业项的退出状态。

四、发送邮件:

(1)打开Kettle工具,创建人如图所示的一个作业;

(2)配置start控件,如下图所示;

 

 (3)配置发送邮件控件;

 

ps:邮箱要开启smtp功能,否则连接不上服务器。登录密码是下图生成的授权码。

 (4)运行作业;

(5)收到的邮件信息;

 五、连接数据库

(1)打开Kettle工具,创建转换;

(2)配置“CSV文件输入”控件;

 (3)配置“表输出”控件; 

 

连接数据库 

数据库连接成功 

 

 

输入字段映射 

(4)运行转换;

 

(5)通过SQLyog工具查看数据表是否成功插入数据; 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值