分析数据仓库及其在SQL中的构建分析
数据仓库是面向主题的、集成的、具有时间特征的、稳定的数据集合,用以支持经营管理中的决策制定过程。数据仓库提供用户用于决策支持的当前和历史数据。这些数据在传统的操作型数据库中很难或不能得到。
面向主题是指数据仓库中的数据是按照一定的主题域进行组织。主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。集成的是指数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的。必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。数据仓库的组成包括以下几个部分:数据仓库数据库、数据抽取工具、元数据、访问工具、数据集市(DataMarts)、数据仓库管理及信息发布系统。其中数据仓库数据库是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。
二、数据仓库的数据模型
传统的OLTP系统是按照应用来建立模型,即OLTP系统是面向应用的。丽数据仓库是蘧向主题的,一般按照主题来建模。主题是一个在较高层次将数据进行归类的标准.每个主题基本对应一个宏观的分析领域。满足该领域决策的需要。
l、两种主流模型分析
目前两类主流的数据仓库模型分别是由Inmon提出的企业级数据仓库模型和由Kimball提出的多维模型。Inmon提出的企业级数据仓库模型采用第三范式(3Nn,先建立企业级数据仓库,再在其上开发具体的应用。它的优点是信息全面、系统灵活,数据存储冗余度低、反映的业务主题能力强以及具有较好的业务扩展性等。但这种模型设计的系统建设过程长,周期长,难度大,风险大,容易失败。Kimball提出的多维模型降低了范式化。以分析主题为基本框架来组织数据。以维模型开发分析主题.这样能够快速实施.迅速获得投资回报。在取得实际效果的基础上,再逐渐增加应用主题,循序渐进,积累经验,逐步建成企业级数据仓库。这种模型的优点是查询速度快,做报表也快;缺点是由于存在大量的预处理,其建模过程相对来说就比较慢。
2、多维建模技术
多维数据建模以直观的方式组织数据。并支持高性能的数据访问。每一个多维数据模型由多个多维数据模式表示。每一个多维数据模式都是由一个事实表和一组维表组成的。常见的有星形模式和雪花模式。星形模式:位于星形中心的实体是指标实体。是用户最关心的基本实体和查询活动的中心,为数据仓库的查询活动提供定量数据。每个指标实体代表一系列相关事实。成一项指定的功能。位于星形图星角上的实体是维度实体。其作用是限制用户的查询结果,将数据过滤从而缩小访问范围。每个维表有自己的属性。维表和事实表通过关键字相关联。
星形模式优点:提高查询的效率,比较直观,通过分析星形模式,很容易组合出各种查询。
雪花模式:雪花模式是对星形模式维表的进一步层次化,将某些维表扩展成事实表。这样既可以应付不冠级别用户的查询.又可以将源数据通过层次闻的联系向上综合.最大限度地减少数据存储量。因而提高了查询功能。雪花模式的维度表是基于范式理论的,因此是界于第三范式和星形模式之间的一种设计模式。通常是部分数据组织采用第三范式的规范结构.部分数据组织采用星形模式的事实表和维表结构。雪花模式的优点:在一定程度上减少了存储空间;规范化的结构更容易更新和维护。
三、建立数据仓库的步骤
l、收集和分析业务需求
2、建立数据模型和数据仓库的物理设计
3、定义数据源
4、选择数据仓库技术和平台
5、从操作型数据库中抽取、净化、和转换数据到数据仓库
6、选择访问和报表工具
7、选择数据库连接软件
8、选择数据分析和数据展示软件
9、更薪数据仓库 [page] 建模原则:要成功地建立一个数据仓库,必须有一个合理的数据模型。数据仓库建模在业务需求分析之后开始,是数据仓库构造的正式开始。在创建数据仓库的数据模型时应考虑:原来的数据源能够提供哪些有用的数据.也就是经过数据的筛选之后能够为数据仓库所用;公司业务层需要什么样的分析结果,这要和公司的高级决策层紧密配合:满足不同层次、用户的需求,兼顾查询效率与数据粒度的需求;支持用户需求变化;避免业务运营系统性能影响;提供可扩展性。数据模型的可扩展性决定了数据仓库对新的需求的适应能力。建模既要考虑眼前的信息需求.也要考虑未来的需求。
四、SQL中数据仓库的构建与分析
在MS SQL SERVER中构建数据仓库时.原始数据库中的数据可能和要建立的数据仓库的需求有很大的出入,原始数据库中存储的是零碎的事务数据.而数据仓库中要的是经过转化和提炼过的统计数据。如原始数据库中存储电信客户每天的所有呼入和呼出记录.而数据仓库并不关心每条记录的数据.而是希望在最短的时间内.以最快的速度统计出这个月的所有的总数量。这时要将对这个查询有意义的数据转化到数据仓库,这就是数据清洗,即EIL。
1、表设计 对于数据仓库(它的数据直接被最终用户消费)的物理设计通常有两种方法.第一种方式是保留源数据的三种通常的表格设计。这个设计对操作性的报表很好,在第三方的源码系统的情况下。这种数据库能够满足应用报表。 第二种方式是空间的设计.这通常作为一个星型或者雪花型的方式提及。这种方法的主要好处是简单而且性能良好。这个模型的简单使得它变得更加容易,并且终端用户掌握和浏览它更加快速。空间数据在相关的设计的性能上能够在实际的测试中被观察到。 接下来的一个设计问题是实现星型还是雪花型方式的设计。在SQL Server环境中.星型跟雪花型的设计比起来,性能很少是一个大问题。甚至在更大一点的维度。例如客户的维度。来自雪花型设计的结果的更窄的表通常为额外的连接进行了补偿。如我们构建FACT为事实表,TIME,ADDRESS,DETAIL分别为时间维。 地址维,详细地址维。DETAIL又是ADDRESS的子维.他们又构成雪花模型。在数据仓库中.需要维护在数据集成度和性能需要中的很好的平衡。虽然数据集成度极端重要.对数据仓库的更新通常通过周期性(通常为每日或每小时)的批量ETL过程得到很好的控制。星型或雪花型模型严格上意味着那些低级别的维度表包含一个主键。这个主键是一个代理键。源系统没有它们的代理键的信息。因此它必须在ETL中通过寻找业务键来获得。在实际的表中,各项限制也是同样的道理。在维度表中定义的限制更加合理。像PK/FK定义了集成度一样,ETL进程的工作室保证所有被载入数据仓库的数据都是干净的。
(编辑:ASP站长网) |