《数据清洗》第三章 | 您所在的位置:网站首页 › kettle中字符串操作有哪些功能 › 《数据清洗》第三章 |
文章目录
前言 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 实验室设备网 版权所有 |