XXXX企业数据仓库概要设计说明书ETL概要设计分册
(文档编码:OM-BIDW-C008)
(版本01.00.000)
未经许可,不得以任何形式抄袭
XXXX版权所有,翻板必究
OM数据仓库XXXX企业数据组
2009年3月
文档变更历史
目录
1概述 (4)
2设计原则和前提 (5)
2.1 整体部署 (5)
2.2 前提条件 (6)
2.3 设计原则 (6)
3整体框架 (7)
3.1 ETL系统架构图 (7)
3.2 ETL系统功能模块描述 (7)
4数据抽取模块 (9)
4.1 假设与约定 (9)
4.2 模块功能图 (9)
4.3 各子模块功能及处理流程 (11)
5数据加载模块 (11)
5.1 假设与约定 (11)
5.2 数据加载模块图 (11)
5.3 数据加载功能模块描述 (12)
6作业调度模块 (13)
6.1 模块概述 (13)
6.2 假设与约定 (13)
6.3 作业调度流程 (13)
6.4 ETL作业种类及调度实现方法 (14)
7监控管理模块 (15)
7.1 监控管理模块图 (15)
ETL监控内容 (16)
附录1控制表及控制文件设计 (16)
附录2:文件目录及编码说明 (19)
1概述
ETL是数据仓库系统开发中至关重要的一个过程,它涉及到对源数据的抽取、整合及各种转换,并最终形成面向用户的分析数据。
由于数据仓库系统的数据源来自于多个分散的业务系统,对不同业务系统的数据整合及清洗转换将是一个复杂的过程,ETL过程决定了数据仓库系统获取数据的准确性。
另外由于ETL包括数据抽取、数据清洗、数据转换及数据加载等数据处理过程,这些处理过程分散在不同的系统平台及开发工具上,对这些作业过程的统一调度将是一个重要的问题,作业调度涉及到系统的稳定性。
2 设计原则和前提
2.1 整体部署
数据组服务器
服务器
该服务器完成两项功能:1、接口文件服务器,所有被接入DW 的数据文件必须通过该服务器中转
2、数据备份,来自网关的数据文件将长期保留在该服务器上,作为文件备份
数据仓库ETL 整体部署图
✧ 网关通道数据库服务器是数据仓库的外围数据库系统,数据仓库中的绝
大部分数据都将来自网关通道数据库服务器
✧ 基于目前短彩部自身情况的考虑,在数据源服务器和数据仓库服务器之
间增加一台FTP 文件服务器,其功能有二:
◆ 接口文件服务器,所有被接入DW 的数据文件必须通过该服务器中转 ◆ 数据备份,来自网关的数据文件将长期保留在该服务器上,作为文件
备份
2.2 前提条件
ETL概要设计将基于下面的前提条件
✧ETL逻辑:XXXX企业的数据虽然分布在不同的通道,但是各通道数据的
共性度非常高,因此ETL中不存在逻辑复杂的转换(Transformation)及数
据质量管理等流程,整个ETL只需要实现抽取(Extraction)和加载(Loading)两个功能即可
✧ETL工具:自主开发,具体开发语言待定?;
✧作业调度工具:自主开发,具体开发语言待定?。
2.3 设计原则
✧ETL应该是基于元数据库中定义好的处理规则;并且应由可复用的过程
或相关组件来实现;
✧用户或客户端应用程序不应该直接执行数据获取程序,数据仓库层所有
的数据更新应该由数据获取过程自动控制;
✧通过良好的设计和相关处理过程的协调使得系统的CPU处理时间最少;
要充分利用系统和软件的并行处理性能;
✧ETL过程尽可能分解为独立的几个子处理过程以便于作业管理和调度;
✧在ETL设计时,需要详细计算并考虑ETL的处理性能,时间窗口及错误
处理控制。
并详细考虑各个ETL任务在各台物理主机上的分布。
✧需要提供一个监控统计模块对ETL的整个过程进行有效的监控和统计,
提供GUI界面对ETL各个任务的处理情况进行统计和监控,例如每个ETL
任务的状态、处理记录的条数、处理某个任务所用的时间、出错的情况
等。
3整体框架
本章从宏观体系结构的高度,概要叙述ETL系统的基本架构和设计思想,着重于描述架构的特点、系统主要组成、ETL各个部分的基本功能和它们之间的关系以及方案选择的出发点。
3.1 ETL系统架构图
ETL负责对业务系统数据及其他外部源数据进行数据抽取,并存放在数据仓库系统中的STAGE数据库中。
ETL过程包括数据抽取和数据加载等几个逻辑上相对独立的数据处理过程。
同时由于在ETL的处理过程中需要对ETL的错误处理以及作业调度等,ETL系统逻辑架构图如下图所示:
ETL逻辑构架图
3.2 ETL系统功能模块描述
从上图可以看到ETL系统包括数据抽取、数据加载、错误处理、作业调度、监控管理等几个功能模块,各功能模块的具体情况如下:
4数据抽取模块
4.1 假设与约定
✧重复文件处理:文件重复上传,则采取覆盖式的处理办法,我们认为最
后上传的文件是接近正确的文件。
即如果某个文件先后上传了几次,那么我们最后入库的文件将是最后一个上传的文件。
✧不对数据质量作监控:因为数据仓库的数据源平台比较单一,涉及到的
网络比较平稳,因此不对数据抽取的结果文件作质量监控。
✧系统的所有功能都由程序自动控制,原则上不允许手工干预
4.2 模块功能图
数据抽取模块如下图所示:
数据抽取流程图
该模块由自主程序开发实现,除主程序外,还包括目录扫描进程,文件处理进程,文件压缩,文件传输等几个子模块。
该模块将由两个子程序驱动
✧数据抽取子程序:该程序主要完成定时的数据抽取功能,并将抽取后得
到的文本文件放到指定的目录下面。
✧FTP传输子程序:该程序定时扫描指定目录,如果文件到达,则将文件传
输至接口机上。
从上图中可以看到在该模块处理流程中用到一系列的控制表及控制文件,各控制表及控制文件的具体格式见
4.3 各子模块功能及处理流程
对于以上处理步骤的关键过程信息都要记录到《数据ETL日志表》表中。
5数据加载模块
5.1 假设与约定
因为数据抽取与数据加载是在不同的服务器上执行,为了同步两者之间的事件消息,我们需要建立一个消息同步的机制,即当数据抽取完成时,需要发给数据加载一个消息。
即在传输数据接口文件完成后,附带一个
传输完成标志文件。
5.2 数据加载模块图
数据加载模块流程如下图所示:
数据加载模块流程图5.3 数据加载功能模块描述
6作业调度模块
6.1 模块概述
作业调度是系统运转的支点,从数据加载到数据处理的全部脚本都由作业调度系统自动完成。
其功能包括:
✧事件扫描。
按照作业的执行周期属性,周期性定时扫描作业所依赖的事
件是否完成,以决定该作业是否执行;
✧参数生成。
根据作业配置信息,自动生成作业执行参数,并将参数传递
给作业;
✧追跑历史数据。
因为某些原因,导致作业执行延时,在作业满足事件依
赖后,需要追跑历史作业。
6.2 假设与约定
✧数据抽取模块分散到各数据源服务器,由各数据源服务器自行按照文档
要求进行数据抽取,并将抽取结果FTP到指定的接口机的制定目录下
✧为了简化调度流程,OMDW将采用事件扫描模式,而不是事件触发模式。
即为了触发某个作业,程序会定时的扫描作业所依赖的事件,如果所依
赖的事件全都完成,则执行该作业。
6.3 作业调度流程
作业调度流程如下图:
作业调度流程图6.4 ETL作业种类及调度实现方法
7监控管理模块
7.1 监控管理模块图
ETL监控管理示意图如下:
ETL监控管理示意图
ETL监控内容
从上图可以看到ETL监控包括如下几方面内容:
✧ETL系统在ETL作业出现错误或ETL数据处理质量没达到要求时通过ETL
监控系统进行短信息、BP、EMAIL、声音、特殊图像等多种告警手段提供
现场和远程告警;
✧ETL在作业处理过程中需把作业的处理时间、作业完成或失败信息等记
录到数据库中并在ETL监控系统中进行显示以了解ETL作业的状态以及
历史状况;
✧另一方面需通过ETL监控系统了解ETL各作业的数据处理质量情况(如
处理的记录数等);
附录1:控制表及控制文件设计
Table Name: TE_ETL_CYC
Table Name: TE_ETL_DS_INF
Table Name: TE_ETL_DS_LOG
Table Name: TE_ETL_FILE_INF
Table Name: TE_ETL_FILE_REG
Table Name: TE_FTP_STAT
Table Name: TE_PRO_EXE_STAT
Table Name: TE_PRO_INF
Table Name: TE_PRO_PRM_INF
Table Name: TE_PRO_REAL_INF
附录2:文件目录及编码说明
✧目录结构
数据存放目录定义如下:/应用类型目录/通道目录/数据目录;
与外部系统的接口及相关消息文件的目录定义如下:/应用类型目录/接口目录(或消息文件目录);
说明:数据存放目录由三层结构组成,第一层为数据应用类型目录,第二层为通道编码目录,第三层为数据目录;
说明:对于代码资料,只有应用类型目录一层目录。
✧应用类型目录编码规则
应用类型目录编码规则为:S_C
✧通道目录编码规则
✧接口目录(或消息文件目录)。