首页 > 技术文章 > 数据仓库设计决策之数据粒度

terrence 2015-06-21 14:52 原文

前言

     粒度是指数据仓库的数据单位中保存数据的细化或综合程度的级别。细化程度越高,粒度级就越小;相反,细化程度越低,粒度级就越大。粒度问题是设计数据仓库的一个最重要方面。在数据仓库环境中粒度之所以是主要的设计问题,是因为它深深地影响存放在数据仓库中的数据量的大小,同时影响数据仓库所能回答的查询类型。在数据仓库中的数据量大小与查询的详细程度之间要作出权衡。

 

粒度级别

      如果数据仓库的空间很有限的话(数据量总是数据仓库中的首要问题),用高粒度级表示数据将比用低粒度级表示数据的效率要高得多。高粒度级不仅只需要少得多的字节存放数据,而且只需要较少的索引项。然而数据量大小和原始空间问题不是仅有的应考虑的问题。为了访问大量数据,其处理能力的大小同样也是应考虑的一个因素。所以,在数据仓库中数据压缩非常有用。当数据被压缩后就会大大节省所用的D A S D存储空间,节省所需的索引项,以及节省处理数据的处理器资源。

      但是,当提高粒度级时,数据压缩就会出现另一个问题,当提高数据粒度级时,数据所能回答查询的能力就会随之降低。换句话说,在一个很低的粒度级上你实际可以回答任何问题,但在高粒度级上,数据所能处理的问题的数量是有限的。

 

image

 

在管理数据的粒度问题中的权衡如下图所示。在设计和构造数据仓库之初就必须仔细靠虑这种权衡。

image

 

粒度的双重级别

      很多时候,十分需要提高存储与访问数据的效率,以及非常详细地分析数据的能力。(换句话说,机构想有自己的蛋糕,并且吃了它! )当一个企业或组织的数据仓库中拥有大量数据时,在数据仓库的细节部分考虑双重(或多重)粒度级是很有意义的。事实上,需要多个粒度级而不是一个粒度级的需求,是因为粒度级设计采用双重级别应该是几乎每个机构默认的选择。数据仓库包括两种类型的数据:轻度综合数据和“真实档案”细节数据。

       在数据的真实档案层上,存储的所有的细节来自于操作型环境。在这一层上确实有大量的数据。由于数据量太大,因此有必要将数据存放在如磁带这样的介质上通过在数据仓库的细节级上创建两种粒度级, D S S设计者可一举两得。大部分D S S处理是针对被压缩的、存取效率高的轻度综合级数据进行的。如果什么时候需要分析更低的细节级( 5 %时间或更少的可能),可以到数据的真实档案层。在粒度真实档案层上,访问数据将是昂贵的、麻烦的和复杂的事情,但如果必须进入这一细节级也只得如此。随着时间的迁移,如果需要开发某种搜索数据的真实档案级的模式,设计者可能要在轻
度综合级上创建某些新数据域。鉴于费用、效率、访问便利和能够回答任何可以回答的查询的能力,数据双重粒度级是大多数机构建造数据仓库细节级的最好选择。只有当一个机构的数据仓库环境中只有相对较少的数据时,才应尝试采用数据粒度的单一级别。

image

推荐阅读