Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行。

  说白了就是,很有必要去理解一般ETL工具必备的特性和功能,这样才更好的掌握Kettle的使用。我这里啊,先描述ETL工具的通用功能,再来描述作为ETL工具其中的一种(Kettle)是如何来提供这些功能的(图文详解)

ETL工具的功能之一:连接

  任何ETL工具都应该有能力连接到类型广泛的数据源和数据格式。对于最常用的关系型数据库系统,还要提供本地的连接方式(如对于Oracle的OCI),ETL应该能提供下面最基本的功能:

  (1)连接到普通关系型数据库并获取数据,如常见的Orcal、MS SQL Server、IBM DB/2、Ingres、MySQL和PostgreSQL。还有很多很多

  (2)从有分隔符和固定格式的ASCII文件中获取数据

  (3)从XML文件中获取数据

  (4)从流行的办公软件中获取数据,如Access数据库和Excel电子表格  

  (5)使用FTP、SFTP、SSH方式获取数据(最好不用脚本)

  (6)还能从Web Services 或 RSS中获取数据。如果还需要一些ERP系统里的数据,如Oracle E-Business Suite、SAP/R3、PeopleSoft 或 JD/Edwards,ETL工具也应该提供到这些系统的连接。

  (7)还能提供Salesforce.com和SAP/R3的输入步骤,但不是套件内,需要额外安装。对于其他ERP和财务系统的数据抽取还需要其他解决方案。当然,最通用的方法就是要求这些系统导出文本格式的数据,将文本数据作为数据源。

ETL工具的功能之二:平台独立

  一个ETL工具应该能在任何平台下甚至是不同平台的组合上运行。一个32位的操作系统可能在开发的初始阶段运行很好,但是当数据量越来越大时,就需要一个更强大的操作系统。另一种情况,开发一般是在Windows或 Mac机上运行的。而生产环境一般是Linux系统或集群,你的ETL解决方案应该可以无缝地在这些系统间切换。

ETL工具的功能之三:数据规模

  一般ETL能通过下面的3种方式来处理大数据。

  并发:ETL过程能够同时处理多个数据流,以便利用现代多核的硬件架构。

  分区:ETL能够使用特定的分区模式,将数据分发到并发的数据流中。

  集群:ETL过程能够分配在多台机器上联合完成。

  Kettle是基于Java的解决方案,可以运行在任何安装了Java虚拟机的计算机上(包括Windows、Linux和Mac)。转换里的每个步骤都是以并发的方式来执行,并且可以执行多次,这样加快了处理速度。

  Kettle在运行转换时,根据用户的设置,可以将数据以不同的方式发送到多个数据流中(有两种几本发送方式:分发和复制)。分发类似与分发扑克牌,以轮流的方式将每行数据只发给一个数据流,复制是将每行数据发给所有数据流。

  为了更精确控制数据,Kettle还使用了分区模式,通过分区可以将同一特征的数据发送到同一个数据流。这里的分区只是概念上类似于数据库的分区。

  Kettle并没有针对数据库分区有什么功能。

   至于Kettle的扩展集群,这个很简单理解,不多赘述。

ETL工具的功能之四:设计灵活性

  一个ETL工具应该留给开发人员足够的自由度来使用,而不能通过一种固定的方式来限制用户的创造力和设计的需求。ETL工具可以分为基于过程的和基于映射的。

  基于映射的功能只在源数据和目的数据之间提供了一组固定的步骤,严重限制了设计工作的自由度。基于映射的工具一般易于使用,可快速上手,但是对于更复杂的任务,基于过程的工具才是组好的选择。

   使用Kettle这样基于过程的工具,根据实际的数据和也许需求,可以创建自定义的步骤和转换。

ETL工具的功能之五:复用性

  设计完的ETL转换应该可以被复用,这是非常重要的。复制和粘贴已经存在的转换步骤是最常见的一种复用,但这不是真正意义上的复用。

  Kettle里有一个映射(子转换)步骤,可以完成转换的复用,该步骤可以将一个转换作为其他转换的子转换。另外转换还可以在多个作业里多次使用,同样作业也可以为其他作业的子作业。

 ETL工具的功能之六:扩展性

  大家都知道,几乎所有的ETL工具都提供了脚本,以编程的方式来解决工具本身不能解决的问题。另外,还有少数几款ETL工具可以通过API或其他方式为工具增加组件。使用脚本语言写函数,函数可以被其他转换或脚本调用。

  Kettle提供了上述的所有功能。Java脚本步骤可以用来开发Java脚本,把这个脚本保存为一个转换,再通过映射(子转换)步骤,又可以变为一个标准的可以复用的函数。实际上,并不限于脚本,每个转换都可以通过这种映射(子转换)方式来复用,如同创建了一个组件。Kettle在设计上就是可扩展的,它提供了一个插件平台。这种插件架构允许第三方为Kettle平台开发插件。

  大家要清楚,Kettle里的所有插件,即使是默认提供的组件,实际上也都是插件。内置的第三方插件和Pentaho插件的唯一区别就是技术支持。

  假设你买了一个第三方插件(例如一个SugarCRM的连接),技术支持由第三方提供,而不是由Pentaho提供。

 ETL工具的功能之七:数据转换

  ETL项目很大一部分工作都是在做数据转换。在输入和输出之间,数据要经过校验、连接、分隔、合并、转置、排序、合并、克隆、排重、过滤、删除、替换或者其他操作。在不同机构、项目和解决方案里,数据转换的需求都大不相同,所以很难说清一个ETL工具最少应该提供哪些转换功能。但是呢,常用的ETL工具(包括Kettle)都提供了下面一些最基本的整合功能:

    缓慢变更维度    

    查询值

    行列转换

    条件分隔

    排序、合并、连接

    聚集

ETL工具的功能之八:测试和调试

  这个很简单,不多赘述,后续博客有实战。

ETL工具的功能之九:血统分析和影响分析

  任何ETL工具都应该有一个重要的功能:读取转换的元数据,它是提取由不同转换构成的数据流的信息。

  血统分析和影响分析是基于元数据的两个相关的特性。

  血统是一种回溯性的机制,它可以查看到数据的来源。

  影响分析是基于元数据的另一种分析方法,可以分析源数据对随后的转换以及目标表的影响。

ETL工具的功能之十:日志和审计

   数据仓库的目的就是要提供一个准确的信息源,因此数据仓库里的数据应该是可靠的、可信任的。为了保证这阵可靠性,同时保证可以记录下所有的数据转换操作,ETL工具应该提供日志和审计功能。

     日志可以记录下在转换过程中执行了哪些步骤,包括每个步骤开始和结束时间戳。

     审计可以追踪到对数据做的所有操作,包括读行数、转换行数、写行数。

转载于:https://www.cnblogs.com/aibabel/p/11025019.html

ETL之Kettle相关推荐

  1. 四十二、ETL工具Kettle的转换步骤

    1. ETL工具Kettle的转换步骤 1.1 Kettle转换步骤的具体内容: 字符串处理 字符串的拆分 字符串的替换 行列变换 其他转换步骤 闭合距离 XSL转换 数值范围 2 字符串的处理 2. ...

  2. 四十一、ETL工具kettle输出步骤

    1. ETL工具Kettle的输出步骤 Kettle输入步骤主要分为以下几类: 数据库输出 表输出 更新.删除.插入和更新 文件输出 文本文件输出 XML输出 Excel文件输出 其他 报表和应用 2 ...

  3. ETL工具KETTLE常用设计之——作业设计思路模板

    目录 01:检查数据库连接: 02:设置环境变量: 03:设计各自数据流程转换: 04:邮件通知: ETL工具KETTLE用来设计数据流程,无论什么逻辑的数据流程,一般都有一个通用的设计模板流程,在这 ...

  4. 开源ETL工具kettle系列

    开源ETL工具kettle系列之常见问题 摘要:本文主要介绍使用kettle设计一些ETL任务时一些常见问题,这些问题大部分都不在官方FAQ上,你可以在kettle的论坛上找到一些问题的答案 1. J ...

  5. 程序员小sister的烦恼_快速上手大数据ETL神器Kettle(xls导入mysql)

    我正在参加年度博客之星评选,请大家帮我投票打分,您的每一分都是对我的支持与鼓励. 2021年「博客之星」参赛博主:Maynor大数据 https://bbs.csdn.net/topics/60395 ...

  6. 开源ETL工具kettle系列之常见问题

    摘要:本文主要介绍使用kettle设计一些ETL任务时一些常见问题,这些问题大部分都不在官方FAQ上,你可以在kettle的论坛上找到一些问题的答案 1. Join 我得到A 数据流(不管是基于文件或 ...

  7. 第三章 可视化ETL平台——Kettle

    第三章 可视化ETL平台--Kettle课程目标 能够理解Kettle的主要用途 能够搭建Kettle开发环境 能够掌握Kettle输入组件的使用 能够掌握Kettle输出组件的使用 能够掌 ...

  8. ETL工具Kettle使用

    1.下载kettle:https://sourceforge.net/projects/pentaho/files/Data%20Integration/7.0/pdi-ce-7.0.0.0-25.z ...

  9. 三十九、ETL工具Kettle基础使用

    1. Kettle工具介绍 Kettle是一款国外开源的ETL工具,纯Java编写,开业在Windows.Linux.Unix上运行,可以高效稳定的完成数据抽取. Kettle中文名叫水壶,该项目的主 ...

最新文章

  1. 深度稳定学习:因果学习的最新进展 | 清华大学团队 CVPR 研究
  2. 二维数组和二级指针关系浅析
  3. java 日志输出 上下文_java – 使用ServletContextListener和SLF4J在contextDestroyed上没有日志输出...
  4. centos内核参数优化
  5. lnp和mysql分开安装_毕业设计之LNP+DISCUZ +分离的数据库操作
  6. 电源模块的9个主要性能指标及其作用
  7. Java 换行和回车
  8. c#利用zlib.net对文件进行deflate流压缩(和java程序压缩生成一样)
  9. 真正支配整个世界的十种算法
  10. linux 读写大文件内容,linux读写大文件
  11. 鸿蒙生态发布会,新日XC3亮相华为鸿蒙生态大会,这场合作值得期待!
  12. 力扣 1818. 绝对差值和(中等)
  13. 数据库备份的三种方式 不要再干掉数据库跑路啦~
  14. mail163邮箱官网如何注册?
  15. lamp架构部署 httpd编译、mysql二进制、php编译 网页访问效果
  16. position: sticky 详解
  17. 快速申请开通公众号门店小程序-微信小程序开发-视频教程7
  18. 微信小程序修改顶部通知栏字体颜色,手机电量时间.....。
  19. Font Awesome、ionic icon图标库的超详细使用方法
  20. 【BZOJ-28921171】强袭作战大sz的游戏 权值线段树+单调队列+标记永久化+DP...

热门文章

  1. ubuntu1604安装tensorflow
  2. Android开发笔记(二)
  3. 多系统PE win UBUNTU OSX
  4. resin4 发布war包
  5. Xcode里-ObjC, -all_load, -force_load
  6. 用C#新建XML文件
  7. Android自定义ImageView(二)——实现双击放大与缩小图片
  8. Kubernetes理论02
  9. 华为lab-rs-v1-2.9_OSPF区域34
  10. iOS 9之Safari广告拦截器(Content Blocker)