kettle介绍及组成

一、kettle 是什么

kettle 是一个ETL工具,ETL(Extract-Transform-Load,数据抽取、转换、装载);
kettle 是java编写,绿色无需安装,抽取高效稳定;
kettle 主要用来对不同数据库的数据,不同来源的数据进场处理;
kettle 提供图形化的用户界面,用来使用户使用时描述 想做什么,而不是想要怎么做;
kettle 有两种脚本文件 transformationjob;transformation 是转换,job 是对多个转换构建的整个工作流的抽象和控制;

kettle 的概念模型

kettle sql server驱动程序下载 kettle服务_数据


执行分为两个层析:job和transformation

二、kettle 的组成

kettle 的结构由两部分组成:Spoon 和 Data Integration Server

  • Spoon:
  • 是构建ETL Jobs和Transformations的工具。
  • 是以拖拽图形化进行设计转换和作业。
  • 可以通过Spoon调用数据集成引擎或者集群;
  • Data Integration Server:
  • 是专用的ETL Server
  • 执行:执行ETL的作业和转换
  • 安全性:管理用户、角色、集成的安全性
  • 内容管理:提供一个集中的资源库。管理ETL的转换和作业。资源库包含所有内容和特质的历史版本
  • 时序安排:向spoon 提供管理Data Integration Server 上活动的时序和监控的服务
  • kettle 的核心组件
  • spoon:通过图形接口,编辑作业和转换的桌面应用
  • pan:一个独立的命令行程序,用于执行由spoon编写完成的转换和作业
  • kitchen:一个独立的命令行程序,用于执行由spoon编辑的作业
  • carte:轻量级的web容器,用于建立专用、远程的ETL Server

三、kettle 的核心概念

转换:转换是 kettle 中最基础的,主要的部分;进行抽取数据、转换数据、加载数据、输出数据等等操作;
作业:由一个或者多个 转换或者作业组成,作业运行时,按照自定义的顺序执行。
:是步骤之间的链接,定义了步骤之间的数据通路。
步骤:组成转换的基本部分,由一个或者多个步骤组成转换,步骤之间都是独立的线程,可以并发执行;



补充:

  • kettle 设计的核心概念是可视化的编程,以图形化的方式,定义复杂的ETL程序和工作流;
  • 转换包含一个或者多个步骤,这些步骤可以通过跳来连接
  • 转换里的步骤有多个,每个步骤都是独立的线程,所以一个转换里的全部步骤可以并发运行
  • 输入步骤 ——> 跳 ——> 输出步骤(表输入——>Excel输出),两个步骤同时启动运行。
  • 每个步骤都有一个名字,并且名字在这个转换范围内唯一
  • 跳定义了两个步骤之间的一个单向的通道,使得数据以数据流的形式从一个步骤流向另一个步骤。
  • 大多数的步骤都可以有一个或者多个输出跳,数据的发送可以被设置为分发和复制。分发使得输出步骤轮流接收数据。
  • 跳是两个步骤之间的传输数据的,被称之为行集的数据行缓存集,这个缓存的大小可以自定义。
  • 例如:当输入步骤是数据库,读取速度快,输出步骤是Excel,写入速度慢,这时将行数据缓存在跳(缓存集)中。
  • 当跳的行集满了,输入步骤将停止向跳写入数据,直到跳中又有了空间。
  • 当跳的行集空了,输出步骤将停止从跳读取数据,直到跳中又有了数据。
  • 数据是以行为单位,作为数据行,从一个步骤流向另一个步骤的。这个过程数据流,也叫做记录流
  • 数据行是0到多个字段的集合,用来对字段进行的描述,称之为数据行的元数据
  • 跳的行集缓存机制,与步骤的并发,允许数据以最小消耗内存的数据流的方式进行被处理。
  • 由于在一个转换内的步骤全部是并行执行的,所以转换内是没有执行顺序的。
  • 一个转换中,全部步骤里,输入跳中不再有数据,就终止这个步骤。当全部步骤终止,就终止整个转换。
  • 想使得数据在处理的过程有顺序,则将处理步骤定义在不同的转换里,再将转换连接成作业。


引用部分资料,侵权私
部分个人观点,欢迎评论指错。