无事来学学--Kettle的转换概念和七大特点详细讲解

简介: 转换包括一个或多个步骤,步骤之间通过跳(hop)来连接。跳定义了一个单向通道,允许数据从一个步骤流向另一个步骤。在Kettle中,数据的单位是行,数据流就是数据行从一个步骤到另一个步骤的移动。

步骤


是转换的基本组成部分,以图标的形式出现。如(表输入、文本文件输出)。步骤将数据写到与之相连的一个或多个输出跳,再传送到跳的另一端的步骤。这说明,跳是步骤之间带箭头的连线, 其实是两个步骤之间的,被称为行集(rowset)的,数据行缓存。(行集的大小可以在转换里定义)

一个步骤的数据发送可以设置为轮流发送和复制发送;轮流发送:将数据行依次发给每一个输出跳;复制发送:将全部数据行发送给所有输出跳。(shift + 鼠标左键 可以快速地新建一个跳)

在Kettle中,所有的步骤都以并发的方式执行,当转换启动后,所有的步骤都同时启动,从它们的输入跳中读取数据,并把处理过的数据写到输出跳,直到输入跳里不再有数据,就中止步骤的运行。当所有的步骤都中止了,整个转换就中止了。数据行:一个数据行是零到多个字段的集合。


 

特点一:

Kettle在运行转换的时候,根据用户的设置,可以将数据以不同的方式发送到多个数据流中。

注意:有两种基本发送方式,即分发和复制,分发类似于发扑克牌,以轮流的方式将每行数据只发给一个数据流。复制是将一行数据发给所有数据流。


特点二:

转换以并行的方式执行,就需要一个可以串行执行的作业来处理这些操作(作业以串行执行)。


特点三:

ETL解决方法中最主要的部分,它处理抽取,转换,加载各阶段各种对数据行的操作。转换包括一个或者多个步骤(step),如读取文件,过滤输出行,数据清洗或者将数据加载到数据库。转换里面的步骤通过跳(hop)来连接,跳定义了一个单向通道,允许数据从一个步骤向另一个步骤流动。

在Kettle里面,数据的单位是行,数据流就是数据行从一个步骤到另一个步骤的移动。数据流的另一个同义词就是记录流。注意,转换里面还可以包含注释,注释一个小的文本框,可以放在转换流图的任何位置。注释的主要目的是使转换文档化,方便自己以后熟悉和学习。


特点四:

转换的注意点,步骤是转换里面的基本组成部分,它以图标的方式图形化的展示。一个步骤有如下几个关键特性。步骤需要有一个名字,且这个名字在转换范围里唯一。步骤将数据写到与之相连的一个或者多个输出跳(outgoing hops),再传送到跳的另一端的步骤。

对另一端步骤来说这个跳就是一个输入跳(incoming hops),步骤通过输入跳接受数据。大多数的步骤都可以有多个输出跳。一个步骤的数据发送可以被设置为轮流发送和复制发送。轮流发送是将数据行依次发给每一个输出跳(这种方式也称为round robin),复制发送是将全部数据行发送给所有输出跳。

在运行转换的时候,一个线程运行一个步骤和步骤的多份拷贝,所有的步骤的线程几乎同时运行,数据行连续的流过步骤之前的跳。


特点五:

转换的跳。跳(hop)就是步骤之间带箭头的连线,跳定义了步骤之间的数据通路

跳实际上是两个步骤之间的被成为行集(row set)的数据行缓存(行集的大小可以在转换的设置里面定义)。当行集满了,向行集写数据的步骤将停止写入,直到行集里又有了空间。当行集空了,从行集读取数据的步骤停止读取,直到行集里面又有了可读的数据行。注意,当创建新跳的时候,需要记住跳在转换里面不能循环。因为在转换里面每个步骤都依赖前一个步骤获取字段值。


特点六:

转换的并行

跳的这种基于行集缓存的规则允许每个步骤都由一个独立的线程运行,这样并发程度最高。

这一规则也运行数据以最小消耗内存的数据流的方式来处理。在数据仓库里面,我们经常要处理大量数据,所以这种并发低耗内存的方式也是ETL工具的核心需求。

对于kettle,不可能定义一个执行顺序,不可能也没有必要确定一个起点和终点。因为所有步骤都以并发方式执行。当转换启动后,所有步骤都同时启动,从他们的输入跳中读取数据,并把处理过的数据都写到输出跳,直到输入跳里面不再有数据,就中止步骤的运行。当所有的步骤都中止了,整个转换就中止了,也就是说,从功能的角度来看,转换也有明确的起点和终点。注意,转换里面的步骤几乎是同时启动的,所有如果想要一个任务沿着指定的顺序执行,那么就要使用作业(job)了。


特点七:

转换的设计

当设计转换的时候有几个数据类型的规则需要注意。行级里所有行都应该有同样的数据结构。就是说,当从多个步骤向一个步骤里面写数据的时候,多个步骤输出的数据行应该有相同的结构,即字段相同,字段数据类型相同,字段顺序相同。字段元数据不会在转换中发生变化。


意思就是说,字符串不会自动截取长度以适应指定的长度,浮点数也不会自动取整以适应指定的精度。这些功能必须通过一些指定的步骤来完成。默认情况下,空字符串””,被认为与NULL相同。

目录
相关文章
|
3月前
|
存储 Web App开发 运维
发布、部署,傻傻分不清楚?从概念到实际场景,再到工具应用,一篇文章让你彻底搞清楚
部署和发布是软件工程中经常互换使用的两个术语,甚至感觉是等价的。然而,它们是不同的! • 部署是将软件从一个受控环境转移到另一个受控环境,它的目的是将软件从开发状态转化为生产状态,使得软件可以为用户提供服务。 • 发布是将软件推向用户的过程,应用程序需要多次更新、安全补丁和代码更改,跨平台和环境部署需要对版本进行适当的管理,有一定的计划性和管控因素。
151 1
|
11月前
|
SQL 数据采集 数据库连接
kettle基础概念理解
kettle基础概念理解
92 0
|
11月前
|
设计模式 算法 Java
【Java设计模式 学习目标及大纲】高质量代码的标准及实现路径
【Java设计模式 学习目标及大纲】高质量代码的标准及实现路径
85 0
|
11月前
|
测试技术
【解决方案 二十一】系统专业名词梳理及释义
【解决方案 二十一】系统专业名词梳理及释义
66 0
|
SQL 存储 Oracle
分布式事物-全面详解(学习总结---从入门到深化)(1)
事务就是针对数据库的一组操作,它可以由一条或多条SQL语句组 成,同一个事务的操作具备同步的特点,事务中的语句要么都执 行,要么都不执行。
101 0
分布式事物-全面详解(学习总结---从入门到深化)(1)
|
存储 SQL Oracle
分布式事物-全面详解(学习总结---从入门到深化)(2)
不同的Redo Log刷盘规则,对MySQL数据库性能的影响也不同。
110 0
分布式事物-全面详解(学习总结---从入门到深化)(2)
|
存储 开发框架 Java
分布式事物-全面详解(学习总结---从入门到深化)(3)
下载seata服务器 下载地址 :https://github.com/seata/seata/releases
85 0
分布式事物-全面详解(学习总结---从入门到深化)(3)
|
消息中间件 存储 中间件
|
SQL Dubbo 架构师
分布式事物-全面详解(学习总结---从入门到深化)(4)
本案例使用Atomikos框架实现XA强一致性分布式事务,模拟跨库转账的业务场景。不同账户之间的转账操作通过同一个项目程序完成。
201 0
分布式事物-全面详解(学习总结---从入门到深化)(4)
|
监控 数据可视化 测试技术
软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型
软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型
203 0
软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型