0828数据仓库概念学习

来源:互联网 发布:自学唱歌的软件 编辑:程序博客网 时间:2024/06/11 05:01

数据仓库概念创始人W.H.Inmon在《建立数据仓库》一书中对数据仓库的定义是:数据仓库就是面向主题的、集成的、相对稳定的、随时间不断变化(不同时间)的数据集合,用以支持经营管理中的决策制定过程、数据仓库中的数据面向主题,与传统数据库面向应用相对应。

数据库与数据仓库:

简而言之,数据库是面向事务的设计,数据仓库是面向主题设计的。 
数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。 
数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计。 
数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。维是看问题的角度,比如时间,部门,维表放的就是这些东西的定义,事实表里放着要查询的数据,同时有维的ID。 

数据仓库的基本架构

数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)。

其实数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数据,数据来源于外部,

并且开放给外部应用,这也是为什么叫“仓库”,而不叫“工厂”的原因。

因此数据仓库的基本架构主要包含的是数据流入流出的过程,可以分为三层——源数据、数据仓库、数据应用:

 

从图中可以看出数据仓库的数据来源于不同的源数据,并提供多样的数据应用,数据自上而下流入数据仓库后向上层开放应用,

而数据仓库只是中间集成化数据管理的一个平台。

数据仓库的数据来源
数据仓库从各数据源获取数据及在数据仓库内的数据转换和流动都可以认为是ETL(抽取Extra, 转化Transfer, 装载Load)的过程,

ETL是数据仓库的流水线,也可以认为是数据仓库的血液,它维系着数据仓库中数据的新陈代谢,

而数据仓库日常的管理和维护工作的大部分精力就是保持ETL的正常和稳定。

 元数据
  元数据的概念
  按照传统的定义,元数据(Metadata)是关于数据的数据。在数据仓库系统中,元数据可以帮助数据仓库管理员和数据仓库的开发人员非常方便地找到他们所关心的数据;元数据是描述数据仓库内数据的结构和建立方法的数据,可将其按用途的不同分为两类:技术元数据(Technical Metadata)和业务元数据(Business Metadata)。
  技术元数据是存储关于数据仓库系统技术细节的数据,是用于开发和管理数据仓库使用的数据,它主要包括以下信息:
  数据仓库结构的描述,包括仓库模式、视图、维、层次结构和导出数据的定义,以及数据集市的位置和内容;
  业务系统、数据仓库和数据集市的体系结构和模式;
  汇总用的算法,包括度量和维定义算法,数据粒度、主题领域、聚集、汇总、预定义的查询与报告;
  由操作环境到数据仓库环境的映射,包括源数据和它们的内容、数据分割、数据提取、清理、转换规则和数据刷新规则、安全(用户授权和存取控制)。
  业务元数据从业务角度描述了数据仓库中的数据,它提供了介于使用者和实际系统之间的语义层,使得不懂计算机技术的业务人员也能够“读懂”数据仓库中的数据。业务元数据主要包括以下信息:使用者的业务术语所表达的数据模型、对象名和属性名;访问数据的原则和数据的来源;系统所提供的分析方法以及公式和报表的信息;具体包括以下信息:
  企业概念模型:这是业务元数据所应提供的重要的信息,它表示企业数据模型的高层信息、整个企业的业务概念和相互关系。以这个企业模型为基础,不懂数据库技术和SQL语句的业务人员对数据仓库中的数据也能做到心中有数。
  多维数据模型:这是企业概念模型的重要组成部分,它告诉业务分析人员在数据集市当中有哪些维、维的类别、数据立方体以及数据集市中的聚合规则。这里的数据立方体表示某主题领域业务事实表和维表的多维组织形式。
  业务概念模型和物理数据之间的依赖:以上提到的业务元数据只是表示出了数据的业务视图,这些业务视图与实际的数据仓库或数据库、多维数据库中的表、字段、维、层次等之间的对应关系也应该在元数据知识库中有所体现。


 图2 所示的以数据仓库为基础的决策支持环境,要求数据仓库能够满足所有最终用户的
需求。然而,最终用户的需求是不断变化的,而且各种类型的用户对信息的需求也不一样,
这就要求数据仓库存储的数据具有充分的灵活性,能够适应各类用户的查询和分析。另一方
面,最终用户对信息的需求必须易于访问,能够在较高的性能上获得结果。但是,灵活性和
性能对数据仓库而言,是一对矛盾体。为了适应灵活性的要求,数据仓库需要存储各种历史
数据,以规范化的模式存储(一般是第3范式)。于是,对于特定的用户,他/她所需要的信
息就需要在许多张很大的表上连接后得到结果,这样就无法满足用户对快速访问的性能需
求。为了解决灵活性和性能之间的矛盾,数据仓库体系结构中增加了数据集市,数据集市存
储为特定用户需求而预先计算好的数据,从而满足用户对性能的需求。带有数据集市的体系
结构如图3 所示。

 数据集市:是一个小型的部门或工作组级别的数据仓库。有两种类型的数据集市——独
立型和从属型。独立型数据集市直接从操作型环境获取数据。从属型数据集市从企业级数据
仓库获取数据。从长远的角度看,从属型数据集市在体系结构上比独立型数据集市更稳定。
      独立型数据集市的存在会给人造成一种错觉,似乎可以先独立地构建数据集市,当数据集
市达到一定的规模可以直接转换为数据仓库,有些销售人员会推销这种错误的观点,因为建立企
业级数据仓库的销售周期长。多个独立的数据集市的累积是不能形成一个企业级的数据仓库的,
这是由数据仓库和数据集市本身的特点决定的。如果脱离集中式的数据仓库,独立的建立多个数
据集市,企业只会又增加了一些信息孤岛,仍然不能以整个企业的视图分析数据,数据集市为各
个部门或工作组所用,各个集市之间又会存在不一致性。当然,独立型数据集市是一种既成事实,
为满足特定用户的需求而建立的一种分析型环境,但是,从长远的观点看,是一种权宜之计,必
然要为一个企业级的数据仓库所取代。

3.数据仓库和数据集市之间的区别
      数据仓库和数据集市之间的区别可以直观地用下图表示


   从图中可以看出,数据仓库中数据结构采用的规范化模式(关系数据库设计理论),数
据集市的数据结构采用的星型模式(多维数据库设计理论)。数据仓库中数据的粒度比数据
集市的细。




数据仓库之星型结构和雪花型结构

星型模型是数据集市维度建模中推荐的建模方法。星型模型是以事实表为中心,所有的维度表直接连接在事实表上,

像星星一样。星型模型的特点是数据组织直观,执行效率高。因为在数据集市的建设过程中,数据经过了预处理,

比如按照维度进行了汇总,排序等等,数据量减少,执行的效率就比较高。


雪花模型也是维度建模中的一种选择。雪花模型的维度表可以拥有其他维度表的,

虽然这种模型相比星型模型更规范一些,但是由于这种模型不太容易理解,维护成本比较高,

而且性能方面需要关联多层维表,性能也比星型模型要低。所以一般不是很常用。

原创粉丝点击