简介
数据集成是数据仓库中的关键概念。ETL(数据的提取、转换和加载)过程的设计和实现是数据仓库解决方案中极其重要的一部分。ETL 过程用于从多个源提取业务数据,清理数据,然后集成这些数据,并将它们装入数据仓库数据库中,为数据分析做好准备。
ETL 过程设计
尽管实际的 ETL 设计和实现在很大程度上取决于为数据仓库项目选择的 ETL 工具,但是高级的系统化 ETL 设计将有助于构建高效灵活的 ETL 过程。
在深入研究数据仓库 ETL 过程的设计之前,请记住 ETL 的经验法则:“ETL 过程不应修改数据,而应该优化数据。”如果您发现需要对业务数据进行修改,但不确定这些修改是否会更改数据本身的含义,那么请在开始 ETL 过程之前咨询您的客户。
调制的 ETL 过程设计
由于其过程化特性以及进行数百或数千个操作的可能性,所以以精确方式设计 ETL 过程,从而使它们变得高效、可伸缩并且可维护就极为重要。ETL 数据转换操作大致可以分为 6 个组或模块:数据的提取、验证、清理、集成、聚集和装入。要安排好这些组,按照使这一过程获得最大简化、具有最佳性能和易于修改的逻辑次序来执行操作。下图中展示了执行的次序。
图 1. ETL 数据转换过程的功能模块设计
在项目的业务需求和数据分析阶段,我们创建了数据映射信息。有许多中记录数据映射的方式;ETL 数据映射表是指导 ETL 过程设计的最佳方式。您还可以将该表用作与业务客户就数据映射和 ETL 过程问题进行交流的方式。ETL 数据映射表有不同的级别,如实体级别和属性级别。每个级别中都具有不同级别的详细数据映射信息。下表是一个实体级别的 ETL 数据映射表的简化例子。该表中的每个“X”表示到操作细节或较低级数据映射文档的链接。
表 1. ETL 实体映射表
源 | 验证 | 清理 | 转换 | 集成 | 聚集 | 目标 |
账户客户 | X | X | ? | X | X | 客户 |
信贷客户 | X | X | X | |||
借贷客户 | X | ? | X | |||
支票账户 | X | X | ? | X | X | 账户 |
储蓄账户 | X | ? | X | |||
信贷账户 | X | ? | X | |||
借贷账户 | X | X | ? |
在 DB2 数据仓库中实现 ETL 过程
DB2 Universal Database Data Warehouse Editions 为数据仓库功能提供了改进的性能和可用性。DB2 Data Warehouse Center(DWC)是一个可视化的 ETL 设计和实现工具,它是 DB2 UDB 中的组成部分。这一节将查看如何使用 DB2 UDB(Version 8.2.1)Data Warehouse Center 设计和实现仓库 ETL 过程。