多数
BI
解决方案的好坏仅取决于用来提取、转换数据以及将数据装载到关系数据存储中的方法。
ETL
(数据的提取、转换和加载)过程的设计和实现是数据仓库解决方案中极其重要的一部分。
ETL
过程用于从多个源提取业务数据,清理数据,然后集成这些数据,并将它们装入数据仓库数据库中,为数据分析做好准备。下面对
SQL SERVER
和
DB2
数据仓库设计中的
ETL
环节做个简要的分析和对比:
一
SQL Server 2000
:
DTS
数据转换服务
数据转换服务是数据仓库框架的一部分,可以与数据仓库框架的所有元素进行交互。作为用于从
OLEDB
和
ODBC
兼容数据源中完全提取异类数据(通过转换操作数据并将其装载到可分析的多维数据存储中)的服务提供程序,
DTS
在成功实现这些解决方案的过程中扮演了重要角色。
DTS
提供了以下功能,即提取异类数据、自动转换数据以及支持将数据从
OLTP
架构装载到采用维度模型的数据存储的端到端进程。
二
DB2
:
ETL
转换过程
DB2
中的
ETL
数据转换操作大致可以分为
6
个模块:数据的提取、验证、清理、集成、聚集和装入。
三
ETL
模块
数据提取
数据提取是捕获源数据的过程。有两种捕获数据的主要方法:
(
1
)完全刷新:对移入中间数据库的数据进行完全复制。该复制可能替换数据仓库中的内容,及时在新的时间点上添加完整的新副本,或者与目标数据进行比较,以便在目标中生成一条修改记录。
(
2
)增量更新:只捕获源数据中修改的数据,如何捕获数据修改与数据源本身是密切相关的,实际上是逐个实现的问题。
数据验证
在项目的业务数据分析阶段,您产生了一组数据质量假设。这些假设将指定客户和解决方案提供者双方在数据质量问题上的职责。解决方案提供者通常关心数据清理和增强问题。客户至少要关注仅仅可以在数据源本身中解决的问题,以及与解释数据含义相关的数据质量问题。例如:
(1)
丢失的数据恢复。
(2)
模糊的数据转换。
(3)
业务操作应用程序相关的数据问题
——
只能从应用程序本身解决的数据质量问题。
您应该在项目合同文档中包含
数据质量假设
,因为如果没有用正确的方法及时解决业务数据的质量问题,它可能严重影响项目时间表。数据质量假设可能是与客户进行时间表协商的一个好基础。数据验证包含许多检查,其中包括:
(1)
属性的有效值(域检查)。
(2)
属性在剩余行的环境中是有效的。
(3)
属性在该表或其他表中相关行的环境中是有效的。
(4)
关系在该表和其他表中的行间是有效的(外键检查)。
数据清理
数据清理是清理有效数据,使之更精确更有意义的过程。数据清理包括下列等任务:
(1)
从数据源的数据合并。
(2)
域转换和同步。
(3)
数据类型和格式的转换。
(4)
用于不同目标表的数据分离。
数据集成
数据集成是将多个数据源联合成一个统一数据接口来进行数据分析的过程
。数据集成是仓库数据转换过程中最重要的步骤,也是数据仓库设计中的关键概念。
数据集成可能极其复杂。在该模块中,可以应用数据集成业务规则以及数据转换逻辑和算法。集成过程的源数据可以来自两个或更多数据源;它通常包含不同的连接操作。源数据还可能来自单个数据源;该类型的数据集成通常包含域值的合并和转换。集成结果通常生成新的数据实体或属性,易于终端用户进行访问和理解。
数据聚集
数据聚集是收集并以总结形式表达信息的过程。数据聚集通常是数据仓库需求的一部分,它通常是以业务报表的形式出现的。
在多维模型中,数据聚集路径是维度表设计中的重要部分。在数据存储库或数据仓库中,数据聚集的级别是逐个(
case-by-case
)确定的。因为数据仓库几乎仍然都是关系数据模型类型的,所以最好是建议您的客户从数据集市构建业务报表。
数据装载
将数据移至中心数据仓库中的目标表通常是
ETL
过程的最后步骤。
装入数据的最佳方法取决于所执行操作的类型以及需要装入多少数据。
您可以通过两种基本方法在数据库表中插入和修改数据:
(1)
SQL insert/update/delete
(2)
成批
load
实用程序
大多数应用程序使用
SQL IUD
操作,因为它们进行了日志记录并且是可恢复的。但是,成批加载操作易于使用,并且在装入大量数据时速度极快。使用哪种数据装入方法取决于业务环境。
凡是有该标志的文章,都是该blog博主Caoer(草儿)原创,凡是索引、收藏
、转载请注明来处和原文作者。非常感谢。