LOAD 加载经转换和汇总的数据到目标数据仓库中,可实现SQL或批量加载数据加载(Load) 经过数据转换生成的文件的结构与数据仓库数据表的结构完全一致,可以直接通过数据加载工具,以Bulk Load的方式加载到数据仓库中。数据加载工作以oracle数据库为例大致可以分为3步进行。
加载准备
在真正进行数据加载之前还可能需要完成以下准备工作。
删除数据仓库中数据表的索引,提高加载效率。主要是针对detail及fact大表,可以直接调用DBA所创建的索引维护脚本。DBA调试过数据仓库后,必须更新相应的索引维护脚本,以保证ETL能够正确删除和建立索引。加载
Load主要完成将转换后文件的数据加载到数据仓库的表中。需要用到的加载方式有三种
Insert:只需要将转换后文件所有数据完全Insert到目标表中。UpdAdd(Update Add):需要对目标表同时做Update及Insert操作,根据primary key,对于已有的记录进行Update操作;对于不存在的记录做Insert的操作;对于数据量大的表,由于此操作的效率非常低可以采用先将转换后文件分割为Delet文件及Insert文件,然后先将Delete文件中的记录根据 primay key对应从数据仓库中删除,然后再从Insert文件中将所有记录全部Insert到目标表中。Refresh:即将目标表的数据完全更新,一般的做法是先Truncate目标表的数据,然后再完全 Insert要加载的记录。加载过程中数据仓库关闭数据RI(Referential Integrity)管理功能,数据库的RI检查由ETL应用程序完成。加载后
- 重新生成索引,在加载后阶段删除的索引需在此重建。该过程也是调用DBA维护的索引维护脚本。
- 文件清理:删除不需要的临时文件及临时表。
使用装载工具或数据查询语言(SQL)时注意点:效率问题、避免违反约束条件,注意装载顺序。