数据仓库ETL工具箱——元数据

由于ETL是数据仓库得核心,时常承担着管理和存储数据仓库大量元数据得职责。在数据仓库中ETL处理程序是元数据最重要得创建者——数据沿袭。数据沿袭追踪数据从源系统和文件中得请确位置直到最终被装载之前。数据血统包括数据库系统的数据定义和在数据参考古中最终静止状态。元数据分为后台元数据和前端元数据,后台元数据是与处理相关的,指导抽取清洗装载工作;前端元数据更偏向描述性和使我们的查询工具和报表工具更加稳定。后台将数据加载到数据仓库,同时指明数据来源,而前端元数据主要是为终端用户服务的,可以作为描述所有数据的业务数据字典。对于元数据应该进行以下工作:

  • 制定完善的良好的注释目录
  • 判定每一部分究竟有多重要
  • 指定专人负责
  • 判定一个和谐一致的工作规则
  • 判定是否自己构建还是购买
  • 专门存储用以备份和恢复
  • 对需要他们的人们开放
  • 保证质量,保证完整和及时更新
  • 实时控制

以上各项任务都需要完善的文档。数据源规范:

  • 知识库
  • 来源计划
  • 拷贝记录
  • 所有权或第三方来源计划
  • 存档主机数据的原有格式
  • 相关源系统数据表和DDL
  • 电子数据表
  • Lotus Notes 数据库
  • 表达图形
  • URL来源规格说明
  • 来源描述信息:

1.各来源的所有描述信息

2.各来源的业务描述

3.最初来源的更新频率

4.各来源使用的司法局限性

5.存储方法,读取权限,和各来源存取口令

  • 处理信息

6.主机或源系统工作计划

7.使用COBLO/JCL或C或Basic或其它语言来实现抽取

8.如果使用工具,则包含自动化抽取工具的设置

9.特殊抽取的结果,包括抽取时间和工作完成率

关于元数据的描述,数据需要的信息:

  • 数据传输计划和特殊传输结果
  • 数据传送区的文件用法,包括持续时间消耗和所有者信息

维度表管理:

  • 规范化维度的定义和规范化事实的定义
  • 关联源的Job规范,剥除域,查找属性
  • 降低每一个引入描述属性维度规则的变化速度
  • 每一个生产键所分配的当前代理键,也包括内存中执行映射的查找表
  • 前一天生产维度的副本,最为比较差的基础

转换和聚合:

  • 数据清洗规范
  • 数据增加和映射转换
  • 为数据挖掘所准备的数据转换
  • 目标计划涉及,源和目标数据流,和目标数据所有权
  • 数据库管理系统的导入脚本
  • 聚合定义
  • 聚合用法统计,基础数据表使用统计,以及潜在的聚合
  • 聚合更改日志

审计,工作日志和文档:

  • 数据沿袭和审计记录
  • 数据转换时间日志
  • 数据转换运行时间日志,成功记录摘要,时间戳
  • 数据软件版本号
  • 抽取过程的业务描述
  • 抽取文件,抽取软件和抽取元数据的安全设置
  • 数据转换的安全设置(授权口令)
  • 数据分段传送区存档文件日志和恢复进程
  • 数据分段传送区存档文件日志安全设置

DBMS元数据中作用在以下部分:

  • 数据库管理系统系统表目录
  • 分区设置
  • 索引
  • 磁盘带区规范
  • 程序处理提示
  • 数据库管理系统级别和安全的权限和授权
  • 视图的定义
  • 存储过程和SQL管理脚本
  • 数据库备份,状态备份程序和备份安全性

在前端扩展的元数据包括:

  • 纵列表分组的业务名称和描述等等
  • 模糊查询和报表定义
  • 连接规范工具设置
  • 灵活打印规范说明
  • 最终用户文档和培训帮助,包括供应商提供和IT提供
  • 网络安全用户授权
  • 网络安全鉴定证数
  • 网络安全使用统计,包括试图读取的日志和用户ID
  • 个人使用者描述包括人力资源链接
  • 提高影响读取权限的传输流畅性
  • 连接到合约人和合作者可以追踪读取权限的影响范围
  • 数据原理,数据库表,和视图报告的使用和读取映射
  • 资源回收统计
  • 收藏的网页

 元数据包括了所有,从某种程度上来说,元数据是数据仓库的DNA,它定义了所有元素及元素之间协同工作的方式。元数据可以分为以下三类:

  1. 业务元数据,在业务层面描述数据的含义
  2. 技术元数据,描绘数据的技术方面包括数据的属性,如数据类型、长度、沿袭及评估统计等
  3. 过程处理元数据,介绍运行ETL处理的统计信息,包括度量标准比如记录导入成功,记录丢失,处理时间等等

除了这三种元数据之外,还应该考虑元数据的标准,数据仓库后端的元数据流程如下图:

 数据仓库ETL工具箱——元数据_第1张图片

上图描述了使用和收集的元数据的所有地方,包括:

  • 每一个数据阶段的起源和处理步骤
  • 元数据资料库作为第三方ETL工具的一个有利条件
  • 元数据需求构架:源表,清洗和处理
  • 为终端用户介绍有用的元数据
  • 抽取转换应用
  • 规范化元数据
  • 元数据的XML描述
  • 平面文件中元数据的缺失
  • 分析元数据的效果
  • 计划创建描述沿袭的元数据,业务定义,技术定义以及处理过程
  • 逻辑数据视图
  • 抽取过程中源数据的捕获计算
  • 源数据库描述
  • ETL工具读取ERP系统元数据
  • 数据评估的结果
  • 错误事件跟踪事实表
  • 审计维度
  • 代理键最高值
  • 聚合数据
  • 处理数据搭建OLAP架构
  • 装载到控制文件
  • 支持恢复处理的元数据
  • ETL参数
  • 任务依赖
  • 任务操作性统计,如性能和资源的使用
  • 元数据资料库报告
  • 数据表净化规则

 业务定义对于数据仓库至关重要,不仅是终端用户需要业务定义,ETL也需要业务定义来给出正在操作数据的上下文关系。一个典型的业务定义矩阵包括3个主要组成部分:

  • 物理表和列名称,数据参控股中数据元素的业务解释是基于数据库中真实的表和列名称。
  • 业务列名称,数据库所存储的数据元素在技术上是由前缀后缀和下划线组成的。业务名称需要技术性名称和有实际意义名称之间的翻译
  • 业务定义,业务定义是指对业务属性含义的描述。数据仓库中每个属性一定会有一个业务定义。

所有ETL工具都支持捕获和存储元数据,ETL工具应该和数据模型工具、数据库一起获得业务定义,并通过BI工具把业务名称和业务定义展现给最终用户。

数据在导入数据仓库前需要进行分析,指定数据改造计划,使数据能够较为理想的被导入到数据仓库中,在分析源系统时,需要以下元数据属性:

数据库或文件系统,当涉及到源系统或文件的时候经常用到这个属性

表规范,包括表的用途,表的大小,主键和预备键以及所有列的清单

排异处理规则

业务定义

业务规则,针对于每张表都要有相应的业务规则

在数据仓库项目中,数据分析阶段需要大量时间研究源系统,缺少源系统元数据和导致数据仓库更多的故障,所有源系统的元数据必须在ETL开发之前提供给ETL团队。

数据仓库的数据字典时关于所有数据元素和他们业务定义的清单,与源系统业务定义相似,数据仓库数据字典包括物理表和列名称,业务名称和业务定义。

逻辑数据视图时ETL的生命线,从元数据的角度上看,逻辑数据视图是由从源到目的的映射,从逻辑上解释了数据从源系统中抽取出来到装载到数据仓库中的整个流程。逻辑数据映射是元数据的重要部分。

技术元数据服务于多种用途,它包括了到列名称,数据类型,存储和RAID矩阵的配置,需要了解数据仓库中数据元素的物理模型及属性。数据的技术定义是数据的容器和框架结构,必须了解数据定义的三种环境:

  • 源数据库
  • 分段处理区域表
  • 数据仓库展现区

每个环境都应该被提供一个E-R图,每个系统至少要包含以下元素:

  • 表:表或文件的一份详尽清单,这份清单有可能在抽取和装载过程中使用,通常这份清单只提供逻辑数据映射的源系统数据表
  • 列:对于每张表,都需要一张数据映射所要求列的清单,由源系统的DBA提供
  • 数据类型:数据表的每一列都有一个数据类型,在不同数据库系统中有些数据类型不尽相同,大部分ETL工具可以转换相应的数据类型
  • 关系型数据库:关系型数据库支持参照完整性,参照完整性和表之间的关联关系能够保证数据导入的唯一一致性,数据之间的关联关系是通过表与表之间的主外键连接展示的

每一个潜在的数据存储中的数据定义应该是一致的。数据每一次进入数据库或者进入文件后,数据质量很容易发生变化。如果在各个环境中的数据定义各不相同,则需要在ETL系统中进行转换来避免数据不一致,必须要有下列数据定义的元数据内容:

  • 表名称:表和文件的物理名称
  • 列名称:表和文件中列的物理名称
  • 数据类型:数字型、字符型、日期型、二进制以及自定义数据类型
  • 域:数值要进入的列被称为域,域通过外键和检查约束或数据库顶端应用来执行
  • 参照完整性:数据仓库中的参照完整性被认为不是必要的,因为所有的数据都是经过ETL处理以受约束的形式进入数据库的,在数据库级不需要强制的完整性约束
  • 约束:约束时业务规则的另一种物理执行,数据库约束可以消除空值,争抢外键查找等
  • 缺省值:万一实际值是不可获取的,ETL元数据的缺省值可以分配为字符串类型,数字型,日期型或bit型。在源系统中,缺省值经常被分配为数据库级别的。在数据仓库中,缺省值的指派发生在ETL处理中,数据仓库中的缺省值最好坚持始终如一的一致性
  • 存储过程:存储过程存储了已经在数据库中写好的SQL语句,可以通过存储过程看到源数据是如何使用的,每个数据仓库项目都要涉及到源系统的分析型存储过程
  • 触发:当数据库系统中的记录要增加,删除或更新时通过触发自动执行SQL程序。像存储过程一样,通过触发器,也可以指导数据时如何使用的。触发经常通过向加入到表中的数据增加额外的检查来增强外键约束。当表中的数据发生变化或被删除时,触发还承担审核表的责任,审核表时数据仓库中删除数据的重要审核来源。

业务规则可以分为业务或技术源数据,多有的业务规则都要以彪马的形式被包含在ETL过程中,业务规则可以包括起始域中的任何允许值、缺省值和计算。在源系统中,业务规则在存储过程、强制约束或数据库触发中被执行,但是业务规则还是最常出现在应用程序中。业务规则的元数据会在功能性或者技术性文档和本地程序语言的源代码或伪代码之间进行改变。业务规则必须和逻辑数据视图紧密结合在一起,有时业务规则会在逻辑数据视图中被忽略,直到执行完第一次ETL处理之后才被人注意,或被用户在UAT中发现。当有新的业务规则是,逻辑数据视图的元数据必须更新来反映新的规则。

当ETL物理程序被建立之后,一定要生成明确的元数据来捕获每个处理的内部工作,ETL元数据可以被分为四类:

  • ETL任务元数据:任务元数据包含了数据仓库中各元素数据沿袭
  • 转换元数据:每个任务都由多个转换组成,任务中数据处理的任何形式都是由专门转换工作来执行的
  • 批处理元数据:批处理时一种执行任务集合的技术,应该具有配置执行连续性和并行处理的能力,包含分支批处理
  • 处理元数据:每当执行批处理,就会生成处理元数据,对于描述数据是否被陈工装载到的数据仓库中,处理元数据非常重要

下图展现了ETL任务元数据被创建,存储和发布的元素:

数据仓库ETL工具箱——元数据_第2张图片 

  • 任务名称:物理ETL任务名称
  • 任务用途:最初中心任务的简要描述
  • 源表/文件:所有源数据的名称和路径位置
  • 目的表/文件:在转换完成之后所有结果数据的名称和目录路径
  • 丢弃文件名称:丢弃文件的名称和路径位置(在装载过程中没有载入目的地址的数据表或文件称为丢弃文件)
  • 预处理前置任务:在任务被执行之前需要处理任务或脚本
  • 后置任务:在任务处理之后需要执行的任务或脚本

任务是一系列转换的集合,这些转换执行物理上的抽取、转换和装载程序。一个任务的元数据是物理的源到目的映射,任务应该根据装载的目标表或文件来命名,ETL任务大致上可以分为三类:

  • 抽取,EXT_,从名称中看出这个任务的主要目的是从源系统中抽取数据
  • 中间阶段,STG_,是一个数据存在于集结区的中间过程
  • 目标,TRG_意味着任务是装载数据到目标数据仓库的

转换元数据是关于ETL处理构造的信息,转换是由客户化函数,存储程序,常规程序组成的,这些程序包含了指针、循环、内存变量。在ETL处理过程中的任何对数据的操作都被认为是转换。专门的ETL工具为数据仓库环境预先定义了通用转换,并把他们打包提供给使用者。预先建立的转换加速了ETL的开发,而且还可以在暗中捕获转换元数据。在大部分ETL任务中的通用数据转换包括:

  • 源数据抽取
  • 代理键生成器
  • 查找
  • 筛选
  • 路由器
  • 联合
  • 聚合
  • 异构连接
  • 更新策略
  • 目标装载器

每个转换获得数据,操作数据的程度,然后传送数据到任务队列中进行下一个转换,描述转换的元数据属性包括:

  • 转换名称
  • 转换的意图
  • 输入列
  • 物理计算
  • 逻辑计算
  • 输出列

转换是ETL任务的一个构成部分,每种转换在名命格式上都会稍有不同,由于可维护性的原因,在建立ETL转换时最好遵从以下名命规则:

  • 源数据抽取:SRC_
  • 代理键生成器:SEQ_
  • 查找:LKP_<正在加载或引用的table_name>
  • 筛选:FIL_<用途>
  • 聚合:AGG_<用途>
  • 异构连接:HJN_<第一张table_name>_<第二张table_name>
  • 更新策略:UPD_<操作类型(INS,UPD,DEL,UPS)>_<标记table_name>
  • 目标装载器:TRG_<标记表名>

装载进度取决于以下因素:

  • 依赖的批处理
  • 频度
  • 执行进度
  • 恢复步骤

数据仓库中所有的处理元数据都是由ETL过程生成的,每次一个任务或批处理执行,统计或成功指示器都需要被捕获。导入统计是元数据的一个重要部分。元数据元素可以帮助理解ETL任务中的活动和批处理或评估成功的处理:

  • 主题名称:可以是数据集市或者描述为某个特定区域而执行批处理
  • 任务名称:执行程序的名称
  • 处理行:从源数据系统中读取或处理的行数统计和百分比统计
  • 成功行数:装载到数据仓库中数据的总数和百分比
  • 失败行数:被数据仓库拒绝的数据总数和百分比
  • 最近错误代码:在数据装载过程中,最近的数据库或者ETL异常的错误代码
  • 最近错误:最近错误的文本描述
  • 读取能力:用来衡量ETL处理性能的,用行/秒来描述,当源系统读取发生瓶颈时,记录读取能力
  • 写能力:用来衡量ETL处理性能的,用行/秒来描述
  • 开始时间:任务开始时的日期,时间和分秒
  • 结束时间:任务结束时的日期,时间和分秒,不考虑任务是否成功
  • 耗时:性能分析的重要指标
  • 源文件名称:ETL抽取涉及的数据的表或文件的名称
  • 目标文件名称:ETL涉及目标的数据的表或文件名称

处理执行元数据在数据存储中保留,以便进行趋势分析,分析元数据可以发现ETL处理的瓶颈,可以保证数据仓库性能的可控性,同时也可以衡量数据质量。

  • 在执行过程中,可能引起数据记录异常条件,可以采取以下措施:
  • 主题名称:可以是数据集市或关于批处理的描述
  • 任务名称:执行程序的名称
  • 异常条件:异常条件的标准设置
  • 严重性
  • 采取措施
  • 操作员
  • 结果

批处理是一系列要执行的ETL任务调度的集合,批处理的名称应该可以反应出其所属主题,任务执行的频率和任务中批处理执行方式是并行还是串行。

为了维护企业级数据仓库所有ETL过程中可管理的任务,数据仓库必须要建立标准,制定时考虑下列标准:

  • 命名习惯
  • 体系结构
  • 基础构造

维护ETL元数据的一个有利条件是元数据可以进行效果分析,通过效果分析,可以列出数据仓库环境中的所有可以改变的特征,还可以分析这些变化所带来的影响。ETL工具要记录源系统所有表,列到他们装载到数据仓库中的所有信息。

本篇介绍了元数据的分类,至此所有数据仓库中关于ETL工具的技术内容全部介绍完毕,下一篇将介绍ETL小组的职责作为本书内容的收官之比。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(大数据,数据仓库)