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

    文章

    2990

    浏览量

    73838
  • 数据库
    +关注

    关注

    7

    文章

    3754

    浏览量

    64253
  • 引擎
    +关注

    关注

    1

    文章

    358

    浏览量

    22520
收藏 人收藏

    评论

    相关推荐

    SMT流水线布局优化技巧

    在电子制造领域,SMT(表面贴装技术)流水线的布局优化对于提高生产效率、降低成本和提升产品质量至关重要。一个合理的流水线布局可以减少物料搬运时间,提高设备
    的头像 发表于 11-14 09:11 165次阅读

    如何优化emc存储性能

    在当今的数据中心环境中,存储性能对于业务连续性和数据访问速度至关重要。EMC作为领先的存储解决方案提供商,其产品线涵盖了从入门级到企业级的存储
    的头像 发表于 11-01 15:57 173次阅读

    优化TPS546xx的布局实现热性能

    电子发烧友网站提供《优化TPS546xx的布局实现热性能.pdf》资料免费下载
    发表于 10-12 10:31 0次下载
    <b class='flag-5'>优化</b>TPS546xx的<b class='flag-5'>布局</b>以<b class='flag-5'>实现</b>热性能

    全球视野下的国外IP节点布局优化策略

    在当今全球化的数字时代,国外IP节点的布局优化已成为企业拓展国际市场、提升用户体验、保障数据安全与加速数据传输的关键要素。
    的头像 发表于 10-10 08:11 185次阅读

    如何利用三种 SOT-563 封装实现共同布局

    电子发烧友网站提供《如何利用三种 SOT-563 封装实现共同布局.pdf》资料免费下载
    发表于 09-10 14:25 0次下载
    如何<b class='flag-5'>利用</b>三种 SOT-563 封装<b class='flag-5'>实现</b>共同<b class='flag-5'>布局</b>

    一文了解MySQL索引机制

    的呢?一起静下心来,耐心看完这篇文章吧,干货不啰嗦,相信你一定会有所收获。 一、索引模型 模型也就是数据结构,常见的三种模型分别是哈希表、有序数组和搜索树。 了解MySQL的朋友已经知道,现在MySQL默认使用的是InnoDB存储
    的头像 发表于 07-25 14:05 232次阅读
    一文了解MySQL<b class='flag-5'>索引</b>机制

    ClickHouse内幕(3)基于索引的查询优化

    ClickHouse索引采用唯一聚簇索引的方式,即Part内数据按照order by keys有序,在整个查询计划中,如果算子能够有效利用输入数据
    的头像 发表于 06-11 10:46 924次阅读
    ClickHouse内幕(3)基于<b class='flag-5'>索引</b>的查询<b class='flag-5'>优化</b>

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

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

    FPGA布局布线优化技术

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

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

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

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

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

    Mysql索引是什么东西?索引有哪些特性?索引是如何工作的?

    作为开发人员,碰到了执行时间较长的 sql 时,基本上大家都会说” 加个索引吧”。但是索引是什么东西,索引有哪些特性,下面和大家简单讨论一下。
    的头像 发表于 12-24 16:20 1153次阅读
    Mysql<b class='flag-5'>索引</b>是什么东西?<b class='flag-5'>索引</b>有哪些特性?<b class='flag-5'>索引</b>是如何工作的?

    磁盘中RocketMQ构建的索引结构

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

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

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

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

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