0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何利用Flood多维索引技术实现优化数据存储布局

牵手一起梦 来源:学术头条 作者:佚名 2020-09-22 16:38 次阅读

在多维索引表格(multi-dimensional table)上进行扫描和筛选是现代分析型数据库引擎的关键技术。为了对这些操作进行优化,数据库常建立起聚类的索引结构(indexes),如R-Trees,Z-ordering等,然而这些索引结构在不同的数据集以及查询集合(query workload)下很难进行统一优化。在本篇论文中,提出了名为Flood的多维学习索引结构。通过同时优化索引结构以及存储布局,这种结构自动地调整自身以适应具体数据集和查询集合。该工作用来为端到端学习型数据库系统构建索引模块。

论文背景

在多维索引表格上进行扫描和筛选是现代分析型数据库引擎的关键技术之一。如果数据完全根据其中某一个属性(attribute)进行组织,即不会涉及到多个属性同时被访问的情况,那么通过建立平衡树或者进行简单二分搜索的方法已经足够。然而,如果数据需要通过不同属性进行筛选,那么通过建立多层索引的方法是不足以解决问题的。多层索引所带来的存储代价是的这项技术只能被应用在很小的范围内。另一种解决方案是建立起多维索引(multi-dimensional indexes)对数据进行组织管理。如Redshift以及Spark-SQL使用Z-ordering技术来对数据进行布局,一些空间数据库则尝试使用R-tree来进行索引。然而,现有的多维索引技术有着显著的缺点。首先,这些技术都非常难以根据实际的数据集进行优化。其次,没有一项方案可以作为所有问题的统一解决方法。不同的数据集以及查询集合将会决定使用不同的多维索引技术。

为了解决上述缺点,本文提出了名为Flood的基于内存的学习多维索引。该索引方案的重点在于自动地同时优化数据存储布局以及索引的结构,以此来获得优于其他所有多维索引的索引速度。Flood框架有以下两个重点idea:

1. 使用一个下采样的查询集合,即一小部分查询样例构成的查询集合样本,以此来学习不同维度属性在查询过程中的使用频率。基于该信息,Flood框架自动地调节数据存储布局,以此优化索引性能。

2. 使用一个累计分布函数CDF(Calculative Distribution Function)模型来将多维上可能的倾斜数据映射到一个均匀空间中。这个平滑(Flatten)过程使得每一个存储的存储单元储存的数据量基本一致。以此更快地进行索引。

Flood框架的主要贡献有三:

1. 提出了第一个学习型多维索引,Flood框架。Flood从一个筛选断言集合,即一个下采样的查询集合中学习查询集合的分布函数,以此调节数据存储布局。

2. 使用三个真实数据集评估了多个不同的多维索引结构,实验显示Flood框架大大优于其他的多维索引结构。

3. 实验显示出Flood框架在不同的Filter Predicates上都实现了搜索加速,其索引结构的建立速度与其他多维索引的建立速度相当。

论文模型

如何利用Flood多维索引技术实现优化数据存储布局

多维索引查询的难点在于同时对Y和Z两个属性进行筛选,对其中某一个维度进行排序的二分搜索无法顺利完成该任务。

数据布局

如果把整个多维空间看作一个欧几里得空间的话,不同于单维数据,多维数据不可以基于一个维度,或者属性进行排序,这导致很多单维上可以使用的索引方法在多维索引上并不适用。但是如果将整个空间分成一个个小的格子,在单独一个格子内使用统一维度进行排序,则在访问该格子内的数据中就可以通过使用单维索引技术加速索引。

模型基本操作

1. 映射查找存储块(Projection):通过查询中的筛选条件得到需要遍历的数据网格,并且将索引范围约束在这些网格当中。

2. 凝练查找范围(Refinement):对按照某一维度进行排序的网格数据进行进一步筛选,根据查找筛选条件对排序维度的限制进一步缩小检索的范围。

3. 进行搜索。

网格优化

网格分割需要决定每一个维度所应该分割的子空间个数。Flood框架可以通过学习选择合适的网格个数以及决定哪一个维度作为排序维度,即在网格内对数据进行排序的维度。

数据学习优化索引结构

1. 数据平滑化

根据CDF模型,对空间进行不均匀的划分,达到每一个网格的数据点数量基本一致。实验显示当数据量方差较小时,索引的速度有所加快。

2. 快速查找范围凝练(使用机器学习方法)

在凝练搜索范围的过程中,通过使用学习索引模型,RMI(Recursive Model Index),这一个多层线性回归模型的索引结构,加速范围索引的速度。论文中称之为piecewise linear model。

实验

本文在Sales,OSM,Perform三个真实数据上进行了试验。

同时,还验证了数据扁平化等优化方法在提升索引速度上的有效性。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内存
    +关注

    关注

    8

    文章

    2767

    浏览量

    72752
  • 数据库
    +关注

    关注

    7

    文章

    3590

    浏览量

    63365
  • 引擎
    +关注

    关注

    1

    文章

    344

    浏览量

    22275
收藏 人收藏

    评论

    相关推荐

    佰维存储RAID固件优化,助力数据中心强化效能与安全

    人工智能和物联网等先进技术的普及将推动对数据存储的需求升级,企业将需要更快、更安全、更密集的SSD,以实现各种高性能计算。随着固态硬盘技术
    发表于 04-16 18:18 196次阅读
    佰维<b class='flag-5'>存储</b>RAID固件<b class='flag-5'>优化</b>,助力<b class='flag-5'>数据</b>中心强化效能与安全

    FPGA布局布线优化技术

    寄存器排序是布局工具把多位寄存器的相邻位分组放进单个逻辑元件所利用的方法。大多数基于单元的逻辑元件有不止一个触发器,因此,相邻位放置在一起,时序可以被优化
    发表于 03-29 11:30 91次阅读
    FPGA<b class='flag-5'>布局</b>布线<b class='flag-5'>优化</b><b class='flag-5'>技术</b>

    数据存储技术未来发展趋势与前景展望

    数据存储对于数据挖掘与分析、数据整合与共享、智能决策支持、业务模式创新以及优化资源配置等方面具有重要作用。按照
    发表于 02-27 09:29 927次阅读
    <b class='flag-5'>数据</b><b class='flag-5'>存储</b><b class='flag-5'>技术</b>未来发展趋势与前景展望

    谷歌搜索引优化的各个方面和步骤

    谷歌搜索引擎是最受欢迎和广泛使用的搜索引擎之一,为了使你的网站在谷歌上更好地排名并提高曝光度,你可以采取一些谷歌搜索引优化的步骤。 使用关键字研究工具,如Google AdWords
    的头像 发表于 01-25 10:29 289次阅读

    磁盘中RocketMQ构建的索引结构

    下,消息索引存储是基于数据库系统或者基于本地文件系统实现的,受限于磁盘容量,很难满足海量数据的写入诉求。 在云原生场景下,对象
    的头像 发表于 12-22 10:43 203次阅读
    磁盘中RocketMQ构建的<b class='flag-5'>索引</b>结构

    如何优化晶振布局与连接?

    如何优化晶振布局与连接 晶振是电子设备中常见的元件之一,用于提供时钟信号和稳定的频率参考。在进行晶振布局和连接时,需要考虑一系列的因素以确保其工作稳定可靠。本文将详细介绍如何优化晶振
    的头像 发表于 12-18 14:09 332次阅读

    c语言中多维数组可以嵌套定义

    C语言中多维数组可以嵌套定义,这使得我们可以在一个数组中存储另一个数组。通过这种方式,我们可以创建更加复杂和灵活的数据结构,以便更好地表示和处理各种类型的数据。 首先,我们先介绍
    的头像 发表于 11-24 10:18 444次阅读

    索引的底层实现详解

    说一说索引的底层实现? Hash索引 基于哈希表实现,只有精确匹配索引所有列的查询才有效,对于每一行数据
    的头像 发表于 10-09 10:26 487次阅读
    <b class='flag-5'>索引</b>的底层<b class='flag-5'>实现</b>详解

    索引是什么意思 优缺点有哪些

    数据结构,以协助快速查询、更新数据库表中数据索引实现通常使用B树及其变种B+树。更通俗的说,索引
    的头像 发表于 10-09 10:19 1416次阅读

    MySQL索引的常用知识点

    索引结构:B+树 索引其实是一种数据结构 注意B+树是MySQL,索引默认的结构;一张表至少有一个索引(主键
    的头像 发表于 09-30 16:43 244次阅读

    如何利用Intel Optanane技术优化资本市场

    如何利用Intel Optanane技术优化资本市场——金融信息技术生命中的一天,描述Intelé OptananeTM技术如何提供更多宝贵
    发表于 08-04 06:30

    为什么列存储能够大幅度提高数据的查询性能

    存储索引适合于数据仓库中,主要执行大容量数据加载和只读查询,与传统面向行的存储方式相比,使用列存储
    的头像 发表于 07-09 16:11 312次阅读
    为什么列<b class='flag-5'>存储</b>能够大幅度提高<b class='flag-5'>数据</b>的查询性能

    存储索引的空间使用

      01、列存储的特点 02、列存储的物理实现 03、列存储索引 04、列存储
    的头像 发表于 06-25 17:30 344次阅读
    列<b class='flag-5'>存储</b><b class='flag-5'>索引</b>的空间使用

    MySQL高级进阶:索引优化

    MySQL官方对于索引的定义:索引是帮助MySQL高效获取数据数据结构。
    的头像 发表于 06-11 11:13 358次阅读
    MySQL高级进阶:<b class='flag-5'>索引</b><b class='flag-5'>优化</b>

    无线通信研究的一个新热点—索引调制技术

    索引调制技术已有的研究成果,从不同索引方式以及索引调制的应用,分别简要概述了各种索引调制的基本原理,以及
    发表于 05-10 16:44