由于ETL是数据仓库得核心,时常承担着管理和存储数据仓库大量元数据得职责。在数据仓库中ETL处理程序是元数据最重要得创建者——数据沿袭。数据沿袭追踪数据从源系统和文件中得请确位置直到最终被装载之前。数据血统包括数据库系统的数据定义和在数据参考古中最终静止状态。元数据分为后台元数据和前端元数据,后台元数据是与处理相关的,指导抽取清洗装载工作;前端元数据更偏向描述性和使我们的查询工具和报表工具更加稳定。后台将数据加载到数据仓库,同时指明数据来源,而前端元数据主要是为终端用户服务的,可以作为描述所有数据的业务数据字典。对于元数据应该进行以下工作:
以上各项任务都需要完善的文档。数据源规范:
1.各来源的所有描述信息
2.各来源的业务描述
3.最初来源的更新频率
4.各来源使用的司法局限性
5.存储方法,读取权限,和各来源存取口令
6.主机或源系统工作计划
7.使用COBLO/JCL或C或Basic或其它语言来实现抽取
8.如果使用工具,则包含自动化抽取工具的设置
9.特殊抽取的结果,包括抽取时间和工作完成率
关于元数据的描述,数据需要的信息:
维度表管理:
转换和聚合:
审计,工作日志和文档:
DBMS元数据中作用在以下部分:
在前端扩展的元数据包括:
元数据包括了所有,从某种程度上来说,元数据是数据仓库的DNA,它定义了所有元素及元素之间协同工作的方式。元数据可以分为以下三类:
除了这三种元数据之外,还应该考虑元数据的标准,数据仓库后端的元数据流程如下图:
上图描述了使用和收集的元数据的所有地方,包括:
业务定义对于数据仓库至关重要,不仅是终端用户需要业务定义,ETL也需要业务定义来给出正在操作数据的上下文关系。一个典型的业务定义矩阵包括3个主要组成部分:
所有ETL工具都支持捕获和存储元数据,ETL工具应该和数据模型工具、数据库一起获得业务定义,并通过BI工具把业务名称和业务定义展现给最终用户。
数据在导入数据仓库前需要进行分析,指定数据改造计划,使数据能够较为理想的被导入到数据仓库中,在分析源系统时,需要以下元数据属性:
数据库或文件系统,当涉及到源系统或文件的时候经常用到这个属性
表规范,包括表的用途,表的大小,主键和预备键以及所有列的清单
排异处理规则
业务定义
业务规则,针对于每张表都要有相应的业务规则
在数据仓库项目中,数据分析阶段需要大量时间研究源系统,缺少源系统元数据和导致数据仓库更多的故障,所有源系统的元数据必须在ETL开发之前提供给ETL团队。
数据仓库的数据字典时关于所有数据元素和他们业务定义的清单,与源系统业务定义相似,数据仓库数据字典包括物理表和列名称,业务名称和业务定义。
逻辑数据视图时ETL的生命线,从元数据的角度上看,逻辑数据视图是由从源到目的的映射,从逻辑上解释了数据从源系统中抽取出来到装载到数据仓库中的整个流程。逻辑数据映射是元数据的重要部分。
技术元数据服务于多种用途,它包括了到列名称,数据类型,存储和RAID矩阵的配置,需要了解数据仓库中数据元素的物理模型及属性。数据的技术定义是数据的容器和框架结构,必须了解数据定义的三种环境:
每个环境都应该被提供一个E-R图,每个系统至少要包含以下元素:
每一个潜在的数据存储中的数据定义应该是一致的。数据每一次进入数据库或者进入文件后,数据质量很容易发生变化。如果在各个环境中的数据定义各不相同,则需要在ETL系统中进行转换来避免数据不一致,必须要有下列数据定义的元数据内容:
业务规则可以分为业务或技术源数据,多有的业务规则都要以彪马的形式被包含在ETL过程中,业务规则可以包括起始域中的任何允许值、缺省值和计算。在源系统中,业务规则在存储过程、强制约束或数据库触发中被执行,但是业务规则还是最常出现在应用程序中。业务规则的元数据会在功能性或者技术性文档和本地程序语言的源代码或伪代码之间进行改变。业务规则必须和逻辑数据视图紧密结合在一起,有时业务规则会在逻辑数据视图中被忽略,直到执行完第一次ETL处理之后才被人注意,或被用户在UAT中发现。当有新的业务规则是,逻辑数据视图的元数据必须更新来反映新的规则。
当ETL物理程序被建立之后,一定要生成明确的元数据来捕获每个处理的内部工作,ETL元数据可以被分为四类:
下图展现了ETL任务元数据被创建,存储和发布的元素:
任务是一系列转换的集合,这些转换执行物理上的抽取、转换和装载程序。一个任务的元数据是物理的源到目的映射,任务应该根据装载的目标表或文件来命名,ETL任务大致上可以分为三类:
转换元数据是关于ETL处理构造的信息,转换是由客户化函数,存储程序,常规程序组成的,这些程序包含了指针、循环、内存变量。在ETL处理过程中的任何对数据的操作都被认为是转换。专门的ETL工具为数据仓库环境预先定义了通用转换,并把他们打包提供给使用者。预先建立的转换加速了ETL的开发,而且还可以在暗中捕获转换元数据。在大部分ETL任务中的通用数据转换包括:
每个转换获得数据,操作数据的程度,然后传送数据到任务队列中进行下一个转换,描述转换的元数据属性包括:
转换是ETL任务的一个构成部分,每种转换在名命格式上都会稍有不同,由于可维护性的原因,在建立ETL转换时最好遵从以下名命规则:
装载进度取决于以下因素:
数据仓库中所有的处理元数据都是由ETL过程生成的,每次一个任务或批处理执行,统计或成功指示器都需要被捕获。导入统计是元数据的一个重要部分。元数据元素可以帮助理解ETL任务中的活动和批处理或评估成功的处理:
处理执行元数据在数据存储中保留,以便进行趋势分析,分析元数据可以发现ETL处理的瓶颈,可以保证数据仓库性能的可控性,同时也可以衡量数据质量。
批处理是一系列要执行的ETL任务调度的集合,批处理的名称应该可以反应出其所属主题,任务执行的频率和任务中批处理执行方式是并行还是串行。
为了维护企业级数据仓库所有ETL过程中可管理的任务,数据仓库必须要建立标准,制定时考虑下列标准:
维护ETL元数据的一个有利条件是元数据可以进行效果分析,通过效果分析,可以列出数据仓库环境中的所有可以改变的特征,还可以分析这些变化所带来的影响。ETL工具要记录源系统所有表,列到他们装载到数据仓库中的所有信息。
本篇介绍了元数据的分类,至此所有数据仓库中关于ETL工具的技术内容全部介绍完毕,下一篇将介绍ETL小组的职责作为本书内容的收官之比。