创建数据仓库的方法.doc_第1页
创建数据仓库的方法.doc_第2页
创建数据仓库的方法.doc_第3页
创建数据仓库的方法.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

创建数据仓库的方法、模型与步骤一、 引言 随着计算机技术的飞速发展和企业界不断地提出新的需求,数据仓库技术应运而生。传统的数据库技术是以单一的数据资源为中心,同时进行从事务处理、批处理到决策分析的各种类型的处理。 近年来,人们逐渐认识到计算机系统中存在着两类不同的处理:操作型处理和分析型处理(或信息型处理)。操作型处理也叫事务处理,是指对数据库联机地进行日常操作,通常是对一个或一组记录的查询和修改,主要是为企业的特定应用服务的。对此,人们关心的是响应时间、数据的安全性和完整性。分析型处理则用于管理人员的决策分析。例如SS、EIS和多维分析等,经常要访问大量的历史数据。 二者的巨大差异使得操作型处理和分析型处理的分离成为必然。于是,数据库由操作型环境发展为一种新环境:体系化环境。体系化环境由操作型环境和分析型环境(数据仓库级、部门级、个人级)构成。数据仓库是体系化环境的核心,它是建立决策支持系统(DSS)的基础。 二、 数据仓库的系统设计方法:CLDS 数据仓库的数据是面向主题的。数据以数据模型中所定义的各个主题域为基础,与应用相独立。主题域又可分为表示企业中一系列基本实体的主题,以及表示实体间联系的主题。 正是由于数据仓库中的数据是面向主题的,从而决定了其设计由数据驱动。传统的操作型环境则是面向应用、由需求驱动的。在操作型环境中,业务过程和规则比较规范和固定。系统设计人员能够清晰地了解应用的需求和数据流程。系统的设计一般采取系统生命周期法(SDLC-Systems Development Life Cycle)。 而在分析型环境中,DSS分析员一般是企业的中上层管理人员,他们对决策分析的需求不能预先做出规范说明。他们对开发人员说:让我看看我能得到什么,然后我才能告诉你我真正需要什么。 数据仓库应该在极大量的数据中为用户提供有用、及时、全面的信息,以帮助用户做出正确的决策。所以数据仓库的系统设计采取与系统生命周期法相反的方法,称为CLDS(与SDLC相反)。CLDS由数据开始,对已有的数据进行集成,生成各个主题域,然后根据数据来编制程序。用户根据查询和分析的结果,将需求反馈给开发人员。 数据仓库的系统设计是一个动态的反馈和循环的过程。一方面数据仓库的数据内容、结构、粒度、分割以及其它物理设计根据用户所返回的信息不断地调整和完善,提高系统的效率和性能。另一方面,通过不断地理解需求,使得最终用户能做出更准确、更有用的决策分析。三、数据仓库的数据模型 数据模型是对现实世界进行抽象的工具。操作型环境和分析型环境的数据模型均由整体数据模型发展而来。整体数据模型仅含有原始数据。从整体数据模型到操作型数据模型的变化是很少的,两种数据模型基本等价,只是在操作型数据模型中增加了一些性能因素,以提高系统的性能。而数据仓库的数据模型的变化却很大:首先删除了那些纯操作型的数据;其次,扩充了码结构,增加了时间属性;并增加了一些导出数据;最后,操作型环境中数据的完整性在数据仓库中被转化为由artifact实现。 有文献提出了数据仓库中三级数据模型的概念:高级别的模型,即ERD(Entity-Relationship Diagram);中级别的模型,称为DIS(Data Item Set数据项集合);低级别的模型,即物理数据模型。 当前的数据仓库一般建立在RDB的基础上,我们认为该三级模型可通过ERD和关系模型实现。ERD的设计是很重要的一步,它属于概念模型,独立于具体的系统,它描述了企业内的实体和联系,即主题域,是企业最高层次的抽象。整体ERD由各分ERD综合而成,不仅消除了分ERD之间的不一致,而且消除了不必要的冗余。ERD在逻辑上实现了数据仓库集成和面向主题的特点。下一步是设计数据仓库的逻辑数据模型,扩充每个主题域,以得到主码(包括时间主属性)和各属性,并实现主题域之间的联系。物理数据模型设计要确定数据仓库在物理设备上的存储结构和存取方法,这与具体的系统是有关的。 四、提高数据仓库的性能 建立数据仓库过程中的一个重要问题是系统的性能。 提高系统性能尤其是系统的物理I/O性能,是数据仓库设计人员的一个重要目标。这是由于I/O常常成为影响系统性能的瓶颈。在数据仓库的设计中,应使得每次I/O返回尽量多的纪录。事实上,数据仓库中的数据量很大,但数据极少甚至不再更新,所以数据仓库的物理设计有着自己的特点。 1.划分粒度 对数据仓库开发者来说,划分粒度是设计过程中最重要的问题之一。所谓粒度是指数据仓库中数据单元的详细程度和级别。数据越详细,粒度越小,级别就越低;数据综合度越高,粒度越大,级别就越高。在传统的操作型系统中,对数据的处理和操作都是在详细数据级别上的,即最低级的粒度。 但是在数据仓库环境中,主要是分析型处理,粒度的划分将直接影响到数据仓库中的数据量和所适合的查询类型。一般需要将数据划分为:详细数据、轻度综合、高度综合三级或更多级粒度。不同粒度级别的数据用于不同类型的分析处理。粒度的划分对数据仓库中其它的设计工作有很大影响,粒度划分是否正确将影响数据仓库的设计。 正确划分粒度的第一步是估算数据仓库中数据的行数和所需的DASD( Direct Access Storage Device)数;然后根据估算出的数据量和DASD, 决定是否有必要和如何划分粒度。有一点需要说明,粒度划分的决定性因素并非总的数据量,而是总的行数。这是因为对数据的存取通常是通过存取索引来实现的。 从一开始就要完整地设计数据仓库的所有粒度层次是不可取的。通常是先以经验来选择粒度水平,然后再在建立和使用数据仓库的反馈中循环地进行调整。 2.进行分割 数据的分割是指把逻辑上统一的数据分割成较小的、可以独立管理的物理单元(称为分片)进行存储,以便于重构、重组和恢复,以提高索引创建和顺序扫描的效率。数据的分割使数据仓库的开发人员和用户具有更大的灵活性。 数据分割分为系统级和应用级两种。系统级的分割是由DBMS和操作系统实现的;而应用级的分割是由开发人员和程序员通过应用代码来直接控制的。通常分割是按日期、业务、机构、地域或它们的组合进行的,所以应用级的分割更为灵活,更利于提高系统的性能。因此,在数据仓库的设计中,应用级的分割使用得更为普遍。 对数据分割的正确性,可以用这样一个问题来检验:能否将索引加到一个分片上而不影响其它的操作。如果增加一个索引的操作非常复杂,就有必要对数据的分割进行调整或重新进行分割。 3.其它物理设计 (1)表的合并。物理模型设计的结果是生成了许多只含有很少量记录的表,通常每个物理块上存有多个表。因此,将相关的表预先合并在同一物理块中将会减少I/O的次数。 (2)建立数据矩阵。在数据仓库中,一些数据通常是按一定的顺序来存取的,将数据矩阵存放在一个物理块中,可以大大减少系统I/O。 一个明显的例子是,按照时间的顺序将某一时期内的数据存放到一个数据矩阵中。 (3)引入冗余。数据仓库的分析通常要涉及不同表的多个属性,因此可将那些比较稳定、存取频率较高的属性复制到多个主题中,以减少被存取的表的个数。 (4)进一步细分数据。每个主题中的各个属性的存取频率是不同的。可以将一张表按照各属性被存取的频率分成两个或多个表。 (5)生成导出数据。如果事先在原始数据的基础上进行总结或计算,生成导出数据,那么就可以在应用中直接利用这些导出数据。这样,既减少了I/O的次数, 又免去了计算或汇总的步骤。 (6)建立索引。当数据从操作型环境移植到数据仓库中时,要建立索引。 (7)参照完整性的实现。与操作型环境相比,数据仓库中的数据量非常大,数据不被更新,一部分数据的清除对其它数据的影响较小,在数据仓库中需要对业务规则进行更详细的描述。因此,数据之间的联系在一段时期内是静态的,必须采用与传统的数据参照完整性不同的技术。 五、创建数据仓库的步骤 数据仓库的创建不是一蹴而就的。从原有的操作型环境移植到体系化环境是一项复杂而艰巨的工作,它需要将许多系统和产品集成。数据仓库的建立将会面临很大的风险,在得到回报之前要经历一个长时期的不断反馈的循环过程。下面讨论一个建立数据仓库的方法,该方法已经在很多企业中获得了成功。 1.建立数据仓库的数据模型 数据仓库建立的第一步是设计数据仓库的数据模型。通过数据模型,我们可以得到企业完整而清晰的描述信息。数据模型是面向主题建立的,同时又为多个面向应用的数据源的集成提供了统一的标准。数据仓库的数据模型一般包括:企业的各个主题域、主题域之间的联系、描述主题的码和属性组。 2.定义记录系统(System of Records) 数据仓库中的数据来源于多个已有的操作型系统。一方面,各个系统的数据都是面向应用的,不能完整地描述企业中的主题域;另一方面,多个数据源的数据之间存在着许多不一致,如命名、结构、单位不一致等,甚至数据的内容也可能不一致。所以必须在已有系统中定义记录系统。记录系统是一个内容正确、在多个数据源间起决定作用的操作型数据源。它的特点是:数据最完整、最准确、最及时,结构最适合于数据仓库,并且与外部数据源最为接近。数据仓库的数据将由记录系统转换而来。 3.将数据模型转换成数据仓库的设计 数据仓库的设计以数据模型为基础,并进行了一些修改:删去了纯操作型数据,在码中增加了时间属性,用arti-fact替代了参照完整性,生成了导出数据。此外,还包括许多有关物理特性的设计。 需要说明的是,在进行数据仓库的设计之前,必需对系统的技术环境进行估计和准备。比如,用于数据仓库的软件和工具、系统所需的DASD数、如何建立网络等。技术环境是建立数据仓库的基础。 4.建立记录系统与数据仓库的接口 至此,我们已经确定了数据仓库的数据模型,并在操作型环境中定义了记录系统,接下来的工作是如何建立和设计两者之间的接口。接口与抽取程序不同,抽取程序只是将两种数据源之间的数据进行转换。在记录系统到数据仓库的转换过程中,面向应用的多个数据源的混乱状态经过集成,生成了含有完整、准确、统一描述信息的主题域,并得到了一系列的历史数据和导出数据。 在该过程中,还有一个如何高效率地对操作型环境中的数据进行扫描以便追加的问题。一般采取以下几种方法:对操作型数据加时标、创建delta 文件、使用系统日志或审计日志、修改程序代码、使用前映象或后映象文件。 在数据仓库的建立过程中,大约有80%的工作量用于这一步骤。 5.建立第一个主题域,在反馈和循环中逐渐建立其它主题域 最初,只使用一部分数据来生成第一个主题域。原因在于,只建立一个主题域使得设计人员能够轻易且迅速地对已做工作进行调整,而且能够尽早地实施数据仓库的应用。这样,既可以在经济上最快地得到回报,又能够通过最终用户的使用发现问题并提出新的需求,然后反馈给设计人员。设计人员继续对系统改进、扩展,将更多的主题域加入到数据仓库中。经过这样一个不断的反馈过程,数据仓库就逐渐建立起来了。 6.数据仓库的实施 数据仓库建立之后,一方面,各个级别的最终用户,从企业的决策人员、中级管理人员到普通的职员,都使用数据仓库进行决策或者分析,来解决一些诸如顾客需要什么,企业应提供何种服务,近期的生产情况如何的问题。同时,用户将使用情况和新的需求意见反馈给开发人员。另一方面,开发人员进一步完善系统,并管理数据仓库的一些日常活动:刷新数据仓库的当前详细数据,将过时的数据转化成历史数据,清除不再使用的数据,并调整粒度级别。其中的一个问题是:如何利用接口定期从操作型环境向数据仓库追加数据。可以按照第四步所提到的几种方法直接从OLTP数据库追加数据,也可以通过ODS来实现。 另一个问题是:数据仓库的数据刷新频率。Imnom 给出了一条规则:刷新频率应大于24小时,否则数据仓库就变成了操作型环境。 六、 其它 1.元数据 元数据的设计和管理在数据仓库中具有很重要的地位。元数据是关于数据的数据,类似传统数据库中的数据字典。利用元数据能最有效地管理数据仓库。元数据的定义包括:面向程序员的数据结构,面向DSS分析员的数据结构,数据仓库的数据来源,从操作型环境到数据仓库的映象,数据模型,数据模型与数据仓库的联系等。 2.外部数据和非结构化数据 通常,企业还需要来自企业外部的数据和非结构化数据。企业既可以通过重新格式化将它们集成到数据仓库中,并设计相应的元数据;也可以不存放到数据仓库中,只在元数据中增加外部数据和非结构化数据的存储信息和结构信息。 3.数据仓库体系和数据仓库/ODS体系 企业的某些应用是处于操作型和分析型之间的。因此,可以考虑是使用数据仓库体系,还是数据仓库/ODS体系。 4.完整的体系化环境 随着数据仓库数据量的膨胀,以及更多的部门和个人来使用数据仓库,有必要建立完整的体系化环境。通过进一步的抽取,可以在数据仓库的基础上建立部门级和个人级的局部数据仓库。 七、 结论 (1)数据仓库创建的方法、模型和步骤与传统的操作型环境相比是有区别的。数据仓库的设计由数据驱动,采取与系统生命周期法相反的CLDS法。 (2)数据模型是在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论