数据仓库相关概念介绍

1. 数据仓库的概念:

数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,它用于支持企业或组织的决策分析处理。

面向主题:比如说产品良率也可以看成是一个主题,这样就可以把良率相关的数据整合到一起。主题可以说就是将数据归类的标准,每个主题对应一个宏观的分析领域,关于主题也是建立数据仓库时必须要考虑的一个问题。

数据集成:数据仓库的数据来源于各个业务系统,我们把需要的数据抽取出来,然后经过加工和集成,经过集成后的数据才能进入到数据仓库。所以数据的集成也是建立数据仓库的一个关键步骤。

相对稳定:数据仓库的稳定性是指它反映的是历史数据 ,而不是日常事务处理所产生的数据,所以经过加工和集成后的数据进到数据仓库是很少修改的,或者是不修改的。

反映历史变化:因为数据仓库加工集成的是历史数据,所以随着时间的推移,数据仓库里的数据会反映某段时间范围内的一个变化情况。通过这些信息,可以对企业的未来发展做一个分析和预测。

 

总结:数据仓库是为了便于多维分析和多角度展现而将数据按特定的模式进行存储所建立起来的关系型数据库。

 

2. 数据集市:

数据集市(Data Mart) ,也叫数据市场,数据集市就是满足特定的部门或者用户的需求,按照多维的方式进行存储,包括定义维度、需要计算的指标、维度的层次等,生成面向决策分析需求的数据立方体。

从数据范围上来说,数据是从数据仓库中抽取出来的。数据中心的重点就在于它迎合了专业用户群体的特殊需求。

那么数据集市就是企业级数据仓库的一个子集,他主要面向部门级业务,并且只面向某个特定的主题。数据集市存储为特定用户预先计算好的数据,从而满足用户对性能的需求。数据集市可以在一定程度上缓解访问数据仓库的瓶颈。

数据集市区别于数据仓库:在数据结构上,数据仓库是面向主题的、集成的数据的集合。而数据集市通常被定义为星型结构或者雪花型数据结构,数据集市一般是由一张事实表和几张维表组成的

 

3. 维度和粒度:

首先维度就比较简单,就是我们分析数据的角度。粒度就是在同一维度下,数据的粗细程度。

比如说我们一个报表是按月汇总好的,那就没办法按天看数据。因为数据粒度不够细。当然,粒度的也不是越细越好,要综合分析。毕竟粒度越细,事实表的数据量也会越大。

 

4. 维度表/事实表:

一般情况下表都是由两部分组成:维度和事实。

① 事实表就是你要关注的内容;
② 维度表就是你观察该事务的角度,是从哪个角度去观察这个内容的。

维度表:维度表可以看成是用户用来分析一个事实的窗口,它里面的数据应该是对事实的各个方面描述,比如时间维度表,它里面的数据就是一些日,周,月,季,年,日期等数据,维度表只能是事实表的一个分析角度。

事实表:事实表其实质就是通过各种维度和一些指标值得组合来确定一个事实的,比如通过时间维度,地域组织维度,指标值可以去确定在某时某地的一些指标值怎么样的事实。事实表的每一条数据都是几条维度表的数据和指标值交汇而得到的。

事实表里会含有各种维度的信息。所以,一个事实数据表都要和一个或多个维度表相关联

 

5. 星型模型和雪花模型:

星型模型

首先说一下星型模型,当所有维表都直接连接到“ 事实表”上时,整个图解就像星星一样,故将该模型称为星型模型,星型架构是一种非正规化的结构,多维数据集的每一个维度都直接与事实表相连接,就比如说一个地域维度,国家/省/市,就会地区信息就会存储两条数据。所以数据有一定的冗余。但是这样也有好处,把所有这些信息都存在一起,就不需要再去=做外部其他的连接。所以它的查询效率就会比较高。

雪花模型

当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的 " 层次 " 区域,这些被分解的表都连接到主维度表而不是事实表。将地域维表又分解为国家,省份,城市等维表。有些统计就需要通过表的联接才能产生,所以效率不一定有星型模型高。所以它的优点是 : 通过最大限度地减少数据存储量以及联合较小的维表来改善查询性能。正规化也是一种比较复杂的过程,相应的数据库结构设计、数据的 ETL、以及后期的维护都要复杂一些。因此在冗余可以接受的前提下,实际运用中星型模型使用更多,也更有效率。

两者对比:星型模型因为数据的冗余所以很多统计查询不需要做外部的连接,因此一般情况下效率比雪花型模型要高。在冗余可以接受的前提下,实际运用中星型模型使用更多,也更有效率

对于ETL设计两者之间的区别:

雪花模型加载数据集市,因此ETL操作在设计上更加复杂,而且由于附属模型的限制,不能并行化。
星形模型加载维度表,不需要再维度之间添加附属模型,因此ETL就相对简单,而且可以实现高度的并行化。

 

posted @ 2020-04-16 16:12  佐小白  阅读(846)  评论(0)    收藏  举报