? 元数据管理
元数据是数据仓库中用来定义和描述业务和应用数据、数据映射和演进关系、处理流程及任务依赖等几乎所有内容的描述数据,从而将数据仓库的各个角落和各个环节有机的串联在一起,以不仅支持数据仓库各种功能实现,而且应该支持跟踪数据仓库的状况和变化,从而给数据仓库的生命运动提供一个整体概貌视图。相对于数据仓库裸层的数据与功能,元数据就相当于管理层的数据,起着保驾护航的支撑作用。对于一个大型数据仓库项目,如果没有元数据设计,就相当于建设一个大城市而没有规划图纸、没有考虑基础设施建设,是不可能成功的。元数据自成一系,可以单独存储到元数据库,也可以与数据仓库共存在一个库中。
元数据设计应力求全面、细致,可以参考业界的一些数据仓库元数据标准,如CWM(Common Warehouse Model)等,注意所有元数据要统一标准、统一设计和管理,保证各层、各类元数据的衔接,避免出现数据断层。元数据设计适宜早做,对于一个复杂的数据仓库环境,事后维护比事先规划成本要大得多。
元数据的质量在很大程度上决定着数据仓库的健壮程度和可用程度。元数据设计应重点考虑描述清楚各层数据间的数据接口和转换关系,以直观的视图追踪哪些分析指标来自哪些业务数据、经过哪些处理步骤,支持数据血缘分析和影响分析,发挥对数据质量管控和系统运行监控的重要支持功能。
随着业务系统和某些业务参数的变化,元数据也是不断发展变化的,要注意元数据的一致性和持续性维护。
? 其它管理功能
ETL的护航作用除了依靠设计周密的元数据提供支持,还要设计开发相应的系统功能,如任务调度依赖关系查询、批任务完成情况查询、警告与错误查询、
13
仓库数据使用状况、性能与资源状况查询、日志管理等。这些管理功能的设计应满足数据仓库日常运行的监管需要,可以逐步完善。
对仓库数据的监控应包括进入仓库的SQL命令和这些命令的结果集,使系统管理员能够知晓数据仓库中哪些数据正在被使用、哪些数据经常被使用等,可能需要在表级、行级和列级进行监控,以清楚掌握数据的情况,为存储规划和管理等提供依据。
? 数据模型设计
数据仓库中的数据区大概有四层:源数据缓冲区+ODS数据区、EDW、汇总数据缓冲区和DM。根据不同数据层的使用目的和特性要求,应分别采用不同的数据模型。主要有关系和多维两种模型,它们主要的区别在于灵活性和性能方面。关系模型灵活,支持各类群组用户任何形式的访问和数据重构需求,但在满足终端用户的访问性能方面不够理想;多维模型可以满足终端用户的直接访问,性能很高,但灵活性不好。因此关系模型适合构造企业级基础数据模型,而多维模型适合构建范围有限的部门级应用数据模型。
源数据缓冲区和ODS数据区基本采用与源系统相同的数据模型,可直接提供基于源系统结构的简单原貌访问,一般保留短暂历史。
EDW采用面向主题的关系模型设计,以存储整合后的企业全局详细数据,支持各种类型最低粒度的数据需求。EDW中的数据是稳定的、持续增长和长期保存的,保存期一般为2年或3年,超过保存期限的数据在本区备带。本层主要为数据集市提供基础数据输入服务,也可提供小量级的随机业务查询服务。
汇总数据缓冲区基本是对EDW数据区的各层逻辑视图,主要用于加工DM
14
数据区的中间过渡作用,也可物化为通用逻辑汇总数据,提供对某些业务用户的直接访问支持。除物化汇总数据保留周期视需求而定(不超过EDW周期),其它数据保留周期短暂。
DM数据层是面向某类应用的汇总成品或半成品数据,具有业务意义,用于支持特定而明确的需求,满足特定用户的快速访问,一般采用多维模型设计,保留周期视需求而定(一般不超过EDW周期)。
下面讲述EDW层的关系数据模型设计和DM层的多维数据模型设计。 ? 关系模型设计
EDW关系数据模型设计有几个目的:消除冗余、统一标准、中性共享、方便使用、完整一致的描述和组织企业数据。设计要点是面向全局业务、全面反映企业经营状况、包含最细节数据、灵活可扩展,并同时规划数据容量、存储周期、备份机制、访问方案和效率等;不需要太多考虑具体应用的数据模式需求。
设计EDW关系数据模型的第一步是确定主题区域,即将种类繁多的业务数据根据业务领域划分成几个高度概括的类别,例如对银行业可以分为客户、产品、协议、交易、财务等主题。第二步是确定每个主题区域内的实体对象,及区域内对象和跨区域对象的关联关系,例如客户主题内可以包括客户基本信息、家庭信息、名称历史信息、地址历史信息等实体;产品主题内可包括产品特性信息、利率信息、产品与客户的关系等实体类型。对于某些应用的个性化数据需求,虽然共享程度低,也须放入EDW,可以根据数据的共享程序和繁忙程序,在进行物理设计时划分出热数据区和冷数据区。
由于每个行业的企业数据有较大的相似性,而一个结构稳定、扩展性强的EDW模型设计需要深厚的行业和技术经验,因此数据仓库厂商针对主要行业都
15
有自己比较成熟的数据模型产品。企业在进行EDW关系模型设计时,可以借鉴这些成熟产品的设计思想并依靠自己的经验与能力独立完成,也可以依托成熟的行业产品进行客户化。
? 多维模型设计
DM层的主要目的是用于特定分析应用的快速访问,通常采用多维模型设计,当然根据分析型应用的特点与需要也可以采用关系模型设计。多维模型恰是根据用户的请求而构造的,其设计的最大优点在于访问的高效性,因此必须收集和理解用户的最终需求,才能定义出优化的多维模型结构。确定结构后的多维模型固定服务于特定用户特定形式的访问,不能再轻易改变而用于其它需求。
多维模型也称OLAP模型,是为了满足用户从多角度多层次进行数据查询和分析的需要而建立起来的基于度量(实际数据值)和维(描述数据的不同角度)的数据模型。在设计时应首先选择业务所需的度量指标,然后选择度量的维度和反映维度等级结构的层(粒度)。维度建模有三种实现方法:ROLAP、MOLAP和HOLAP。ROLAP是利用关系数据库来存储多维数据和完成多维操作;MOLP是基于多维数据库完成数据存储和分析操作(例如ORACLE的分析工作区Analytic Workspace,简称AW);HOLAP是基于关系和多维的混合模型,即利用关系数据库来存储和处理细节数据,利用多维数据库来存储和处理聚合数据。
多数采用ROLAP进行设计。ROLAP模型有星型和雪花两种结构,星型是基本结构。星型结构是采用中间一个事实表和外围多个维度表来表达和存储多维数据,事实表用来存储度量值和维关键字,每个维使用一个表来存储维的层次结构,事实表和维表通过主外键关联成“星型结构”。对于层次复杂的维,可以将其进一步层次化而分成多个维表,星型结构就扩展为“雪花结构”。雪花结构有减少
16