抽取-转换-装载
ETL是Extract、Transform、Load三个英文单词的首字母简写。
中文是抽取、转换、装载
ETL是建立数据仓库最重要的处理过程,也是最体现工作量的环节。
一般会占到真个数据仓库项目的工作量的一半以上。
建立数据仓库,需要将多个异构的源系统的数据集成在一起,放置于一个集中的位置用于数据分析。
ETL系统的工作就是把异构的数据转换成同构的。没有ETL就不能对异构的数据进行程序化的分析。
数据抽取
从源系统获取数据给后续的数据仓库使用。
对于抽取方法的选择高度依赖于源系统和目标数据仓库的环境的业务需要。
一般情况下,不可能因为需要提升数据抽取的性能,而在源系统中添加额外的逻辑,也不能增加这些源系统的工作负载。
有时,用户甚至不允许增肌任何“开箱即用”的外部应用系统,这叫做对源系统具有侵入性。
下面分别从逻辑和物理两个方面介绍数据抽取方法。
逻辑抽取
有两种逻辑抽取方法:全量抽取和增量抽取。
全量抽取
源系统的数据全部被抽取。
源系统只需要提供原样数据,而不需要附加逻辑信息,比如时间戳等。
一个全表导出的数据文件或者一个查询源表所有数据的SQL语句都是全量抽取的例子。
增量抽取
只抽取某个事件发生的特定时间之后的数据。
通过该时间发生的时间顺序能够反映数据的历史变化。
他可能是最后一次成功抽取,也可能是一个复杂的业务事件。
必须能够识别出特定时间点之后所有数据的变化。
这些发生的变化的数据可以由源系统自身来提供,例如反