数据仓库是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。其特点是面向主题的;集成的、一致的;随时间演化的,并且具有稳定性(本质上,数据绝不会从数据仓库中删除)。
数据库与数据仓库的区别
1.逻辑层面/概念层面
数据库和数据仓库其实是一样的或者及其相似的,都是通过某个数据库软件,基于某种数据模型来组织、管理数据。但是,数据库通常更关注业务交易处理(OLTP),而数据仓库更关注数据分析层面(OLAP),由此产生的数据库模型上也会有很大的差异。
数据库通常追求交易的速度,交易完整性,数据的一致性等等,在数据库模型上主要遵从范式模型(1NF,2NF,3NF等等),从而尽可能减少数据冗余,保证引用完整性。
数据仓库则强调数据分析的效率,复杂查询的速度,数据之间的相关性分析,所以在数据库模型上,数据仓库喜欢使用多维模型,从而提高数据分析的效率。
2.产品实现层面
数据库和数据仓库软件是有些不同的,数据库通常使用行式存储,而数据仓库倾向使用列式存储( 行式存储中,主键是rowid,它关联到索引数据;列式存储中,主键是数据本身,关联回rowid)
数据仓库的基本概念
1.事实表
包含数字数据(事实),并且这些数字信息可以汇总,以提供有关单位作为历史的数据,每个事实数据表包含一个由多个部分组成的索引,该索引包含作为外键的相关性维度表的主键,而维度表包含事实记录的特性。
事实数据表不应该包含描述性的信息,也不应该包含除数字度量字段及使事实与维度表中对应项的相关索引字段之外的任何数据。
原子事实表(最细粒度数据)、聚集事实表(原子事实表上的汇总数据)、合并事实表(将位于不同事实表中处于相同粒度的事实进行组合建模而成的一种事实表;多个事实表相同维度的集合,但事实只有一个最为感兴趣的事实)
2.维度表
维度表可以看作是用户来分析数据的窗口,维度表中包含事实数据表中事实记录的特性,有些特性提供描述性信息,有些特性指定如何汇总事实数据表数据,以便为分析者提供有用的信息,维度表包含帮助汇总数据的特性的层次结构。(简单来说:观察数据的特定角度,考虑问题时的一类属性,属性集合构成一个维度。)
退化维:需要保存到事实表中的事务编号,但不需要对应的维度表
3.桥接表
表达层级关系。在数据仓库的建模时,会遇到具有层次结构的维度表,桥接表作为建立在维度表和事实表中间的一个具有较多冗余信息的表,其中的记录包含层级结构中节点到其下面每个节点的路径。
表结构如下所示:
父关键字
子关键字
父层数
层名
底端标识
顶端标识
4.度量
事实记录,是绝对的定量值。度量值是一组值,这些值基于多维数据集的事实数据表中的一列,而且通常为数字。此外,度量值是所分析的多维数据集的中心值。即,度量值是最终用户浏览多维数据集时重点查看的数字数据(如销售、毛利、成本)。
注意区分:"指标"是基于两个或更多度量计算得出的相对值;"指示器"是基于度量或指标,并依据某个基准值得到的定性结果。
5.数据集市
数据集市是为了满足企业特定部门的分析需求而专门建立的数据的集合。
6.代理键
指维度表中使用顺序(序列)分配的整数值作为主键;是维度表和事实表的连接。数据仓库中的主键不应该是智能的。也就是说,要避免通过主键的值就可以了解一些业务信息。当然,退化维度作为事实表的复合主键之一时例外。(使用代理关键字能够使数据仓库环境对操作型环境的变化进行缓冲,一致性提升;代理关键字很小,是整型的,可以减小事实表中记录的长度;使用代理关键字可以建立一些不存在的维度记录;处理缓慢变化维)
网友评论