最近两个月一直和kettle打交道,从开始的没听说过,到现在能够熟练运用,不得不说项目驱动下,学习东西是最快的。好了,虽然使用kettle应付项目的任务绰绰有余,但是还是想系统的学习一下,总结一下。例如job用的比较少,kettle的集群模式没有涉及到等等。

说起kettle,还是先说说ETL(Extract-Transform-load,即抽取,转换,加载)数据仓库技术,是用来处理将数据从来源(例如:单位基础服务器)经过抽取,转换,加载到达至目的端(正在做的项目)的过程。也就是新的项目需要使用以前项目数据库中的数据,ETL就是解决这个问题的。

ETL实现共同注意点:正确性,完整性,一致性,完备性,有效性,时效性,可获取性等,也就是说无论我们使用什么工具,来实现ETL技术时,达到这几个方面,才算是质量过关的,失去其中任何一方面都是不过关的。

ETL实现主要是转换的实现,包含几个方面(来自百科):

1、空值处理:可捕获字段空值,进行加载或替换为其他含义数据,并可根据字段空值实现分流加载到不同目标库。

2、规范化数据格式:可实现字段格式约束定义,对于数据源中时间、数值、字符等数据,可自定义加载格式。

3、拆分数据:依据业务需求对字段可进行分解。例,主叫号 861082585313-8148,可进行区域码和电话号码分解。

4、验证数据正确性:可利用Lookup及拆分功能进行数据验证。例如,主叫号861082585313-8148,进行区域码和电话号码分解后,可利用Lookup返回主叫网关或交换机记载的主叫地区,进行数据验证。

5、数据替换:对于因业务因素,可实现无效数据、缺失数据的替换。

6、Lookup:查获丢失数据 Lookup实现子查询,并返回用其他手段获取的缺失字段,保证字段完整性。

7、建立ETL过程的主外键约束:对无依赖性的非法数据,可替换或导出到错误数据文件中,保证主键唯一记录的加载。

而,kettle则是其中的一种工具,其它还有:Informatica,Datastage,OWB,微软的DTS等等。好,下边简单说说kettle。

kettle是一款国外开源(受欢迎)的ETL工具,纯Java编写(和Java开发很好集成),可以在Windows,Linux,Unix上运行(Linux服务器流行时代下,kettle更加受欢迎),数据抽取高效稳定(更更受欢迎了)。kettle中文名俗称“水壶”,开发目的是将各种数据放到一个壶中,然后经过各种处理加工,以特定的格式流出。

kettle家族包括:Spoon,Pan,CHEF,Kitchen。

Spoon:是通过图形界面来设计ETL转换过程(Transformation)(最常用)。

PAN:允许批量执行由Spoon设计的ETL转换(例如使用一个时间任务调度器)Pan是一个后台执行程序,没有图形界面。

CHEF:允许创建任务(Job)。任务通过执行,每个转换,任务,脚本等,使其更加有利于完成更为复杂的任务。

Kitchen:允许你批量使用由Chef设计的任务(例如使用一个时间调度器),也是后台执行程序。

kettle转换的设计包括几个方面:资源库,数据库连接,作业(job),转换(trans),步骤(step)。形象的举一个例子:资源库相当于我们的一个Java项目 ,数据库连接相当于我们的Java项目中的连接数据库,Job相当于Java项目中的一条线,而Trans相当于Java的一个个类,Step则是类中的方法。所以从这个层面来看,其实Kettle还是非常简单的。需要我们做的就是建好资源库,连接好数据库,建立转换,写好类中的每个步骤,将转换连接起来组成任务(当然转换也可以独立执行)。

好,最后看一下什么时候适合使用kettle。这样一个项目A,这个项目A需要实施到很多家企业,而项目A需要用到每家企业的数据库基础数据,例如员工,组织结构,客户,供应商等等一些基础数据,这时候kettle就可以很轻松的完成任务。也就是说,我们的项目需要用到大量的数据库之间迁移数据。

好,kettle理论简介,后边看kettle简单使用。最后附一张kettle工具的界面图:

kettle(一)概述相关推荐

  1. kettle 学习小结

    kettle 学习总结 What is ETL ETL Extraction-Transformation-Loading的缩写,中文名称为数据提取.转换和加载. ETL工具有:OWB(Oracle ...

  2. 2016/11/10 kettle概述

    ETL(Extract-Transform-Load,即抽取,转换,加载),数据仓库技术,是用来处理将数据从来源(以前做的项目)经过抽取,转换,加载到达目的端(正在做的项目)的过程.也就是新的项目需要 ...

  3. sql左连接排序取第一个_详解kettle工具记录集连接功能及实验测试

    概述 今天主要介绍下kettle的记录集连接功能和一些注意点. 一.什么是记录集连接 记录集连接可以实现数据集合的关联,也分为内连接,左连接,右连接,外连接. 多表的join,可以直接用sql写入[表 ...

  4. 大数据入门第五天——离线计算之hadoop(上)概述与集群安装

    一.概述 根据之前的凡技术必登其官网的原则,我们当然先得找到它的官网:http://hadoop.apache.org/ 1.什么是hadoop 先看官网介绍: The Apache™ Hadoop® ...

  5. kettle 查询数据库写入文件_怎么连接数据库-详解如何用kettle连接mysql数据库并导出sql查询结果...

    概述 今天主要介绍下kettle怎么去连接mysql数据库及导出sql查询结果. 1.数据库链接驱动 如果没有安装对应的数据库驱动,在数据库连接的过程中,可能会报某个数据库连接找不到的异常,因此需要下 ...

  6. Kettle, Solr

    http://antkillerfarm.github.io/ Kettle ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract).转换( ...

  7. kettle大于0的转换成1_第一期实训周:基于Python+MySQL+Kettle+R的某网站数据采集分析...

    ↓ 基于Python+MySQL+Kettle+R的 某网站数据采集分析 哈喽!各位学员们 咱们第一期课程就要开始了 下面划重点! 一 高校院系 齐鲁工业大学数学与统计学院应用统计系 二 实训日期 2 ...

  8. kettle优化抽取数据速度_基于kettle工具提高表输出写入速度(每秒万条记录)

    概述 最近用kettle时发现输出到数据表太久,1小时才写了3万条数据,平均每秒速度为8条,基于此,做一下改进. 优化1:优化网络连接属性 mysql表输出的时候出现减速的原因可能是因为网络链接的属性 ...

  9. 【源码部署】Kettle IDEA 源码部署

    ​ 1.Kettle简介 Kettle是一个开源项目,作为ETL工具,kettle提供了丰富的功能和简洁的图形化界面.作为免费开源的ETL工具,可以通过其桌面程序进行ETL步骤的开发并执行.kettl ...

最新文章

  1. SpringMVC之源码分析--ViewResolver(四)
  2. python3 系统监控脚本(CPU,memory,网络,disk等)
  3. 手势追踪,高通走完其VR一体机的最后一里路
  4. FIO工具测试延迟、带宽、IOPS
  5. (COPY)document.all和document.getElementById用法 document.all用法:
  6. Minio的容量算法及实际存储空间计算公式
  7. Hadoop MapReduce实例:按手机上网总流量降序排序代码实现及结果演示
  8. How change in Console is rendered back into UI
  9. 《零基础看得懂的C语言入门教程 》——(二)C语言没那么难简单开发带你了解流程
  10. mysql查询耗时_一种数据库高耗时查询的自动取消方法与流程
  11. LeetCode(762)——二进制表示中质数个计算置位(JavaScript)
  12. ROS软路由的基本操作
  13. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_02-自定义查询页面-服务端-接口开发...
  14. C语言和Python语言有什么区别呢?
  15. 如何在快手批量下载高清无水印视频方法
  16. Jmeter 面试题
  17. SpringBoot配置国际化语言包
  18. LPC1788系统时钟的设置
  19. java学生管理系统设计_基于JAVA学生管理系统设计和实现.ppt
  20. 综合项目之闪讯破解(三)之 如何用C++实现PPPOE拨号

热门文章

  1. 条码管理系统mysql_C# 仓库条码管理系统(含数据库)入门级源码
  2. 哨兵电控代码解析(配套源码(非官方))
  3. Oracle之where之后的case when执行不同的条件
  4. 对计算机会计上机课的心得,浅谈高职会计电算化实训课程|会计电算化心得2000字...
  5. 【云服务器】云服务器实例配置
  6. 美国计算机前60大学世界排名,弗吉尼亚理工大学计算机科学世界排名2017年最新排名第94(THE世界排名)...
  7. mac的python换字体_matplotlib在MAC系统下中文字体显示问题
  8. AdobePhotoshopCS3-full1224 (绿色版)
  9. 下取整函数的含义_取整函数
  10. linux build编译,rpmbuild   编译