《数据清洗》第三章 您所在的位置:网站首页 kettle中字符串操作有哪些功能 《数据清洗》第三章

《数据清洗》第三章

2024-03-27 02:33| 来源: 网络整理| 查看: 265

文章目录​​​​​

前言

3.1 Kettle简介

3.1.1 Kettle概述

3.1.2 的设计原则

3.2 Kettle 的下载安装

3.3 Kettle 的基本概念

3.3.1 转换

3.3.2作业

3.4 Kettle的基本功能

3.4.1转换管理

3.4.2作业管理

总结

前言

  Kettle 是一款国外免费开源的轻量级ETL工具,是基于Java语言开发的,可以在Windows、Linux、UNIX系统上运行,并且是绿色无需安装的,可以用于各种数据库之间数据的迁移。

3.1 Kettle简介 3.1.1 Kettle概述

  Kettle 工具主要由4个组件组成,分别是Spoon、Pan、Kitchen及Carte 组件,具体功能介绍如下。

  Spoon是Kettled的集成开发环境,它会提供一个基于SWT的图形用户界面,主要用于构建ETL Jobs(作业)和 Transformations(转换),也可用于执行或调试作业、转换,还可以用于监控ETL操作的性能。

  Pan 是以命令行的方式(即编写Shell脚本)执行Spoon生成的Transformations程序,运行在后台,并且该组件没有图形化用户界面。

  Kitchen是以命令行的方式(即编写Shell脚本)执行Spoon生成的Jobs程序,运行在后台,并且该组件没有图形化用户界面。

 Carte 是Kettle 中的一个重要组件,它是基于Jetty的轻量级HTTP服务器,运行在后台,主要用于远程监控HTTP执行Jobs 和 Transformations的进度。

3.1.2 的设计原则

1.易于开发;

2.避免自定义开发;

3.所有功能都能通过用户界面完成;

4.没有命名限制;

5.透明;

6.灵活的数据通道;

7.只映射需要映射的字段。

3.2 Kettle 的下载安装

1.下载Kettle安装包:下载地址             https://sourceforge.net/projects/pentaho/files/Data%20Integration/。

2.安装 Kettle 

  由于Kettle工具是绿色无需安装的,因此我们只要解压下载的Kettle工具。

3.配置Kettle

  将Java和Kettle的安装路径都添加至系统环境变量;将数据库驱动添加至Kettle安装包下的lib文件夹下。

4.启动Kettle

  双击 Kettle 安装目录下的Spoon.bat脚本,启动 Kettle。

3.3 Kettle 的基本概念

  一个数据抽取过程主要包括创建一个作业,并且每个作业可以包括多个转换操作。Kettle 工具的执行分为两个层次,即转换和作业,这两个层次最主要的区别在于数据传递和执行方式。

3.3.1 转换

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

  转换例子如图 3-1 所示:

                   图 3-1 简单的转换例子

 从图 3-1 可以看出,这个简单的转换例子是实现从数据库中读取数据,并把数据写到文本文件中,该转换包含了步骤、跳、注释以及数据行,具体介绍如下。

1. 步骤

  步骤是转换里的基本组成部分,也可被称为控件。步骤是以图标的方式展现。例如“表输入”步骤、“文本文件输出”等步骤。一般地,每个步骤都会具有一些关键特性,具体如下:

  (1) 每个步骤都必须有一个名字,并且这个名字在转换范围内唯一。

(2)每个步骤都可以读、写数据行。

(3)步骤将数据写到与之相连的一个或多个输出跳,再传送到跳的另一端的步骤。对于另一端的步骤来说,这个跳就是一个输入跳,步骤通过输入跳接收数据。

(4)大多数的步骤都可以有多个输入跳,一个步骤的数据发送可以被设置为轮流发送和复制发送。轮流发送是将数据行依次发给每个输入跳。复制发送是将全部数据行发送给所有的输入跳。

(5)在运行转换时,一个线程运行一个步骤和步骤的多份副本,所有副本的线程几乎同时运行,数据行就会连续流过步骤之间的跳。

2. 跳

  跳是步骤之间带箭头的连接线,即数据的通道,用于连接两个步骤,实现将元数据从一个步骤传递到另一个步骤,支持分发和复制方式。需要注意的是,由于每个步骤都是单独线程,当启动转换时,每个步骤都会创建各自线程并接收和推送传递数据,因此数据处理的顺序并不是按照节点连接箭头的顺序来执行的。

3.注释

  注释是一个特殊的存在,不参与程序的处理,它以文本描述的方式呈现在转换/作业中,只为增强流程的可读性,可放在流程图中的任何一个位置。注释的重要性是毋庸置疑的,必要的注释可大大减少维护成本。

4.数据行

  数据是以数据行的形式沿着步骤流动。一个数据行是从零到多个字段的集合,字段的类型一共有十种,具体如表所示。

数据类型相关说明String字符类型的数据Number双精度浮点数BigNumber任意精度数值Integer带符号长整型(64位)Internet Address互联网地址Date带毫秒精度的日期时间值Serializable序列化的数据Boolean取值为 true 或  false 的布尔值Binary包括图像、声音、视频以及其他类型的二进制数据Timestamp时间戳

3.3.2作业

  目前,大多数的ETL项目都需要完成各种各样的维护工作。例如,如何传送文件、验证数据库中的数据表是否存在等操作,这些操作都必须按照一定顺序完成,由于转换是以并行方式执行的,因此需要一个可以串行执行的作业来处理这些操作。 一个作业包含一个或者多个作业项,并且这些作业项都是以某种顺序来进行执行的。作业执行的顺序由作业项之间的跳(Job Hop)和每个作业项的执行结果来决定。

例子如 图 3-2 所示:

图 3-2  一个简单的作业例子

  1.作业项                                                                                                                                                作业项是作业的基本构成部分,也可称之为控件。作业项类似于转换中的步骤,也可以使用图标的方式进行图形化展示。

  2. 作业跳

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

3.多回路和回溯

  Kette使用一种回溯算法来执行作业里的所有作业项,并且作业项的执行结果(真/假)决定执行的路径。回溯算法:假设执行到一条路径的某个节点时,依次执行这个节点的所有子路径,直到没有可执行的子路径,就返回该节点的上一个节点,如此反复。

4.作业项结果

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

3.4 Kettle的基本功能 3.4.1转换管理

  在Kettle工具中,转换管理主要包括输入、输出、转换、应用、流程、脚本、查询、连接、检验、作业、映射、批量加载等功能。

  以下是通过kettle工具的转换实现将一张数据表的两个数据字段进行拼接,然后插到另一张数据表中,步骤如下:

1.数据准备

2.使用kettle 工具,创建转换

3.配置“表输入”控件

4.配置“JavaScript代码”控件

5.配置“插入/更新”控件

6.运行转换“zhuanghuan1"

7.查看最后的数据表;

运行结果如下:

           图3-3 转换成功

     

 图3-4 转换结果

3.4.2作业管理

  在Kettle工具中,作业管理主要包括通用、邮件、文件管理、条件、脚本、批量加载以及应用等功能。

通过Kettle工具的作业来实现发送邮件,步骤如下:

1.打开Kettle 工具,创建作业

2.配置Start 控件

3.配置 "发送邮件" 控件

4.运行 send-email 作业

5.查看邮件的收件箱

 图3-5 运行作业结果

  总结

  在使用kettle工具实现转换和作业的例子时候,遇到一些问题,比如在实现转换例子时,出现转换不成功的问题,经过多次调试解决了该问题。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有