三、数据仓库组件以及开发流程
核心组件
数据仓库的核心组件有四个:各源数据库,ETL,数据仓库,前端应用。如下图所示:
1. 业务系统
业务系统包含各种源数据库,这些源数据库既为业务系统提供数据支撑,同时也作为数据仓库的数据源(注:除了业务系统,数据仓库也可从其他外部数据源获取数据);
2. ETL
ETL分别代表:提取extraction、转换transformation、加载load。其中提取过程表示操作型数据库搜集指定数据,转换过程表示将数据转化为指定格式并进行数据清洗保证数据质量,加载过程表示将转换过后满足指定格式的数据加载进数据仓库。数据仓库会周期不断地从源数据库提取清洗好了的数据,因此也被称为"目标系统";
3. 前端应用
和操作型数据库一样,数据仓库通常提供具有直接访问数据仓库功能的前端应用,这些应用也被称为BI(商务智能)应用;
数据集市(data mart)
数据集市可以理解为是一种"小型数据仓库",它只包含单个主题,且关注范围也非全局。
数据集市可以分为两种,一种是独立数据集市(independent data mart),这类数据集市有自己的源数据库和ETL架构;另一种是非独立数据集市(dependent data mart),这种数据集市没有自己的源系统,它的数据来自数据仓库。当用户或者应用程序不需要/不必要/不允许用到整个数据仓库的数据时,非独立数据集市就可以简单为用户提供一个数据仓库的"子集"。
数据仓库开发流程
数据仓库的开发流程和数据库的比较相似,因此本文仅就其中区别进行分析。
下图为数据仓库的开发流程:
较之数据库系统开发,数据仓库开发只多出ETL工程部分。然而这一部分极有可能是整个数据仓库开发流程中最为耗时耗资源的一个环节。因为该环节要整理各大业务系统中杂乱无章的数据并协调元数据上的差别,所以工作量很大。在很多公司都专门设有ETL工程师这样的岗位,大的公司甚至专门聘请ETL专家。