华远智德(北京)科技有限公司 Jupiter Consulting (Beijing) Ltd.
  
技术讲堂


您的位置: 首页 技术讲堂 第三课 维度的内部结构
        第一讲 非层次结构(1)

数据分析讲堂

第三课 维度的内部结构

第一讲 非层次结构(1)

     对于层次的强有力支持是联机分析处理(OLAP)的第二个逻辑需求,同时也是OLAP与传统的SQL数据库及电子表格的首要区别。定义层次的两种主要方法,如图3.1.1所示,通常被称为水平的层次和非水平的层次。你可以把它们理解为观察世界的两种视角。就象如果你戴着蓝色的眼镜,那么世界看起来就是蓝色的;如果你戴着非水平层次的眼镜,那么世界看起来就是非水平层次的。这些方法之间的差别是不是很显著?如果存在差别的话,是不是其中的一种方法要比另一种方法更好和更加通用?还是这两种方法是彼此互补的,每一种都有其更加适合的情况呢?是否可能将这两种方法组合成一种更加通用的层次解决方案呢?

     当你阅读完本课内容后,将知道为什么OLAP工具需要同时支持水平和非水平形式的层次和语言才能提供完整的层次功能。也就是说,如果一个工具仅仅支持水平或者非水平层次,那么就无法有效地对某些关系进行建模和计算。在你了解OLAP产品应该具有的功能后,你就可以更加方便地使用你目前的OLAP产品,因为你已经了解它的局限。当你需要寻求一个OLAP工具的时候,你也知道该问些什么问题了。

     维度、变量或度量,以及属性或特征都是同一个结构的不同方面,我们将这个结构称做类型(type)。因此层次也是类型而不是维度的一个特征。当然,如果你觉得使用维度层次代替类型层次进行理解和思考更加熟悉和舒服的话,完全可以将类型用维度来替代。

按此在新窗口浏览图片

排序、度量和定义的方法是类型(维度)的三个基本的非层次方面的特征。

(1)   方法的定义

定义维度的成员、元素或者实例的两种基本方法是显式定义和公式定义。大多数的业务维度,如产品、客户、雇员、商店、渠道、帐号、场景和供应商都是显式定义的。也就是说,维度的实例,例如产品或者商店的名称,都是从一个被简单认为合法的实例集合或者列表中生成的。这种方法可以通过读取外部表中某个字段的不同值来完成(当根据企业的数据仓库中的维度来定义OLAP的立方体的时候,往往采用的就是这种方法),或者使用手工录入的方法输入实例值。

通过显式方式定义的维度实例的正确性,只能采用将维度的实例和一个权威列表进行匹配的方式来进行验证。如果缺少这种权威列表的话(不管这些列表是从外部还是内部得到),任何实例的验证都是无法进行的。

有些业务维度,例如时间,应该或者可能通过公式的形式进行定义。你可以使用一个日期数据类型,通过设置一个时间范围,例如“今年每周”来形成合适的星期实例,从而不再需要任何的外部表和实例。当需要对公式生成的实例进行验证的时候,你需要使用一定的实例生成规则,而不是一个权威实例的列表。

(2)   基数

术语“基数”表示了数字计数的大小,虽然层次和基数没有函数关系。维度的基数表示的是在一个维度中实例的个数。有些业务维度,比如场景或者渠道,可能只会有3到5个实例;而有些维度,如产品或交易。可能会有几百万甚至上亿的实例。虽然一个维度的基数不会对它的层次有直接的影响,但是它确实会成为一个物理设计的问题。很多访问OLAP数据的应用程序都需要知道每个数据维度的基数,这个要求可以通过调用如下或者其他形式的函数来完成。

Count (dimension)

  

        首页   |  公司介绍   |  服务理念   |  经营管理   |  企业管理 【TOP】      
版权所有 © 2015 jupiterst.com