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工具或方法。