不多说,直接上干货!

  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. mysql_udf_http(根据mysql表自动触发发送http请求)

    下载 tar包wget http://mysql-udf-http.googlecode.com/files/mysql-udf-http-1.0.tar.gz解压tar -vzxf mysql-ud ...

  2. Spark SQL 编程API入门系列之Spark SQL的作用与使用方式

    不多说,直接上干货! Spark程序中使用SparkSQL 轻松读取数据并使用SQL 查询,同时还能把这一过程和普通的Python/Java/Scala 程序代码结合在一起. CLI---Spark ...

  3. vue入门--简单路由配置

    在初始化vue init webpack <工程名>时,有一步是询问是否安装vue-router,选择yes,如果没有安装的话,后面需要自己安装.然后在目录中可以看到有个文件夹叫route ...

  4. P3376 【模板】网络最大流(70)

    题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行 ...

  5. ZBrush中SnakeHook蛇钩笔刷介绍

    不同笔刷用着不同的作用,绘画出来的效果也是千姿百态,各有千秋,有些笔刷在使用的时候可以替代,但有些笔刷是无法替代,不可超越的,比如ZBrush®中给我们提供的,SnakeHook笔刷,该笔刷在模型表面 ...

  6. 在centos6.5上升级php-libxml版本到2.9.0

    当前系统,软件版本说明: php libxml glibc 2.12 zlib xz-libs 需求: 应开发的需求,线上环境,php-libxml版本升级到2.8以上. 升级步骤:1.安装工具集 y ...

  7. day05-1 执行Python程序的两种方式

    目录 执行Python程序的两种方式 第一种:交互式 第二种:命令行式 三个步骤 两种方式的区别 执行Python程序的两种方式 第一种:交互式 在cmd中运行 优点:直接给出结果,执行效率高,及时报 ...

  8. 多进程Socket_Client

    from socket import * #导入套接字模块的所有命令import struct #导入struck模块,用于封装数据流长度# from functools import partial ...

  9. debian 9 安装Virtual Box

    1.去官网下载deb包,例如包名: virtualbox-.2_5.2.18-124319_Debian_stretch_amd64.deb 2.安装 .2_5.2.18-124319_Debian_ ...

  10. Label,PushButton,ToolButton 实现动态图片按钮,Label显示gif动画

    .h文件 public: explicit event(QWidget *parent = 0); ~event(); QImage image; QLabel *label; QLabel *lab ...