kettle基础概念的学习

参考书籍:Pentaho Kettle Solutions中文版。因为最近不断的使用kettle,随着不断深刻使用,遇到的问题愈来愈多,发现脑子那点货根本不够用,因此根据阅读把一些概念记录一下,方便本身观看,也但愿读看到帖子的有所帮助。数据库

一、转换。Kettle在运行转换的时候,根据用户的设置,能够将数据以不一样的方式发送到多个数据流中。
注意:有两种基本发送方式,即分发和复制,分发相似于发扑克牌,以轮流的方式将每行数据只发给一个数据流。复制是将一行数据发给全部数据流。缓存

二、转换。转换以并行的方式执行,就须要一个能够串行执行的做业来处理这些操做(做业以串行执行)。服务器

三、转换。是ETL解决方法中最主要的部分,它处理抽取,转换,加载各阶段各类对数据行的操做。转换包括一个或者多个步骤(step),如读取文件,过滤输出行,数据清洗或者将数据加载到数据库。转换里面的步骤经过跳(hop)来链接,跳定义了一个单向通道,容许数据从一个步骤向另外一个步骤流动。在Kettle里面,数据的单位是行,数据流就是数据行从一个步骤到另外一个步骤的移动。数据流的另外一个同义词就是记录流。注意,转换里面还能够包含注释,注释一个小的文本框,能够放在转换流图的任何位置。注释的主要目的是使转换文档化,方便本身之后熟悉和学习。数据结构

四、转换。转换的注意点,步骤是转换里面的基本组成部分,它以图标的方式图形化的展现。一个步骤有以下几个关键特性。步骤须要有一个名字,且这个名字在转换范围里惟一。步骤将数据写到与之相连的一个或者多个输出跳(outgoing hops),再传送到跳的另外一端的步骤。对另外一端步骤来讲这个跳就是一个输入跳(incoming hops),步骤经过输入跳接受数据。大多数的步骤均可以有多个输出跳。一个步骤的数据发送能够被设置为轮流发送和复制发送。轮流发送是将数据行依次发给每个输出跳(这种方式也称为round robin),复制发送是将所有数据行发送给全部输出跳。在运行转换的时候,一个线程运行一个步骤和步骤的多份拷贝,全部的步骤的线程几乎同时运行,数据行连续的流过步骤以前的跳。并发

五、转换的跳。跳(hop)就是步骤之间带箭头的连线,跳定义了步骤之间的数据通路。跳其实是两个步骤之间的被成为行集(row set)的数据行缓存(行集的大小能够在转换的设置里面定义)。当行集满了,向行集写数据的步骤将中止写入,直到行集里又有了空间。当行集空了,从行集读取数据的步骤中止读取,直到行集里面又有了可读的数据行。注意,当建立新跳的时候,须要记住跳在转换里面不能循环。由于在转换里面每一个步骤都依赖前一个步骤获取字段值。分布式

六、转换的并行。跳的这种基于行集缓存的规则容许每一个步骤都由一个独立的线程运行,这样并发程度最高。这一规则也运行数据以最小消耗内存的数据流的方式来处理。在数据仓库里面,咱们常常要处理大量数据,因此这种并发低耗内存的方式也是ETL工具的核心需求。对于kettle,不可能定义一个执行顺序,不可能也没有必要肯定一个起点和终点。由于全部步骤都以并发方式执行。当转换启动后,全部步骤都同时启动,从他们的输入跳中读取数据,并把处理过的数据都写到输出跳,直到输入跳里面再也不有数据,就停止步骤的运行。当全部的步骤都停止了,整个转换就停止了,也就是说,从功能的角度来看,转换也有明确的起点和终点。注意,转换里面的步骤几乎是同时启动的,全部若是想要一个任务沿着指定的顺序执行,那么就要使用做业(job)了。工具

七、转换的设计。当设计转换的时候有几个数据类型的规则须要注意。行级里全部行都应该有一样的数据结构。就是说,当从多个步骤向一个步骤里面写数据的时候,多个步骤输出的数据行应该有相同的结构,即字段相同,字段数据类型相同,字段顺序相同。字段元数据不会在转换中发生变化。意思就是说,字符串不会自动截取长度以适应指定的长度,浮点数也不会自动取整以适应指定的精度。这些功能必须经过一些指定的步骤来完成。默认状况下,空字符串"",被认为与NULL相同。性能

八、做业(job)。做业按照必定的顺序完成,由于转换以并行方式执行的,就须要一个能够串行执行的做业来处理一系列按照顺序完成的操做。一个做业包括一个或者多个做业项,这些做业项以某种顺序来执行。做业执行顺序由做业项之间的跳(job hop)和每一个做业项的执行结构来决定。如同转换,做业里面也能够包括注释。
学习

九、做业项。做业项是做业的基本构成部分。如同转换的步骤,做业项也可使用图标的方式图形化展现。做业项的注意点。新步骤的名字应该是惟一的,可是做业项能够有影子拷贝。这样能够把一个做业项放在不一样的位置。这些影子拷贝里的信息都是相同的,编辑一份拷贝,其余拷贝也会随之修改。在做业项之间能够传递一个结果对象(result object)。这个结果对象里包含了数据行,它们不是以流的方式来传递的。而是等一个做业项执行完了,再传递给下一个做业项。默认状况下,全部的做业项都是以串行方式执行的,只是在特殊状况下,以并行方式执行。spa

十、kettle启动脚本介绍(window版本)。

Spoon.bat,集成开发环境。提供了一个图形化用户界面,用于建立或者编辑做业或者转换。Spoon也能够用于执行或者调试做业或者转换,它也有性能监控的功能。
Kitchen.bat,做业的命令行运行程序,能够经过Sheel脚原本调用。Scheel脚本通常经过调度程序,如cron或者Windwos计划任务,来调度执行。
Pan.bat,转换的命令运行程序,和Kitchen同样经过Sheel脚原本调用。执行转换而不是做业。
Carte.bat,轻量级的Http服务器(基于Jetty),后台运行,监听Http请求来运行一个做业。Carte用于分布式和协调跨机器执行做业,也就是Kettle的集群。

 

待续......

相关文章
相关标签/搜索