第一十二章 数据抽取、转换和加载

第二节 定义ETL的流程

    (1)从源数据抽取到ODS数据缓冲区

    ODS按功能可以划分成ODS数据缓冲区和ODS统一信息视图区。ODS数据缓冲区是指数据临时存储区域,它基本上与源系统的数据结构保持一致。ODS统一信息视图区是为用户提供统一的企业数据视图,它的数据大多来自ODS数据缓冲区。从源数据抽取到ODS数据缓冲区可以分成全量抽取和增量抽取,如图12-8所示。全量抽取是将源数据中的所有业务数据经过ETL过程直接抽取到ODS数据缓冲区中,在数据传输过程中不加任何的过滤条件。全量抽取一般发生在第一次对ODS数据缓冲区进行ETL抽取加载的时候。增量抽取一般是根据某些抽取条件将源数据中的数据抽取到ODS数据缓冲区中,抽取条件可以是按着时间进行过滤,增量抽取一般效率较高,不占用过多的CPU资源。

    (2)从ODS数据缓冲区抽取到ODS统一信息视图区

    数据从ODS数据缓冲区抽取到ODS统一信息视图区,一般来说都是定时抽取的,例如按照每日或者每月进行抽取,除了第一次做全量抽取外,其余时间都是做增量抽取,可以按照某种更新策略进行抽取,如图12-9所示。例如,按照时间戳或者版本号的方式进行增量抽取。

 图12-8  从源数据抽取到ODS数据缓冲区

图12-8  从源数据抽取到ODS数据缓冲区

 图12-9  从ODS数据缓冲区抽取到ODS统一信息视图区

图12-9  从ODS数据缓冲区抽取到ODS统一信息视图区

    (3)从ODS统一信息视图区抽取到数据仓库

    数据仓库是根据业务的需求,对企业数据进行整合,同时又是存储历史数据的地方。它覆盖了多个主题域的组成,这些信息有可能是粒度级别低、高细节的数据,也可能是按照某种业务需求建立起来的轻度汇总数据,它们通常按照一定的时间频率进行定期的刷新,为数据集市提供高质量的数据。数据仓库偏重于数据的存储与整合,通常需要建立轻量级的索引。数据从ODS统一信息视图区抽取到数据仓库,一般来说除了第一次加载数据时用全量抽取外,其余时间都是做增量抽取,这样可以降低CPU资源的消耗,如图12-10所示。例如,可以按照时间戳或者版本号的方式进行增量抽取。

    (4)从数据仓库抽取到数据集市

    数据集市是针对某个主题域、部门或者特定用户的数据集合。数据集市中的数据是商业智能报表展现的数据来源,它需要对用户的快速访问进行优化,优化的方式可以是汇总和建立索引。数据集市的作用是保障数据仓库的高性能、可扩展性和可用性。从数据仓库抽取到数据集市是根据业务需求来判断是否通过增量或者全量的方式进行抽取,然后通过计算或者汇总的方式加载到数据集市中,如图12-11所示。

 图12-10  从ODS统一信息视图区抽取到数据仓库

图12-10  从ODS统一信息视图区抽取到数据仓库

 图12-11  从数据仓库抽取到数据集市

图12-11  从数据仓库抽取到数据集市

    总结:ETL的流程包含了从源数据抽取到ODS数据缓冲区、从ODS数据缓冲区抽取到ODS统一信息视图区、从ODS统一信息视图区抽取到数据仓库、从数据仓库抽取到数据集市的过程,如图12-12所示。这些过程涉及数据的映射、ETL逻辑的设计、ETL调度的设计、模块的整合和流程的测试、ETL程序的编写等内容。

 图12-12  ETL的流程

图12-12  ETL的流程