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

说起kettle,还是先说说ETL(Extract-Transform-load,即抽取,转换。载入)数据仓库技术。是用来处理将数据从来源(比如:单位基础server)经过抽取。转换。载入到达至目的端(正在做的项目)的过程。

也就是新的项目须要使用曾经项目数据库中的数据,ETL就是解决问题的。

ETL实现共同注意点:、空值处理:可捕获字段空值。进行载入或替换为其它含义数据,并可根据字段空值实现分流载入到不同目标库。

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上运行(Linuxserver流行时代下,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还是非常easy的。

须要我们做的就是建好资源库,连接好数据库。建立转换。写好类中的每一个步骤,将转换连接起来组成任务(当然转换也能够独立运行)。

好,最后看一下什么时候适合使用kettle。

这样一个项目A,这个项目A须要实施到非常多家企业。而项目A须要用到每家企业的数据库基础数据。比如员工。组织结构,客户,供应商等等一些基础数据。这时候kettle就能够非常轻松的完毕任务。也就是说,我们的项目须要用到大量的数据库之间迁移数据。

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

kettle(一)概述的更多相关文章

  1. 2016/11/10 kettle概述

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

  2. Kettle解决方案: 第二章 Kettle基本概念

    2概述 设计模块最主要的操作分为: 转换和作业 选择转换和作业后就可以选择对应主对象树和核心对象 主对象树大同小异 核心对象是不同的 比如转换需要用到的CSV表输入, 表输入等都在这里可以选择 而作业 ...

  3. Storm Topology 提交 总结---Kettle On Storm 实现

    一,目的 在学习的过程中,需要用到 PDI---一个开源的ETL软件.主要是用它来设计一些转换流程来处理数据.但是,在PDI中设计好的 transformation 是在本地的执行引擎中执行的,(参考 ...

  4. kettle学习笔记(十)——数据检验、统计、分区与JS脚本

    一.概述 数据剖析和数据检验: 用于数据的检查.清洗 . 统计步骤: 提供数据采样和统计的功能 分区: 根据数据里某个字段的值,拆分成多个数据块.输出到不同的库表和文件中. 脚本: Javascrip ...

  5. kettle学习笔记(九)——子转换、集群与变量

    一.概述 kettle中3个重要的步骤: 子转换/映射 在转换里调用一个子转换,便于封装和重用. 集群 集群模式 变量和参数 变量和参数的用法 二.子转换 1.定义子转换 主要由映射输入与映射输出定义 ...

  6. kettle学习笔记(八)——kettle查询步骤与连接步骤

    一.概述 查询步骤: 用来查询数据源里的数据并合并到主数据流中 . 连接步骤: 结果集通过关键字进行连接 .(与前面的UNION不同) 二.查询步骤 1.流查询 流查询示例:(注意上文中的流查询的限制 ...

  7. kettle学习笔记(一)——入门与安装

    一.概述 1.kettle是什么 Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,绿色无需安装,数据抽取高效稳定.中文名称叫水壶,该项目的主程序 ...

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

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

  9. Hive2.2.1概述(待重写)

    概述 hive 是一个包裹着 hdfs 的壳子,hive 通过 hql,将 sql 翻译成 MR ,进行数据查询. Hive是⼀个构建在Hadoop之上的数据仓库 hive的数据存在hdfs上,元信息 ...

随机推荐

  1. Format operator

    The argument of write has to be a string, so if we want to put other values in a file, we have to co ...

  2. Pycharm-连接服务器

  3. POJ 3661 DP

    题意: 思路: i表示到了i,j表示疲劳度为j f[i][j]表示能跑的最大距离 f[i][j]=f[i-1][j-1]+a[i] if(i-j>=0)f[i][0]=max(f[i][0],f ...

  4. 【DNN 系列】 MVC 分页

    MVC分页可采用插件形式, 有MvcPage那个插件但是我觉得那个是假分页 有点影响效率 所以网上找了一个例子来 做分页 1, PagerQuery.cs public class PagerQuer ...

  5. VS自定义开发向导中的vsdir文件的简单说明

    作者:朱金灿 来源:http://blog.csdn.net/clever101 VS自定义开发向导中有一个vsdir文件.这个文件指定了在VS中项目的标题.默认工程名等内容.下面对vsdir文件做一 ...

  6. AIX 6.1 Oracle 10G 数据库GoldenGate实施

    安装环境说明: 源端:AIX 6.1 10.190.1.215 目标端:Linux 10.191.1.10 1:源端创建goldengate 表空间. 表空间的要求:最小500m,大点3-5G,设置自 ...

  7. Debian9.5 系统配置FTP

    FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”.用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application ...

  8. wall---向系统当前所有打开的终端上输出信息

    wall命令用于向系统当前所有打开的终端上输出信息.通过wall命令可将信息发送给每位同意接收公众信息的终端机用户,若不给予其信息内容,则wall命令会从标准输入设备读取数据,然后再把所得到的数据传送 ...

  9. Zookeeper入门-Java版本HelloWorld例子

    上一篇介绍了,Zookeeper的基本概念,怎么启动,怎么解决可能遇到的几个问题.本篇,根据网上代码,整理了一个例子,Zookeeper的HelloWorld. 下面这个代码,还是比较简单的,核心类就 ...

  10. Android笔记---Intent实现Activity跳转

    学了之前的Android控件以及布局,我们就能够做一些UI的设计了,这里我结合之前的知识.以一个小的登录项目来解说下Activity之间跳转. 先看下效果图: 1.登录界面: 2.点击登录按钮跳转到另 ...