不多说,直接上干货!

  Kettle工具在设计初,就考虑到了一些设计原则。这些原则里借鉴了以前使用过的其他一些ETL工具积累下的经验和教训。

  易于开发:作为数据仓库和ETL开发者,你只想把时间用在创建BI解决方案上。任何用于软件安装、配置的时间都是一种浪费。例如,为了创建数据库连接,很多和Kettle类似的Java工具都要求用户手工输人数据库驱动类名和JDBC URL连接串。尽管用户通过互联网都能搜索到这些信息,但这明显把用户的注意力转移到了技术方面而非业务方 而。Kettle尽量避免这类问题的发生。
  避免自定义开发:一般来说,ETL工具要使简单的事情更简单,使复杂的事情成为可能。ETLT具提供了标准化的构建组件来实现ETL开发人员不断重复的需求。当然可以通过手工写Java代码或Java脚本来实现一些功能。但增加的每一行代码都给项目增加了复杂度和维护成本。所以尽量避免手工开发,尽量使用已提供组件的各种组合来完成任务

   所有功能都通过用户界面完成:对于这一黄金准则也有很少的几个例外(如kettle, properties和shared.xmr文件就是两个例外,不能通过界面,要手丁修改配置文件),如果不直接把所有功能通过界面的方式提供给用户,实际上就是在浪费开发人员的时间, 也是在浪费用户的时间。专家级的ETL元数据还要去学习隐藏在界面以外的一些特性。在Kettle里,ETL元数据可以通过XML格式表现,或通过资源库,或通过使用Java API。 无论ETL元数据是以哪种形式提供,都可以百分之百通过图形用户界面来编辑。

  没有命名限制:ETL转换里有各种各样的名称,如数据库连接、转换、步骤、数据字段、作业等都要有一个名称。如果还要在命名时考虑到一些限制(如长度、选择的字符),就会给工作带来一定麻烦。ETL具需要足够的智能化来处理ETL开发人员设置 的各种名称。最终ETL解决方案应该吋以尽可能地描述,这样可以部分减少文档的需求,减少项目维护成本。
  透明:如果有ETL工具需要你了解转换中某一部分工作是如何完成的,那么这个ETL工具就是不透明的。当然,如果想己实现ETL工具里某一个同样的功能,你就要确切地 知道这一部分功能是如何完成的。不过允许用户看到ETL过程中各部分的运行状态也是很重要的,这样可以加快开发速度、降低维护成本。ETL工作流程中的不同部分不能互相影响,它们应该只是以指定的顺序传递数据。这种 数据隔离的原则也在很大程度上影响了透明性,那些使用非数据隔离的ETLT具的用户 会感受到透明的益处。
  灵活的数据通道:对ETL开发者来说,创造性极端重要,创造性不但让你享受到工作的乐趣,而且能让你以最快的方式开发出ETL方案。Kettle从设计初始就在数据的发送、 接收方式上尽可能灵活。Kettle可以在文本文件、关系数据库等不同目标之间复制和分发数据,从不同数据源合并数据也是内核引擎的一部分,也同样很简单。
  只映射需要映射的字段:在一些ETL工具里经常可以看到数百行的输人和输出映射,对于维护人员来说这是一个舰梦。在ETL开发过程中,字段要经常变动,这样的大量映射也会增加维护成本。
  Kettle的一个重要核心原则就是在ETL流程中所有未指定的字段都自动被传递到下一个组件。这个原则极大减少了维护成本。也就是说输人中的字段会ft动出现在输出中,除非中间过程特别设置了终止某个字段的传递。

kettle工具的设计原则的更多相关文章

  1. kettle工具的设计模块

    大家都知道,每个ETL工具都用不同的名字来区分不同的组成部分.kettle也不例外. 比如,在 Kettle的四大不同环境工具 本博客,是立足于kettle工具的设计模块的概念介绍. 1.转换 转换( ...

  2. javascript的api设计原则

    前言 本篇博文来自一次公司内部的前端分享,从多个方面讨论了在设计接口时遵循的原则,总共包含了七个大块.系卤煮自己总结的一些经验和教训.本篇博文同时也参考了其他一些文章,相关地址会在后面贴出来.很难做到 ...

  3. SOA 实现:服务设计原则

    http://www.ibm.com/developerworks/cn/webservices/ws-soa-design/ 引言 面向服务的体系结构(Service-Oriented Archit ...

  4. 优秀的API接口设计原则及方法(转)

    一旦API发生变化,就可能对相关的调用者带来巨大的代价,用户需要排查所有调用的代码,需要调整所有与之相关的部分,这些工作对他们来说都是额外的.如果辛辛苦苦完成这些以后,还发现了相关的bug,那对用户的 ...

  5. 好RESTful API的设计原则

    说在前面,这篇文章是无意中发现的,因为感觉写的很好,所以翻译了一下.由于英文水平有限,难免有出错的地方,请看官理解一下.翻译和校正文章花了我大约2周的业余时间,如有人愿意转载请注明出处,谢谢^_^ P ...

  6. [JAVA设计模式]第一部分:接口、抽象类、设计原则

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  7. SOA 的基本概念及设计原则浅议

    SOA是英文词语"Service Oriented Architecture"的缩写,中文有多种翻译,如"面向服务的体系结构"."以服务为中心的体系结 ...

  8. kettle工具二次开发-代码启动JOB

    kettle工具是一款优秀的数据同步.数据处理的BI工具,收到了很多人的青睐.kettle软件通过可视化的图标可以让我们很轻易的能完成数据同步.处理的开发工作.但是使用kettle可视化界面在跑JOB ...

  9. RESTful API的设计原则

    好RESTful API的设计原则   说在前面,这篇文章是无意中发现的,因为感觉写的很好,所以翻译了一下.由于英文水平有限,难免有出错的地方,请看官理解一下.翻译和校正文章花了我大约2周的业余时间, ...

随机推荐

  1. 深度理解Jquery 中 scrollTop() 方法

    这是工作遇到scrollTop() 方法.为了强化自己,把它记录在博客园当中. 下面就开始scrollTop 用法讲解: scrollTop() 定义和用法 scrollTop() 方法设置或返回被选 ...

  2. [MySQL] 查询一段时间记录

    24小时内记录(即86400秒) $sql="SELECT video_id,count(id)as n FROM `rec_down` WHERE UNIX_TIMESTAMP(NOW() ...

  3. Python笔记(八)

    #-*-coding:utf-8-*- # Python内置函数 print abs(-45) # 绝对值函数 print divmod(7,2) # 返回一个包含商和余数的元组 # input(&q ...

  4. JQuery事件绑定,bind与on区别

    jquery事件绑定bind:向匹配元素添加一个或多个事件处理器 $(selector).bind("click",data,function); live:向当前或未来的匹配元素 ...

  5. Windows 10 游戏录制工具栏

  6. 在vue中使用less

    首先vue环境搭建成功 第一步: 安装 less 和less-loader 安装less依赖:npm install less less-loader --save 第二步: 修改webpack.ba ...

  7. popupwindows

    <1>.能够点击popupwindow 内部空间,外部触摸消失,外部点击事件. package myapplication.com.myapplication; import androi ...

  8. mybatis中if及concat函数的使用

  9. There are multiple modules with names that only differ in casing.

    client?4c0e:153 ./src/components/Paginate.vue There are multiple modules with names that only differ ...

  10. django-10-中间件和上下文管理器

    <<<中间件的引入>>> 用户<->中间件<->url->视图  在app目录里面 middleware.py  (1)中间件就是一个 ...