[关闭]
@Pigmon 2017-01-23T22:48:08.000000Z 字数 5045 阅读 80

袁胜-2016M8009073008-商业智能技术报告

——一种可交互数据立方体的设计与实现

作业


摘要

本文探讨一种使用3D渲染技术实现可交互的数据立方体的多维数据可视化的方法。首先介绍了目前数据立方体可视化领域的几个有代表性的方法,以及分析其优势和不足。之后给出了本文涉及的可视化方法的具体设计内容。在本文的最后,给出了实现该设计的演示程序,附录A是其使用的简要说明,附录B提供了该演示程序的下载链接。
关键字:数据立方体,多维数据可视化,联机分析处理(OLAP)

1. 数据立方体可视化技术的现状

1.1 数据透视表

数据透视表,又称为交叉表,多维电子表格等。它是一种可以由用户指定感兴趣的维度及其特定的粒度级别来形成行和列的电子表格。它的优势是因为其形式来源于传统的电子表格,容易被大部分人接受;另外,作为电子表格,它可以很方便的沿着各个轴(维度)的方向进行聚合计算,如求和等操作
透视表是目前数据立方体可视化的最普遍的方式,部分原因可能是大部分数据分析工作演化自传统的数据统计工作。透视表的形式不仅以人们最熟悉的电子表格方式进行数据立方体的展示,其用来实现用户的互动操作,如通过拖拽来指定感兴趣的行和列等也比较直观和方便。主流的相关软件,如微软的Office Excel和SSAS中实现了透视表的类似操作。
实际的应用中,大多工具软件的数据立方可视化是以透视表配合其他传统统计图表的形式来完成的。

1.2 树状饼图

Xusheng Wang 等人提出了一种用树形结构配合饼图来展现数据立方体的方式。树形结构的每个结点是一个饼图,代表用不同维度划分当前层数据的结果,如图1-2所示。
树状饼图中,根结点代表当前数据立方体中的全部数据;第一层子结点分别代表用3个维度划分全部数据后的结果;而第n层子结点代表上一层经过划分的数据,再次经过某个维度进行划分的结果。即子树的每个层级代表一个维度划分,而子树之间的区别是用来划分的维度出现的层级不同。
树状饼图的局限在于它只显示了统计信息,而没有细化到事实的级别,还需要其他可视化组件来结合成完整的OLAP可视化工具。
cube_tree.PNG-525.4kB
图1-2 树状饼图

1.3 Tree Map

Tree Map 并不是OLAP或数据立方体专有的图表类型,但其本身也是表现出一种树形结构,所以可以作为上述树状饼图的替代。
Tree Map是由一组方块构成的,每个方块的大小和颜色(或者颜色深度)分别对应一个数值,所以一定程度上也可以作为数据立方的统计信息的可视化方法,比如表现一个数据立方中某个维度或多个维度上的切片。
这种可视化方法的优势和树状饼图类似,同样也是层次比较清晰,在用户交互方面也是很方便的扩展由鼠标触发的,针对某个维度的粒度的进一步操作,比如钻取。
其缺陷同样是信息不充足,但如果配合在方块上进一步展现一定的文字信息甚至是其他的图表信息,或者整合一定的可交互用户接口,也许能弥补这种不足。

1.4 DIVE-ON

DIVE-ON(Data mining in an Immersed Visual Environment Over a Network)1是一种利用视频游戏产业中的技术和方法实现的沉浸式的数据立方操作体验,用户可以像使用视频游戏产品一样,通过‘行走’或‘飞行’操作来访问感兴趣的数据源,且可以进行交互。利用3D仿真的沉浸式交互,充分利用了人类的空间感知能力.

1.5 小结

从有限的调查和文献阅读来看,目前数据立方体可视化,或者说OLAP可视化的主要方式还是透视表配合传统的统计图表;上述树状饼图和Tree Map是根据数据立方体的特点对传统统计图表的组合和演变。以上两类方式虽然也很好的呈现了数据立方体的某方面的信息,但终究是用2D形式展现多维的数据关系,需要人脑进行不断的翻译和解读,不够直观;在互动操作上,也会因为从2D到3D的思维转换而造成一定的困难。
而DIVE-ON则是利用其它行业——视频游戏产业中的3D技术对数据立方体可视化操作的一个尝试方式。其问题是过于强调沉浸的感觉,让本应简单快捷的数据操作变得复杂。而且漫游式的3D场景会让一部分人产生身体的不适。

2. 设计初衷

数据立方体,作为OLAP中数据的逻辑形式,不仅用于多维数据的存储和表现,还定义了一系列的基本操作——切块、切片、下钻、上卷、旋转等。图2-1展示了一个逻辑上的数据立方体的求和操作与透视表的对应关系,两部分(数据立方体和透视表)中,相同粒度的数据单元被赋予了同样的颜色。
从图2-1中可以看到,左侧的逻辑中的数据立方体,在展现多维数据的维度关系、沿着各个维度的聚合操作所产生的结果上都是非常直观的。而且,也可以想象,如果以3D技术实现这样一个‘实际的’数据立方体,在大部分交互操作中也会有比较直观和具体的效果。
本文探讨的数据立方体可视化方式,与DIVE-ON类似的采用了视频游戏产业的3D技术,但重点是强调逻辑中的数据立方体的呈现,以及直观的对其进行各种操作,并不强调沉浸式的体验。
2.PNG-200.5kB
图2-1 数据立方体以及其展开的透视表

3. 设计方案

虽然完整的数据立方体的呈现和操作需要多种可视化方式的配合,但本文探讨的3D可交互数据立方体的内容,只限于该立方体本身的呈现和交互。下文将讨论的演示程序也是如此,都不是以实现完整的OLAP范式或一个完整的OLAP工具为目标。
本文的主要目的是探讨并设计一种用3D技术实现的数据立方体,用户主要通过鼠标点击,拖动操作,配合必要的数值输入来操作多维数据,并由该3D界面给予相应的反馈。
涉及的表现形式和基本操作的内容,大致可以以图3-1来表示,并配以必要的用户界面控件和快捷键组合形式。

图片来自中国科学院大学 商业智能16-17秋季 讲义 OLAP概念,作者赵亚伟。
cube.PNG-95.7kB
操作主要分为4类:

  • 切块(片)
    操作方式:鼠标拖选 和(或) 对话框输入。
    在选择切块(片)操作后,用户可以用鼠标左键单击、拖动的方式直接在3D Cube上选择要切割的维度范围;也可以唤起对话框,输入切割的维度以及范围。
  • 钻取
    操作方式:鼠标点选维度。
    在选择钻取操作后,用户用鼠标左键单击3D Cube中维度文字后,系统弹出钻取的按钮,点击相应按钮后,即进行钻取操作,随后3D Cube根据新的维度信息重新生成。
  • 旋转
    操作方式:对话框输入。
    选择旋转操作后,系统弹出对话框,用户可重新指定3个维度。
    此处也可以考虑提供几个快捷旋转方式,如:交换XY 等。
  • 聚合
    操作方式:对话框输入。
    选择聚合后,系统弹出对话框,用户输入需要进行聚合计算的维度和范围,以及聚合计算的算法,如求和。

3.1 表现形式

3D呈现方面,本文的设计主要采用图3-1的形式。数据立方体以面向左下方的默认角度,立方体本地坐标的X轴代表的维度从左到右延伸;Y轴代表的维度从上到下延伸;Z轴代表的维度从外向里延伸。即正面最左上角的小方块是逻辑上的(1, 1, 1)数据;立方体最远处且最右边的小方块即代表(m, n, k)位置的数据。
立方体正面,上面和屏幕右侧的事实(小方块)会展示数值。因为3D空间中的透视效果(为效果直观考虑,保留了摄像机的投影透视效果,与图3-1的正交摄像机不同),所以设计上采用鼠标经过小方块时,数值会转向屏幕方向的做法;在鼠标离开某个小方块后,数值会回复原来的角度和位置。

3.2 基本UI

本文涉及内容的起点是数据立方体已经建立,即在用户已经选定了数据立方体的各个维度和数据范围以后。即本文涉及的内容可以看作是一个完整的OLAP工具中的一个视窗。
图3-2 展示了上述4种基本操作的概念设计图。

ui.PNG-39.8kB
图3-2 4种基本操作的概念设计图。A-切块(片)操作;B-钻取操作;C-旋转操作;D-聚合操作。

3.3 用户输入方式

以上述4种基本操作为划分依据,用户输入操作列表定义如表3-3所示。其中,“对话框A”代表“图3-2A”中的对话框,以此类推。
image_1b769muini33nmk4bge1mdje11.png-26.9kB

4. 演示程序的实现

演示程序CubeDemo基于Unity 3D开发,其目的是展示本文所讨论的3D可交互数据立方体的基本表现形式和操作方式。其运行截图如图4-1所示。
注:因为时间关系,这个演示程序目前并没有完成前述的全部设计。具体使用说明请参考附录A。
demo1.PNG-50.1kB
图4-1 演示程序CubeDemo

5. 待解决的问题

5.1 当数据数量过大时如何显示

当某个或多个维度的数据条目过多,导致单个事实(小方块)在视图中相对尺寸过小时,各种操作都会存在一定的困难。目前想到的解决方案是当某个维度数据条目大于一个阈值时,即省略中间的多数条目,以某种明显的方式显示这种省略。而用户也可以以某种操作关闭或再次打开这种省略方式。

5.2 某些操作的歧义性

因为3D Cube中的某个小方块包含最多3个维度的信息,在一些鼠标点击操作中,无法因为其被选中而确定用户的意图。如在取消选择的操作中,当点击一个已经被选中的小方块时,有取消其某一个维度,或者多个维度在内的其他方块的可能性。而只取消该方块自身,但其它同维度方块都不取消选择的话,对于数据立方体来说也是没有意义的。
目前演示程序中的解决方案是用户只能一次取消全部选择。

5.3 点选的位置歧义

用户需要可以任意旋转(3D绘图意义上的旋转)缩放数据立方体,就可以避免这种歧义。

总结

综上所述,本文所讨论的3D可交互数据立方体,是尝试实现数据立方体最初的逻辑模式的一种多维数据可视化方法。对比传统的透视表,在表现和部分操作上都更加直观和方便。但其自身也存在各种限制,所以其目的也是作为数据立方体的一种可选的可视化方式而存在。

参考文献

Alfredo Cuzzocrea, Svetlana Mansmann. OLAP Visualization: Models,Issues, and Techniques[C]. Encyclopedia Of Data Warehousing And Mining. Springer, 2007:1439-1446.
Xusheng Wang, Ping Chen, Wei Ding. Web-Based Interactive Visualization of Data Cubes[R]. Las Vegas: Proceedings of The 2005 International Conference on Modeling, Simulation and Visualization Methods, 2005.
盛晓忠. 基于Web的OLAP可视化方法研究[D], 2006.

附录A CubeDemo使用说明

基于1月23日版本(CubeDemo0122)。
操作演示在线视频:
http://v.youku.com/v_show/id_XMjQ4MzM5NTkxMg==.html

数据说明

演示数据有3个维度,分别是地区,时间和产品类别。
粒度级别:

  • 地区 {中国 [北京,上海,天津,重庆],美国 [纽约,芝加哥,费城,洛杉矶]}
  • 时间 {Q1 [1月,2月,3月],Q2 [4月,5月,6月],Q3 [7月,8月,9月],Q4 [10月,11月,12月]}
  • 产品类别 {类1,类2,类3,类4}

事实为维整形数组。

切块(片)

目前的演示程序中,默认任何时候都可以进行切块(片)的操作,只需要用鼠标左键单击,或者单击后拖选想要切割的块或面,选好后,点击“切块(面)”按钮即完成切割。
被选中的块呈现为蓝色。
A-1.PNG-54.5kB
图A-1 用鼠标点选或拖选方块

当选择好2个维度后,点击第3个维度中某一个块,系统会自动将涵盖范围内的块全部选定。如图A-2,当选择好(中国,Q1,类4)和(美国,Q1,类4)后,点击类3中任意一个块,系统会根据点选的新块,自动选择出一个的切块,如图A-3所示为点击了(中国,Q3,类3)后的结果。
A-2.PNG-52.8kB
图A-2
A-3.PNG-53.7kB
图A-3
选好后,点击按钮“切块(面)”完成切块,如图A-4所示。
A-4.PNG-21.9kB
图A-4

取消选择

目前演示程序中只能通过点击屏幕左上角的“取消选择”按钮来完成这个操作。

钻取

点击某维度任意文字,如“中国”“Q1”,系统会弹出“上卷”和“下钻”的对话框,如果有相应操作的下一级粒度,点击相应按钮即可完成钻取。
点击图A-5中红框中任意文字,系统即弹出按钮,如图A-6所示。点击“下钻”按钮,时间维度即下钻到月份级别,如图A-7所示。
A-5.png-21.9kB
图A-5
A-6.PNG-3.5kB
图A-6
A-7.PNG-44.4kB
图A-7

重置场景

点击屏幕右上方的“重置场景”按钮,可以让数据立方体回到最初的状态。

旋转

尚未完成。

聚合

尚未完成。

附录B 相关下载

演示程序CubeDemo的10月23日版本下载链接:
链接:http://pan.baidu.com/s/1bpy1F23 密码:473c

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注