ETL是英文Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。常见于数据仓库开发中将数据由业务系统归集到数据仓库(DW)或者数据集市的过程。在ETL三个部分中,花费时间最长的是“T”(Transform,清洗、转换)的部分,一般情况下这部分工作量是整个ETL的2/3。
1抽取作业
将从源数据库(通常为业务系统)获得数据的过程。
在做这一步的之前,往往要预先分析自己需要什么数据,划分好范围,确认具体的技术部门和业务部门。
1.1手工开发抽取作业时候的常用方法:
1.1.1当数据源和DW为同一类数据库时
一般情况下,DBMS(SQLServer、Oracle)都会提供数据库链接功能,可以在数据源(业务系统)和DW内建立数据库链接(如DB2的联邦数据库NICKNAME),然后在DW内直接SELECT访问。
优点是实现使用简单,逻辑简单;缺点是容易被滥用对源数据库造成较大的负载压力。
1.1.2当数据源和ODS为不同类型数据库时
o 将源数据库的数据导出为文本文件,利用FTP协议进行传输导入ODS区域。
优点是实现简单,对源系统压力较小。缺点是传输步骤增加了,处理需要的时间增加。
o 将部分数据库间能通过ODBC建立源数据库和目标数据库链接,此时也能直接使用SELECT获取数据。
优点是实现使用简