Kettle也叫PDI,在2006年Kettle加入了开源的BI组织Pentaho,正式命名为PDI,英文全称为Pentaho Data Integeration。Kettle是“Kettle E.T.T.L. Envirnonment”只取首字母的缩写,这意味着它被设计用来帮助你实现你的ETTL需要:抽取、转换、装入和加载数据;翻译成中文名称应该叫水 壶,名字的起源正如该项目的主程序员MATT在一个论坛里说的那样:希望把各种数据放到一个壶里然后以一种指定的格式流出。

Kettle允许管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。Kettle中有两种脚本文件,转 换(transformation)和工作(job),transformation完成针对数据的基础转换,job则完成整个工作流的控制。

Kettle整体结构图:

Kettle的术语:

  • Transformation:转换步奏,可以理解为将一个或者多个不同的数据源组装成一条流水线。然后最终输出到某一个地方,文件或者数据库等。
  • Job:作业,可以调度设计好的转换,也可以执行一些文件处理(比较,删除),还可以上传下载文件、发送邮件、执行Shell命令等。 Job与Transformation的差别是:Transformation专注于数据的ETL,而Job的范围比较广,可以是 Transformation,也可以是Mail、SQL、Shell、FTP等等,甚至可以是另外一个Job。
  • Hop:连接Transformation步骤或者连接Job(实际上就是执行顺序)的连线。
    • Transformation hop:主要表示数据的流向。从输入,过滤等转换操作,到输出。
    • Job hop:可设置执行条件:无条件执行、当上一个Job执行结果为true时执行、当上一个Job执行结果为false时执行

Kettle家族目前包括4个产品:Spoon、Pan、CHEF、Kitchen。

  • SPOON 允许你通过图形界面来设计ETTL转换过程(Transformation)。
  • PAN 允许你批量运行由Spoon设计的ETL转换 (例如使用一个时间调度器)。Pan是一个后台执行的程序,没有图形界面。
  • CHEF 允许你创建任务(Job)。  任务通过允许每个转换,任务,脚本等等,更有利于自动化更新数据仓库的复杂工作。任务通过允许每个转换,任务,脚本等等。任务将会被检查,看看是否正确地运行了。
  • KITCHEN 允许你批量使用由Chef设计的任务 (例如使用一个时间调度器)。KITCHEN也是一个后台运行的程序。

简单的可理解为:

  • Spoon:Transformation设计工具(GUI方式)
  • Pan:Transformation执行器(命令行方式)
  • Chef:Job设计工具(GUI方式)
  • Kitchen:Job执行器(命令行方式)

Kettle是由纯JAVA编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。要运行kettle工具必须 安装Sun公司的JAVA运行环境,安装好java环境后,在操作系统环境变量path中配置jre路径,把kettle工具压缩包解压后可直接使用。 Spoon是一个图形用户界面,它允许你运行转换或者任务,其中转换是用Pan工具来运行,任务是用Kitchen来运行。Pan是一个数据转换引擎,它 可以执行很多功能,例如:从不同的数据源读取、操作和写入数据。Kitchen是一个可以运行利用XML或数据资源库描述的任务。通常任务是在规定的时间
间隔内用批处理的模式自动运行。下面是在不同的平台上运行 Spoon所支持的脚本:

  • Spoon.bat:在windows 平台运行Spoon。
  • Spoon.sh:在 Linux、Apple OSX、Solaris 平台运行 Spoon。

资源库是用来保存转换任务的,用户通过图形界面创建的的转换任务可以保存在资源库中。资源库可以使多用户共享转换任务,转换任务在资源库中是以文件夹形式分组管理的,用户可以自定义文件夹名称。资源库有两种形式:

  1. Kettle database repository,即保存在各种常见的数据库资源库类型,用户通过用户名/密码来访问资源库中的资源,默认的用户名/密码是admin/admin和guest/guest。
  2. Kettle file repository,保存在服务器硬盘文件夹内的资源库类型,此类型的资源库无需用户进行登录,直接进行操作。

资源库并不是必须的,如果没有资源库,用户还可以把转换任务保存在xml文件中。为了方便管理,建议用户建立并使用数据库类型资源库Kettle database repository。

Kettle的应用场景:

  1. 表视图模式:在同一网络环境下,对各种数据源的表数据进行抽取、过滤、清洗等,例如历史数据同步、异构系统数据交互、数据对称发布或备份等都归属 于这个模式;传统的实现方式一般都要进行研发(一小部分例如两个相同表结构的表之间的数据同步,如果SQL Server数据库可以通过发布/订阅实现)。
  2. 前置机模式:这是一种典型的数据交换应用场景,数据交换的双方A和B网络不通,但是A和B都可以和前置机C连接,一般的情况是双方约定好前置机的 数据结构,这个结构跟A和B的数据结构基本上是不一致的,这样我们就需要把应用上的数据按照数据标准推送到前置机上,此时可通过Kettle实现;
  3. 文件模式: 数据交互的双方A和B是完全的物理隔离,这样就只能通过以文件的方式来进行数据交互了,例如XML格式,在应用A中我们开发一个接口用来生成标准格式的 XML,然后用介质在某一时间把XML数据拷贝之后,然后接入到应用B上,应用B上在按照标准接口解析相应的文件把数据接收过来;

Kettle转化功能介绍

  • Kettle 中有两种脚本文件,transformation (.ktr)和 job(.kjb),transformation 完成针对数据的基础转换,job 则完成整个工作流的控制。
  • 所有功能支持控件化,使用简单
  • 支持多样化数据源类型:
    • 基本的文本文件
    • Access、Excel、XML、Property文件格式
    • MDX查询语言、 Cube文件、Streaming XML数据流
    • 自动产生空记录或者行
    • 从XBase类型文件(DBF)读取数据
    • 关系型数据库
    • 获取系统信息如文件名称、系统时间等
  • 特殊目标数据源支持
    • 把数据写入到Cube
    • 把数据写入XML
  • 支持多种查询
    • 调用数据库存储过程
    • 基本的数据库查询
    • 判断表以及列、操作系统文件是否存在
    • 从URL接收查询
    • 使用Web服务查询信息
    • 使用数据流中的值作为参数来执行一个数据库查询
    • 流查询:从转换中其他流里查询值
  • 转换功能
    • 值映射、分组、去重、拆分字段、行列转换
    • 复制行
  • 支持的脚本
    • JS脚本
    • SQL脚本
    • 正则表达式
  • 支持渐变维度更新
  • 批量加载:
    • Greenplum Bulk Loader
    • Oracle Bulk Loader
    • MSSQL Bulk Loader
    • MYSQL Bulk Loader
    • PostgreSQL Bulk Loader
  • 支持分区表和集群
  • 支持大数据对接
  • Avro Input
  • Cassandra Input &

Kettle作业功能介绍

  • 可以执行操作系统命令和操作:

    • Ping 主机
    • 写日志
    • 发送邮件
    • 从POP Server获取邮件并保存在本地
    • 比较文件夹、文件
    • 创建、复制、移动、删除、压缩文件
    • 从HTTP获取或者上传文件
    • 操作延迟等待
  • 判断文件是否存在
  • 执行JavaScript、SQL、Shell脚本
  • 支持安全FTP获取、上传文件
  • 删除远程文件
  • 支持SSH2上传下载

Kettle的功能非常强大,数据抽取效率也比较高,开源产品,可以进行第三方修改,工具中的控件能够实现数据抽取的大部分需求。所有功能支持控件化,使用简单。

kettle介绍的更多相关文章

  1. 开源ETL工具之Kettle介绍

    What 起源 Kettle是一个Java编写的ETL工具,主作者是Matt Casters,2003年就开始了这个项目,最新稳定版为7.1. 2005年12月,Kettle从2.1版本开始进入了开源 ...

  2. kettle的基本介绍

    Kettle 主要内容: 一.ETL介绍 二.Kettle介绍 三.Java调用Kettle API 一.ETL介绍 1. ETL是什么? 1).ETL分别是“Extract”.“ Transform ...

  3. centos7 PDI(Kettle)安装

    kettle介绍 PDI(Kettle)是一种开源的 ETL 解决方案,书中介绍了如何使用PDI来实现数据的剖析.清洗.校验.抽取.转换.加载等各类常见的ETL类工作. 除了ODS/DW类比较大型的应 ...

  4. Kettle数据抽取解决方案

    一. Kettle介绍 1. Kettle简介 ETL即数据抽取(Extract).转换(Transform).装载(Load)的过程.Kettle的中文翻译为水壶.Kettle以元数据驱动的方式提供 ...

  5. kettle新手教程

     1.kettle介绍 kettle是一个ETL(Extract, Transform and Load抽取.转换.加载)工具,ETL工具在数据仓库项目使用很频繁,kettle也能够应用在下面一些 ...

  6. kettle系列-我的开源kettle管理平台[kettle-manager]介绍

    kettle管理工具 专门为kettle这款优秀的ETL工具开发的web端管理工具. 项目简介 kettle作为非常优秀的开源ETL工具得到了非常广泛的使用,一般的使用的都是使用客户端操作管理,但问题 ...

  7. Kettle使用介绍

    本文主要阅读目录如下: 1.Kettle概念 2.下载和部署 3.Kettle环境配置 4.Kettle使用及组件介绍 ETL(Extract-Transform-Load的缩写,即数据抽取.转换.装 ...

  8. ETL利器Kettle实战应用解析系列一【Kettle使用介绍】

    本系列文章主要索引如下: 一.ETL利器Kettle实战应用解析系列一[Kettle使用介绍] 二.ETL利器Kettle实战应用解析系列二 [应用场景和实战DEMO下载] 三.ETL利器Kettle ...

  9. (转载)ETL利器Kettle实战应用解析系列一【Kettle使用介绍】

    http://www.cnblogs.com/limengqiang/archive/2013/01/16/kettleapply1.html ETL利器Kettle实战应用解析系列一[Kettle使 ...

随机推荐

  1. Java线程池带图详解

    线程池作为Java中一个重要的知识点,看了很多文章,在此以Java自带的线程池为例,记录分析一下.本文参考了Java并发编程:线程池的使用.Java线程池---addWorker方法解析.线程池.Th ...

  2. 初学者一些常用的SQL语句(一)

    一.数据库的创建create database 数据库名create database bbb二.表的创建 ***[]:可选项*** null:空值 not null 不为空***只有字符型能指定长度 ...

  3. Java代理和动态代理

    code from <Thinking in java> 代理模式 interface Interface { void doSomething(); void somethingElse ...

  4. Grunt针对静态文件的压缩,版本控制打包方案

    在讲之前先谈谈大致步骤:安装nodejs -> 全局安装grunt -> 项目创建package.json --> 项目安装grunt以及grunt插件 -> 配置Gruntf ...

  5. 深入浅出AQS之条件队列

    相比于独占锁跟共享锁,AbstractQueuedSynchronizer中的条件队列可能被关注的并不是很多,但它在阻塞队列的实现里起着至关重要的作用,同时如果想全面了解AQS,条件队列也是必须要学习 ...

  6. matplotlib学习之绘图基础

    matplotlib:http://www.cnblogs.com/jasonhaven/p/7609059.html 1.基本图形 散点图:显示两组数据的值,每个点的坐标位置由变量的值决定,头一组不 ...

  7. Linux下搭建tomcat和jre的环境

    1.下载linux版本的tomcat和jre tomcat下载:http://pan.baidu.com/s/1nt7D87J: jre下载:http://pan.baidu.com/s/1sj4hA ...

  8. 关于ios11 tableView和ScrollView受导航栏影响向下偏移的问题

    看到网上说法ios11中automaticallyAdjustsScrollViewInsets属性被废弃,所以要设置tableView.contentInsetAdjustmentBehavior ...

  9. python常见模块命令(os/sys/platform)

    一.Os Python的标准库中的os模块主要涉及普遍的操作系统功能.可以在Linux和Windows下运行,与平台无关. os.sep 可以取代操作系统特定的路径分割符. os.name字符串指示你 ...

  10. Dapper数据库相关操作

    using System; using System.Data; using System.Configuration; using System.Data.SqlClient; namespace ...