kettle实战-1概览-1.1ETL介绍

  都说kettle是一个ETL工具,那就必须先介绍一下ETL是个啥,ETL是三个英文的首字母,分别代表抽取、转换、加载,这个词很久之前就有了,想知道细节的可以自行查找,我们这里讲一些其它教程未做重点突出的部分。ETL表述的是一个过程,我们用一个图和换一个描述来表示一下。

  从图上可以看出,其实就是一个输入数据,相应处理,再输出的过程,这个过程对一个程序开发人员来说,可以说再平常不过。我们设想一个场景,前端页面传来一个请求,附带了一些数据,传至后台程序进行较验、加工处理,最后写入数据库中,其实这都是一个ETL的过程,如果按这个套的话,那几乎所有程序都是如此了。确实有些概念的东西不必太深究,明白就可以了,我的理解ETL在这里其它一样,但是一个数据批量输入、处理、输出的过程,特别强调批量,高效,大家可以体会一下是不是这样。

  谈到高效,就会涉及多线程,集群处理等概念。通俗讲就是,一件工作由某工厂的一个人干太慢,那就多找些厂里的人一起干,如果觉得还慢,那就再加入另一个工厂。至于工厂、人员不同的效率不同问题,那后面优化环节咱们再谈。

  批量的数据处理(以数据库为例),就涉及到效率、事务等问题,我们都知道,数据库操作中写入,提交是两个动作,写入的条数可以是一条,也可以是多条,提交如果失败,前面写入的数据都不会成功,这样如果前面是多条提交可能会使正确的数据也不能写入。如果每一条都提交,性能又上不去,这里面就需要根据实际的场景进行选择。还会有多条记录不同写入或更新,需要同时成功,同时失败这种情况。在ETL中有一个原则,不要过多考虑事务,除非特殊情况,因为事务和效率是矛盾关系的。

  在后面的章节都会讨论到kettle是如何应对上面的多线程、集群、批量、事务等问题。

猜你喜欢

转载自blog.csdn.net/onemy/article/details/89299897