资源描述
中国建设银行统一数据交换池项目-产品白皮书
统一数据交换池项目
ETL工具软件及产品现场支持服务竞争性谈判
提交文件之六.二.五
ProfileStage白皮书之二
北京先进数通信息技术有限公司
2004年10月21日
本文件涉及信息为北京先进数通信息技术有限公司专有信息,敬请视同机密文件处理。
除因需要而得到授权的中国建设银行及本公司有关人员外,请勿以任何形式向他人或任何第三方透露。
目 录
1. 建立数据轮廓:确保数据质量的第一步 3
1.1 为什么要建立数据轮廓? 3
1.2 不要假定“我们知道自己的数据”! 4
2. 建立数据轮廓:数据集成成功的关键 5
3. 介绍 Ascential 公司的 ProfileStage™ 5
4. 了解首先应从哪里开始 6
5. 建立数据轮廓的功能组成 6
5.1 列分析 7
5.2 表分析 8
5.3 主键分析 8
5.4 交叉表分析 9
5.5 规范化 9
5.6 报表与数据定义语言(DDL)的生成 10
5.7 抽取、转换与加载(ETL)工具支持 10
6. 避免传统的手工处理过程中易犯的错误 11
1. 建立数据轮廓:确保数据质量的第一步
1.1 为什么要建立数据轮廓?
分析人员的研究已经表明:超过 75% 的数据集成项目或者超出预算,或者完全失败。它们或者不能提供要求的特征,超出它们的预算,或者在完成之前被取消。为什么会有如此高的失败率呢?
尽管可能会有所变化,但数据集成的传统方法基本上都采用下列一些步骤:
第一步:分析用户需求,建立一个目标数据库规范。在会见用户之后,即设计出一个力求回答用户所有问题的宏大数据库模型,以求作为目标应用的解决方案。
第二步:分析可用的数据源。对一组来自传统系统以及操作型系统等的数据源进行汇集和分析,以确定它们与目标数据库的关系。数据源的文档也许可用,也许根本就是不可用的,或者是不准确的。对源数据进行一系列抽样考察,以便检测出数据的属性。
第三步:建立一组源数据到目标数据库的映射。制定一个把各种数据源转换到目标应用的计划。典型情况下,这一阶段是用 ETL 工具或自编的程序完成的。
第四步:集结数据。把源数据加载到中间集结区,从中可以排列、清洗和摆布成目标数据存储需要的形式。在这个阶段,可以部署数据质量软件,对数据记录进行标准化,并建立必要的连接。
第五步:加载数据。把数据从集结区移至目标应用中。这一步骤包括格式数据以便制作报表。
1.2 不要假定“我们知道自己的数据”!
手工方法的主要问题是他们假定应用所要求的数据,其数据源实际上都是可用的。一些大的公司在数据集成项目上已经花费了数百万美元,唯一的结果是最终发现源数据不支持目标模型——不管是他们自己建立的,还是由企业应用供应商开发的,因为整个处理过程通常就是由独立的开发团队手工执行的一系列无条理的步骤,而步骤之间的不连续性常常导致灾难性的后果。
典型情况下,企业 80% 的项目预算花费在第三步和第四步,即中间集结和加载数据方面。不幸的是,实际的经验说明,把一组源数据映射到目标只是集成多个数据源的所有任务的一小部分。更重要的工作全在于解决:
l 源数剧中的确切数据是什么?
l 数据是怎样组织的?
l 在目标数据库模式中怎样才能最好地表示这些数据?
l 怎样建立这些源数据到目标的映射?通常,我们很少了解源数据,这就限制了在第二步中取得成功的可能性,因而也就不可能在随后的步骤中取得成功。
大多数数据集成项目之所以超出预算或者完全失败的原因是对元数据缺乏了解。如果不使用自动化的元数据反向工程工具,开发人员只能靠手工调查元数据。传统系统的元数据文档即使在最好的情况下通常也是不完整的,或者根本就不存在。能够解释这些数据的必要人员经常是已经离开了公司。采用随意猜测的方式而不是全面的内容分析,必然导致在源数据集成到目标数据存储的处理过程中存在隐患,需要在整个开发周期的后期进行排错。如果不在设计阶段找出错误,元数据中的问题将会反映到生产系统中。
前期未检测出的缺陷(在需求分析和设计阶段),后期纠正时的花费将是前期解决同一问题的费用的 10 到 100 倍。在数据集成的情况下,当企业试图利用数据,却没有正确理解源数据的属性,就手工建立目标数据库时,这将导致重大的财产损失。在 ETL 处理过程的前期缺乏能够检测问题的工具是加大数据仓库预算费用的主要原因。
2. 建立数据轮廓:数据集成成功的关键
数据质量差是整个公司范围项目失败的根本原因。预先根据源数据建立数据轮廓,将会带来显著的好处:
l 减少项目风险;
l 提高各种企业项目的投资回报率,包括商务智能、企业应用实现、客户单点试图和重要数据管理,等等;
l 验证业务需求的目标究竟能够达到,还是根本就达不到;
l 在投入数据集成开发的时间和人力资源以前,确保不同的源数据能够支持目标要求;
l 在项目开发周期的早期找出微小的数据问题,实际上等于减少了测试和纠正工作的费用;
l 使资源(人、技能和时间)的项目规划更精确。
3. 介绍 Ascential 公司的 ProfileStage™
Ascential ProfileStage™把自动化处理带入关键的和基础的数据源分析任务中,加快全面的数据分析,减少时间价值损失,把关键数据集成项目的全部费用和资源降至最小程度。Ascential ProfileStage™根据源数据建立数据轮廓(分析列值和结构),提出目标数据库建议,如主键、外键和规范化的表。具备了这些信息,Ascential ProfileStage™ 就可以建立一个数据模型,便利于源到目标映射,以及自动地生成数据集成作业。
通过提供已全面了解清楚的元数据,或在诸多表和数据库内找出其中的依赖关系,Ascential ProfileStage™ 允许用户集成多个异构系统。因为元数据是基于实际的源数据的,准确度是100%。因此,在项目开发之前,通过暴露集成方面的问题,可以减少项目风险。通过运用这个先进的建立数据轮廓的功能,最终得到的成果将会是一个健壮的和可靠的实现,其中避免了关键的数据集成问题。Ascential ProfileStage™ 能够把典型的6到8个月的项目,以30到60天的时间完成,并交付同样的结果,平均节省70%的时间。
4. 了解首先应从哪里开始
Ascential ProfileStage™对用户数据的内容不做任何臆测。用户只需要提供记录设计的描述。Ascential ProfileStage™ 可读入任何源数据,自动地分析这些数据,并建立完整的数据档案,从而正确无误地生成数据(此后便是元数据)的属性。这些属性包括表、列、可能的键以及数据中相互间的关系。一旦知道和验证了这些属性,Ascential ProfileStage™将自动地生成规范化的目标数据库模式。商务智能报表和源数据到目标数据库的转换均被自动地指定为该目标数据库结构的一部分。
在理解了源数据之后,数据集成项目团队仍然面临很大的挑战,即使已经采用了解了的模式,把数据转换到关系数据库中,也是如此。当使用传统的多阶段处理过程时,设计阶段出现的错误经常需要在生产系统上进行手工调试。Ascential ProfileStage™ 令这个处理过程自动化——提出对目标数据库的建议,使用户能够灵活地进行编辑,从而尽可能地获得最好的最终结果。
5. 建立数据轮廓的功能组成
下面是建立数据轮廓的处理过程和主要组成部分的描述:
l 列分析;
l 表分析;
l 主键分析;
l 交叉表分析;
l 规范化;
l 报表与数据定义语言(DDL)的生成;
l 抽取、转换与加载(ETL)工具支持。
5.1 列分析
列分析考查同一列的所有值,以推断列的定义和其他属性,如域值、统计尺度和最小/最大值等。在进行列分析期间,将单独地对源数据每个表的每个可用的列进行深入的考查。对数据的许多属性进行观察和记录,举例如下:
l 最小、最大和平均长度;
l 数值的精度和度量单位;
l 基本数据类型,包括不同的日期/时间格式;
l 最小、最大和平均数值;
l 空值、NULL值和非NULL/空值的计数;
l 不同数值或基数的计数。
另外,列分析还将对列中的数据进行一定的推断,例如:
l 数据类型、精度和度量单位。
l 是否允许使用NULL值。
l 列是否包含常数值。
l 列值是否唯一的。
在进行列分析期间,用户需要创建在ETL处理过程中使用的转换注解/规则。这是产生投资回报率较多的地方。
5.2 表分析
表分析是一个表处理过程。为了计算一个表的函数依赖关系,它从该表所有列的数据值中,随机选取抽样数据进行考查。表分析寻求找出同一表中不同列之间的关联关系。
如果一组列依赖于另一组列,则说明表中存在函数依赖关系。每个函数依赖关系都有两个组成部分:
l 决定列——同一表中构成决定性因素的一组列,也即决定依赖关系的一组列。决定列可以由一个或多个列组成。
l 依赖列——同一表中的一个依赖于决定列的列。一个列是依赖列,仅当对于决定列的一个给定的值,该列的值总是相同的。
Ascential ProfileStage™不仅显示数据100%支持的函数依赖关系,而且Ascential ProfileStage™也显示数据支持较弱的函数依赖关系。例如,在建立依赖数据轮廓期间,Ascential ProfileStage™计算纪录行支持一个给定函数依赖关系的百分比,而不是仅仅扔掉有关信息。 Ascential ProfileStage™ 会精确地锁定有问题的结构,并显示问题的量值。了解函数依赖关系是否遭到破坏仅仅是第一步,还需要了解究竟是怎样破坏的,进而有效地界定和纠正这一问题。Ascential ProfileStage™提供一些手段,可以做这种类型的分析。
5.3 主键分析
主键分析是一个找出一个或多个表中所有候选键的处理过程,其目的是找出最适合作为每个表的主键的一个列或一组列。在随后的步骤(如交叉表分析)能够执行之前,这一分析过程必须完成。
通常,主键分析采用来自表分析的结果。表分析从表的列中找出依赖关系,并把它们记录为“聚集依赖关系”。AggregateDependency 表中的每一行记录表示给定表的单个依赖关系。每个依赖关系包括两部分:构成决定列的单个列或一组列(同一表中),和依赖于决定列的一组列(也在同一表中)。对于一个给定的决定列的值,如果依赖列的值总是相同的,则称这一组列依赖于决定列。正如我们所知道的那样,主键可以决定表中一行记录其余列的所有值。在主键分析期间,一个或多个聚集依赖关系将成为候选的键。
之后, 一个候选键必须经用户认可才能作为主键。
5.4 交叉表分析
交叉表分析是一个多表处理过程,它把每个选定表中的所有列与其他选定表中的所有列进行比较,其目的是找出共享一个公共域的列。如果发现两个列共享一个公共域,也许这表示两个表之间存在一个外键关系,或者存在冗余数据。这些可能性将在随后的关系分析阶段予以考查。DomainsCompared 表中的每一行表示两个列的域已经在交叉表分析期间做过比较。域比较是一个双向的处理过程,从中可以推断出一个列的域是否包含在其他列的域中,或者恰好相反。CommonDomains 表中的每一行表示一个列(“基”列)与不同表中的另一个列(“配对”列)共享一个公共域。公共域仅仅是相对于“基”列而言的,并不关注是否“配对”列也存在公共域。
用户可以运用Ascential ProfileStage™中的交叉表分析,在多个表中找出外键。Ascential ProfileStage™首先找出每个表的主键,然后在所有的表或文件中找出等同的或重叠的数据。
在找出等同的或重叠的数据之处,用户有权利选定主键,和把相应的列指定为外键关系。
5.5 规范化
规范化包括为目标数据库计算第三范式关系模型。系统提供一个“Normalization Wizard(规范化向导)” 用户界面,引导用户一步一步地完成目标数据库模型的规范化处理。分析阶段获得的信息有助于用户在构建目标数据模型方面做出明智的决策。当 Ascential ProfileStage™发现候选的规范化关系模型时,他将向用户提出建议。用户可以接受、拒绝或按自己的想法修改推荐的规范化关系模型。
从三个建立数据轮廓阶段获得的信息存储在 Ascential ProfileStage™ Metadata Repository(元数据存储)中。这是一个用户选用的关系数据库,其中包含项目中所有有关元数据的信息。这个元数据存储提供一个基础,用于生成数据轮廓报表、规范化的关系模型、目标数据库的数据模型,以及源到目标的映射。
5.6 报表与数据定义语言(DDL)的生成
数据轮廓报表描述了从建立数据轮廓阶段获得的信息。这些报表可以用作一个基础,以评估项目的范围,与最终用户及合作伙伴签订阶段工作终止协议,以及调查元数据的真实构成。报表可以在用户屏幕上显示、打印,可以保存到文件中,发送电子邮件,转换为 Word 和 HTML 等各种存储格式。
构建的数据模型能够以各种形式导出到流行的数据建模工具。然后,用户能够以各种组合形式考查数据模型。如果在考查数据模型之后,用户确定有必要对目标模式做适当的修改,他们可以在“Normalization Wizard”中,或者在分析阶段对数值进行调整。新的或修正的模型可以加载到 Ascential ProfileStage™ Metadata Repository,并集成到项目中。
Ascential ProfileStage™ 支持各种SQL语言的生成,包括SQL Server、ANSI SQL和Oracle。DDL也能够以XML格式生成。
5.7 抽取、转换与加载(ETL)工具支持
一旦映射经过确认,创建 ETL 作业,进而创建目标数据库纯粹就是点击一个按钮的事了。这个方法也支持以鼠标拖放的形式实现从源到预定义的目标之间的映射。
Ascential ProfileStage™自动生成用于Ascential DataStage™作业转换的代码,把非规范化的源数据库转换成完全规范化的目标数据库。程序员不需要花费时间为这些基本的转换去建立 Ascential DataStage™作业,因为 Ascential ProfileStage™能够根据存储在 Ascential ProfileStage™ Metadata Repository(元数据存储)中的信息,推导出目标数据库的数据模型,其中源到目标的映射是自动计算的。
Ascential ProfileStage™ 提供直观的和高效率的界面,以便修改源到目标的映射,包括附加的列、转换规则和汇总。通过利用现有的工具进行严格的集成,Ascential ProfileStage™提供了一个规范建立和 ETL 生成的环境。在用户确认了源到目标的映射正确无误之后, Ascential ProfileStage™ 自动地生成一组作业,并立即开始 Ascential DataStage™ 的处理过程。这可以从各种数据源开始,包括所有 ODBC 兼容的关系数据库、COBOL 传统数据,甚至是普通的 ASCII 文本文件。处理过程结束后,生成实际进行数据迁移的 Ascential DataStage™作业。
6. 避免传统的手工处理过程中易犯的错误
通过把传统的处理步骤合并到集成的处理过程,再加以来自源数据的启发和推断,以及稳定的交付环境,可以避免传统的手工处理过程中易犯的错误。采用Ascential ProfileStage™的部分优势包括:
l 生成正确的元数据,因为Ascential ProfileStage™是根据实际存在,而不是开发人员的凭空想象而生成元数据的。Ascential ProfileStage™确保定义的规范是正确的。
l 在项目的早期阶段,通过源数据到目标仓库处理的规范,标记并纠正无效的数据。
l 根据系统中已经过用户核实的报表,自动地建立精确的源数据文档。文档是作为一种副产品自动生成的,它反映了存在于源系统中的实际数据。
l 不依赖开发了生成源数据的应用的程序员,唯一需要的只是访问数据。
l 从实际存在的数据中推断出键值。
l 从实际存在的数据中推断出字段类型。
l 作为规范的一部分正确地生成并映射编码字段的阈值范围。
l 自动地生成规范化的目标数据库,并在数据建模中消除可能需要付出代价的错误。
l 根据实际存在的源数据推断出依赖关系。
l 自动地生成目标数据库的定义,其中包括外键和主键、范式以及正确的数据类型。
l 通过Ascential DataStage™作业的生成机制,减少了手工数据转换的任务。
利用 Ascential ProfileStage™达到的生产能力,减少了数据集成项目对员工的需求。但这并非说 Ascential ProfileStage™是一种万能的神器,可以消除处理过程中可能出现的任何问题。分析人员和开发人员仍然必须对出现的问题做出明智的决断,并发挥他们的才干。但通过消除传统数据集成项目中经常遇到的大量易犯的错误,Ascential ProfileStage™能够奇迹般地减少完成项目所需要的时间和工作量。Ascential ProfileStage™ 能够把典型的6到8个月的项目,用30到60天的时间完成,并提交相同的结果。Ascential ProfileStage™ 有助于保证得到令人满意的结果,至少也能在处理过程的早期,找出源数据中存在的致命问题并予以纠正,大大减少时间上和预算方面的费用。
图中文字的翻译
RDBMS
Cobol传统数据
普通文本文件
工作数据集
数据轮廓抽样
建立数据轮廓与分析
建立数据模型
规范化与生成源到目标映射
Ascential DataStage作业
第 12 页
展开阅读全文