随着信息量的不断增长,企业数据仓库的数据量也随着日常生产和业务处理的增长而不断增加,这随之对数据仓库的性能和存储容量提出了更高的要求。IBM
DB2 数据库以其特有的数据库分区技术和数据压缩技术,为企业数据量的不断增长提供了出众的解决方案。当前,已有很多企业客户迁移到
IBM DB2 数据库用以适应其自身不断增长的业务需要。本文将着重介绍在数据仓库迁移中的 ETL 过程和数据加载的迁移方法,并且以真实客户迁移为例,向读者介绍了如何通过与
Teradata Automation Server 的集成来完成数据仓库的 ETL 和 LOAD 迁移。
引言
随着信息量的不断增长,企业数据仓库的数据量也随着日常生产和业务处理的增长而不断增加,这随之对数据仓库的性能和存储容量提出了更高的要求。IBM
DB2 数据库以其特有的数据库分区技术和数据压缩技术,为企业数据量的不断增长提供了出众的解决方案。当前,已有很多企业客户迁移到
IBM DB2 数据库用以适应其自身不断增长的业务需要。
对于典型的数据仓库的迁移,迁移的工作量主要集中在对 ETL 的迁移,正如同数据仓库的建设,工作量集中在
ETL 过程的实现一样。下文将着重介绍由 Teradata 数据仓库迁移到 DB2 中的 ETL 和加载(LOAD)迁移部分。本文以真实客户为例,详细介绍在数据仓库迁移中的
ETL 和加载(LOAD)的迁移方法,并通过实例来进一步说明如何实现从 Teradata 到 DB2 的迁移。关于
Teradata 数据仓库迁移的概述和 Teradata 数据仓库的数据对象迁移,请参考《从 Teradata
迁移到 IBM DB2 数据仓库》文章一。
Teradata 自动化调度工具简介
对于典型的数据仓库的迁移,例如从 Teradata 到 DB2 的迁移过程,迁移的工作量主要集中在对 ETL
的迁移,正如同数据仓库的建设,工作量集中在 ETL 过程的实现一样。
数据仓库 ETL 过程(Extraction, Transformation and Load)是将原始数据从业务数据库或其他数据源进行抽取,转换并最终加载到用于分析的数据仓库模型中的过程。对于一般的数据仓库系统,通常我们需要进行
ETL 转换,因为我们需要将来自于不同数据源的原始数据进行清洗,转换和聚合,将它们转换成易于进行分析的数据仓库数据。具体来讲,ETL
的不同阶段指:
1.取(Extract)是将数据从源数据系统抽取到目标数据仓库中,通常抽取可能会涉及到从多个源数据系统中提取数据。
2.转换(Transform)是将已经抽取到数据仓库中根据一系列或者多个层次的规则进行转换,使它成为数据仓库模型能够接受的模式。
3.加载(Load)是将转换后的数据最终加载到用于分析的数据模型中。
对于 ETL 过程,其实质上是使用 SELECT,INSERT 或者 DELETE 语句将数据从最底层的原始数据表转换为数据仓库的用于分析的数据仓库模型的过程。通常,我们使用自动化工具来自动化
ETL 过程。其意义在于,一旦我们定义了数据的 ETL 过程,那么自动化工具会在每晚或者在指定的时间内,将原始数据自动的清理并转换为数据仓库的数据格式,并最终导入到数据仓库的表中供今后分析使用。在数据仓库环境的建立过程中,ETL
自动化工具的好坏不但在构建初期会决定数据仓库项目能否顺利进行,同时也会影响到系统的后期维护的易用性上。在
Teradata 构建的系统中,其通常使用 Teradata 自动化工具和 Perl 脚本来完成 ETL
过程。
Teradata 自动化调度工具(ETL Automation)是指在 Teradata 数据仓库中,Teradata
自动化调度工具能够让许多作业在执行条件满足时自动的去执行这些操作。这其中包括了可能需要接受一些文档来做数据加载工作的作业,或者是做一些数据整合的工作。而这些工作在执行时可能还会有一定的条件限制等等。
图 1. ETL Automation 工具
在 ETL Automation 机制当中提供了图形操作界面 (GUI) 的监控程序。如上图 1 所示。透过此监控程序你可以实时看到目前在
ETL Automation 中有哪些作业正在等待状态中 (Pending),以及有哪些作业正在执行中
(Running)。除此之外,你还可以透过监控程序看到 ETL Automation 机制在某些状况下所产生的例外事件
(Event) 以便你能够实时地采取对应措施。
在《从 Teradata 迁移到 IBM DB2 数据仓库》系列一中我们已经提到,在从 Teradata
到 DB2 的迁移过程中,我们可以继续沿用原 Teradata 系统中的 Teradata Automation
工具。同时,也可以使用 IBM DataStage 或 SQW 来完成相应的功能。
本文主要着重于使用继续沿用原有的 Teradata Automation 工具。因此,这就涉及到我们需要进行
DML 迁移,即 ETL 过程中 Perl 脚本的迁移,同时完成从 Teradata 到 DB2 的数据加载并驱动
Teradata 自动化工具进行 ETL 过程。下面我们将就这两个方面进行分别的讨论。
DML 迁移方案
在 Teradata 数据仓库中&#x