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动出现在输出中,除非中间过程特别设置了终止某个字段的传递。

本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/6907809.html,如需转载请自行联系原作者

kettle工具的设计原则相关推荐

  1. Kettle工具的基本使用

    2.1 Kettle简介 2.1.1 Kettle概述 Kettle是国外免费的开源轻量级ETL工具,是基于Java语言开发的,可以在Windows.Linux,UNIX系统上运行,且绿色不需安装,可 ...

  2. 设计模式---(设计原则)面向对象设计原则

    1 开闭原则 开闭原则:一个软件实体应当对扩展开放,对修改关闭. 在设计一个模块的时候,应当是这个模块可以再不被修改的前提下被扩展,换句话说就是,应当可以再不必修改源代码的情况下改变这个模块的行为. ...

  3. uml图中的各种箭头_设计模式学习笔记(二):UML与面向对象设计原则

    1 UML 1.1 UML UML(Unified Modeling Language)是统一建模语言,1997年11月UML1.1版本提交给OMG并正式通过,成为建模语言的个那个也标准.2003年6 ...

  4. 大型数据库设计原则与技巧

    大型数据库设计原则与技巧        一个好的数据库产品不等于就有一个好的应用系统,如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能 ...

  5. 面向对象的设计原则最终篇

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 关于面向对象的设计原则我之前已经解释过四种了,分别是单一职责原则,开放关闭原则,里式替换原则, ...

  6. 对面向对象设计原则的总结

    正如牛顿三大定律在经典力学中的位置一样,"开-闭"原则(Open-Closed Principle)是面向对象的可复用设计(Object Oriented Design或OOD)的 ...

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

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

  8. 【设计模式】 面向对象六大设计原则

    面向对象设计的六大原则 : 单一职责原则, 里氏替换原则, 依赖倒置原则, 接口隔离原则, 迪米特法则, 开闭原则; 一. 单一职责原则 1. 单一职责简介 单一职责定义 : 有且只有一个原因引起类的 ...

  9. 关于面向对象的的设计原则的使用

    关于面向对象的原则,相信大家都很清楚.但真正使用时,我想我们都会违反一些原则,因为要遵守这些原则,我们必须要多写好多代码.最后得不尝试. 下面我就关于这些原则发表一下个人的看法: 一.单一职责原则   ...

最新文章

  1. 基于组件的.NET软件开发(3)
  2. 一个略复杂的数据映射聚合例子及代码重构
  3. Lambda-常用函数式接口
  4. s4-4 以太网概述
  5. 时光机穿梭---撤销修改
  6. Python实现HTTP服务器(四)单进程线程非阻塞实现多任务
  7. 深度学习推荐模型-DeepFM
  8. C语言入门教程(一)
  9. 清除默认浏览器CSS样式
  10. java发包工具_小米范工具系列之四:小米范HTTP批量发包器
  11. 图文模态交互 | CLIP + GAN = ?
  12. 淘宝-没素质的商家给消费者加入禁购名单
  13. innobackupex全量恢复
  14. 使用 certbot 申请泛域名证书和自动续签
  15. js中的trim函数怎么使用
  16. 广州土地市场有所回暖?分析广州房价,看看有什么新发现
  17. Unity 调用摄像头拍照保存
  18. Mybatis提取BigDecimal字段值显示丢失末尾0精度的问题解决
  19. 电力系统潮流C语言,电力系统中的潮流计算程序
  20. 故障管理:故障定级和定责

热门文章

  1. iOS_GET_网络请求
  2. Centos 6.5下NIS服务安装配置
  3. 《Core Java 2》读书笔记(二)
  4. 为什么Kaggle不会让你成为一名出色的数据科学家?
  5. 树莓派 4G模块 PPP 拨号 NDIS 拨号
  6. IIS 设置默认首页静态页,无静态页,走路由
  7. 如何编译 opencv3 和 opencv_contrib(Linux)
  8. 万亿安防市场前景可期 未来四大发展趋势分析
  9. ansible-playbook agent实例
  10. centos 实现ssh远程连接docker