数据立方体_SmartCube: 用于时空数据可视化的数据管理架构

e2882143120f5ccf327fb698529ecb20.png

对于时空数据集的可视化,往往会query多种类型的数据维度。比如下图所示,为了查询“温哥华去年夏天使用安卓手机的数量”,需要从空间维度挑选出“温哥华”地区,再从时间维度挑选出“去年夏天”的时间段,最后取出“安卓”的数据。这个过程对于大型的时空数据集来说是一个不小的挑战,因为每一次查询都会是一个非常耗时的过程。

a15a1568ba345d93169d00a94e9873b1.png
图1. 时空数据集可视化示例

为了加速这个过程,我们可以对数据集在初始化的时候进行预先的计算。这也就衍生出了两个概念,第一个是如下图中间所示的数据立方体(Data Cubes),它包含了一个数据集所有的累计运算情况,其中如图示中左右两侧的每一个立方体(Cuboid)都包含了一种累计运算情况的所有计算结果。有了这样的一个Data Cubes,当用户进行查询的时候,就可以快速地获取数据并进行可视化了。

53f447ac3805d307189a8b04cd458dac.png
图2 Data Cube和Cuboid

Data Cubes存在的问题是冗余非常严重,在整个立方体中其实有很大一部分是用不到的,但我门却进行了计算和存储。这些冗余源自于两个方面:

第一,通常可视化系统的任务是固定的,不可能囊括所有的Data Cubes。

第二,用户往往有固定的查询偏好,在一定的偏好下通常只有部分的Cuboids会被使用到。

SmartCube希望基于这样的情况对目前的Data Cubes进行优化,能够形成一个有效的自适应结构,在确保查询延迟小的情况下,也能保证存储空间也尽可能小。下图是SmartCube的核心工作流,在对数据结构进行初始化后,SmartCube会持续记录用户的Query信息,并基于用户最近查询的Query列表进行数据结构的优化,从而添加需要的Cuboid并删除无用Cuboid。

f32733b9d50067b090bdc171a79aa71b.png
图3 SmartCube工作流

SmartCube的层次结构核心分为四个大层:最底层是空间数据层,使用四叉树(quad-tree)的方法对地理空间进行划分;第二层是类别数据层,直接根据数据中的分类进行划分;第三层是时间数据层,通过自然时间进行划分(如年、月、日);最后一层是累计运算层,是存储计算完毕的数据。下面这张图介绍了SmartCube是如何增加一个Cuboid和删除一个Cuboid的,在增加的过程中可以复用已有的运算结果。

da790d2a1006e1f417b9d1b753f4fc81.png
图4 SmartCube的结构更新方法

在具体的更新运算过程中,SmartCube会根据用户最新的Query和现存最近的Query来判断,是否添加一个新的Cuboid可以使得整体查询延迟降低,以及是否删除一个Cuboid可以最小程度地增加延迟影响。最终整个延迟会进入一个收敛的状态。

最终的用户研究阶段,SmartCube横向比较了之前的NanoCube技术,在查询延迟和存储空间上都优于之前的方案。该工作确保在比较小的存储空间下同时能够达到较小的延迟,并且该系统也适用于不同的时空数据集。

5cd3af14aee70a636f6332ae31d943ee.png
图5 实验比较结果

SmartCube下一步的研究方向主要是缓存机制的优化,以及分布式环境的搭建。

[1] SmartCube: An Adaptive Data Management Architecture for the Real-Time Visualization of Spatiotemporal Datasets

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值