e-works数字化企业网  »  文章频道  »  管理信息化  »  BI

数据仓库中多维分析的数据展现

2009/11/10    来源:万方数据    作者:孙泳  刘少辉  史忠植      
关键字:数据仓库  联机分析处理  多维分析  数据展现  树型结构  
文章介绍了一种数据仓库多维分析中以二维表格反映多维特征,提供了数据立方体的可视化表示的方法,并采用动态填充技术,提高了大数据量时数据查询、展现的速度,使用户能直观、快速地得到数据。

1 引 言

    随着信息化时代的到来,企业纷纷建立起了自己的数据库应用系统,由计算机管理代替手工操作,以此来收集、存贮、管理业务操作数据,改善办公环境,提高操作人员的工作效率。这类系统主要是传统的数据库应用系统,是面向业务操作设计的。但在面对越来越激烈的市场竞争时,企业必须把业务经营同市场需求联系起来,在此基础上作出科学、正确的决策,以求生存和发展。越来越多的企业认识到,只有靠充分利用、发掘其现有数据,才能实现更大的效益。面向业务操作的系统越来越难以满足这种需求,因此面向分析操作的数据仓库系统应运而生,在此基础上为了提高面向分析的操作性能发展起了在线联机分析处理(OLAP)技术,它目标是提供给用户从多种角度快速、稳定、交互地存取数据,以便深入观察数据,为决策提供支持。OLAP以多维的方式来组织和显示数据,它的一个重要特点是多维数据分析,多维分析是指对以多维形式组织起来的数据采取切片、切块、旋转、上卷、下钻等各种分析动作,以求剖析数据,使最终用户能从多个角度、多侧面地观察数据库中的数据,从而深入地了解包含在数据中的信息、内涵。

    该文提出了一种多维数据的二维表格形式展现的设计,并给出了实现的算法,通过此工具可以支持多维分析的各种分析动作,将数据直观地展现在最终用户面前。

2 数据仓库与联机分析处理技术

    2.1 数据仓库

    著名的数据仓库专家W.H.Inmon在其著作《Building the Data Warehouse》一书中给予如下描述:数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatie)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。整个数据仓库系统是一个包含数据源,数据的存储与管理,OLAP服务器,前端工具四个层次的体系结构,具体如图1所示。


图1 数据仓库系统体系结构


    2.2 联机分析处理(OLAP)

    关系数据库之父E.F.Codd提出了多维数据库和多维分析的概念,即OLAP。维就是人们观察数据的角度,维存在细节程度不同的多个描述方面,维的多个描述方面称为维的层次。例如,时间维有日、月、季、年等层次来描述。多维数据一般都以数据立方体的结构存放。它用三维或更多的维数来描述一个对象,每个维彼此垂直。数据的测量值发生在维的交叉点上,数据空间的各个部分都有相同的维属性。如图2所示。


图2 数据立方体


    2.3 多维数据分析

    多维数据分析是OLAP的一个重要属性,是指对以多维形式组织起来的数据采取切片、切块、旋转、上卷、下钻等各种分析动作,以求剖析数据,使最终用户能从多个角度、多侧面地观察数据库中的数据。

    (1)切片(Slice)与切块(Dice):切片是指在多维数组的某一维上选定一维成员的动作称为切片,切块在多维数组的某一维上选定某一区间的维成员的动作称为切块,即限制多维数组的某一维的取值区间。显然,当这一区间只取一个维成员时,即得到一个切片。

    (2)旋转:是改变一个报告或页面显示的维方向。例如,交换行和列,或是把行维移到列维中去,或是把页面显示中的一个维和页面外的维进行交换。

    (3)上卷(Roll Up)与下钻(Drill Down):上卷是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而下钻则相反,它从汇总数据深入到细节数据进行观察,或增加新维。这两者都是改变维的层次和变换分析的粒度的操作。

3 二维形式表格工具的设计思想

    数据仓库是按主题组织数据的,每个主题可以看作是一个数据立方体,一般每个数据立方体都有好几个维,每个维内又有一些层次。复杂的数据立方体在展现上缺乏直观性,尤其当维度超出三维后,数据的表示就比较困难,因此这里采用一种二维表格的形式来表示整个数据立方体,并在此之上进行多维分析操作。数据立方体中的维都被划分到行维或列维两种维度中去,在二维表的固定行和固定列中用树型结构体现维的层次结构和层次关系,在行维和列维交织成的二维表中显示相应的度量数据,实现以二维表格反映多维特征,提供数据立方体的可视化表示。

    该设计的关键在于要在二维表中的固定行和固定列中用树型结构体现维的层次结构和层次关系。实现的方法是在固定行和固定列的每个单元格对象中加入能反映层次关系的属性,并在单元格的一端留出适当的空白,在空白中用加减号显示有没有下一级层次和下一级层次有没有展开,并画出反映层次的树枝。在单元格中添加方法,使程序能响应用户鼠标的点击,完成下一级层次单元格的收放,这样的单元格称为树型单元格。在此类单元格支持的基础上,将固定行和固定列中的单元格统一管理,形成树型固定行和树型固定列对象,提供获取单元格类型、插入或删除子树、设置扩展一层单元格、设置收起下面所有层单元格等方法。通过树型单元格对象与树型固定行和固定列对象的配合实现用户的上卷和下钻操作。如图3所示。


图3 树型列单元格与树型固定列对象


    由于用户的切片、切块和旋转操作涉及大量数据的检索和计算,因此客户端将用户的选择变成相应的查询请求提交给后台的OLAP服务器进行,然后通过记录集或多维数组的形式接收服务器返回的结果,然后再显示到二维表格中。客户端向后台的OLAP服务器发出的查询请求中包括用户选择了哪些维中的哪些层次,选择了什么值,以什么样的顺序进行分组。本质上就是一个具有如下形式的多维查询:

    Select 某变量 from 某数据立方
    Where 切片层次 1=Value1 and … 切片层次 n=ValueN
    Group By 层次 1,…,层次n

责任编辑:殷爽
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐