heartstill

博客园 首页 新随笔 联系 订阅 管理

ETL是商业智能(BI)的重要组成部分。我们先看一下在WIKI中的定义:

ETL,是英文Extract-Transform-Load的缩写,即填充、更新数据仓库的数据抽取、转换、装载的过程。这是实现商业智能之前的数据采集步骤。这一步骤完成之后,对库中数据的数据挖掘、分析处理才可以进行。

对于ETL而言,“是什么”是很容易理解的,也就是将分散的、不易利用的数据进行整理,变成规则清晰的、易于利用的、(可能同时还是)集中的数据。在ETL过程之外,就可以基于报表分析系统、多维分析系统和数据挖掘系统等,进行进一步的数据分析利用。

这一过程可以通过Hard Codding,即编写程序实现,也可以通过各种ETL工具实现。

对于ETL,实际常见的问题有两个:

1、为什么要做ETL,而不是直接利用数据?

这个原因有多种多样,比如可能原始数据量太大,需要加以提炼;可能业务数据的服务器面临性能压力,不希望分析工作影响性能;可能源数据的异构性和低质量,需要加以规范;还有可能有些数据直接利用起来有困难,例如SAP系统中的数据。

2、不同ETL工具与方法的差异主要是什么?

由于ETL是一个可以用Hard Codding并不大困难就可以实现的过程,因此很容易会问“为什么要用ETL工具”。实际上,Hard Codding也是一种可供选择ETL方法,而各种工具与方法主要的差异在于两点,一是设计与建立ETL过程的复杂度,比如有些工作用工具可以很快建立和修改、调试,而写程序要花很大力气,有些工作则配置ETL工具很费力,还不如直接写一个SQL,不同的工具之间也有很大的差异;二是运行时的效率,有些 ETL工作,要经常进行,有些则是初始时进行一次,有些数据量大、时效要求高,有些则反之。这样,在不同情况下,就可能需要根据运行效率的需要选择合适的 ETL工具。

从上面两个问题,我们可以理解ETL的必要性与适用性,同时,也可以认识到,ETL是一个概念,应该根据实际的情况与需要,选择(包括不使用)合适的ETL工具或方法。

posted on 2010-12-08 11:36  开始测试  阅读(431)  评论(0编辑  收藏  举报