基于二分混合空间曲线的HBase多维索引构建及查询优化问题研究 硕士毕业论文+小论文+开题报告+开题答辩PPT+中期考察表+中期答辩PPT+答辩稿+毕业答辩PPT+毕设演示系统+实验记录+英文论文

!!! 有需要的小伙伴可以通过文章末尾名片咨询我哦!!!

 💕💕作者:小张
💕💕个人简介:混迹在java圈十年有余,擅长Java、微信小程序、Python、Android等,大家有这一块的问题可以一起交流!
💕💕各类成品java系统 。javaweb,ssh,ssm,springboot等等项目框架,源码丰富,欢迎咨询交流。学习资料、程序开发、技术解答、代码讲解、源码部署,需要请看文末联系方式。

摘要

HBase是基于分布式文件系统Hadoop的开源数据库,能够支持海量数据的实时读写。为了支持快速的数据写入,HBase并没有提供对多维索引的支持。然而,许多HBase的应用场景中都需要使用多维索引,例如电商、物联网、交通等领域。因此,许多研究致力于为HBase多维索引提供解决方案。其中,基于线性化技术的全局索引方案首先将多维数据线性化为一维序列,然后在一维序列上建立索引结构,取得了不错的插入、查询效率。然而,这种方案在确保数据并发性和一致性的实现上较为复杂,且大多数方案的查询效率和使用的线性化技术仍有改进空间。

本文首先从理论上改进线性化技术。空间填充曲线是一种常见的线性化技术,局部性、聚集度是衡量空间填充曲线“好坏”的两类理论指标。在众多的空间填充曲线中,Z曲线由于编码简单、支持二分划分裁剪多维空间而得到广泛应用,然而其局部性、聚集度较差。本文使用Z曲线等支持二分划分的空间填充曲线混合理论性质优良的其他空间填充曲线,提出一种新的二分混合空间填充曲线,不仅能够支持二分划分裁剪多维数据空间,并且拥有更好的局部性、聚集度。在实验条件下,使用Z曲线混合Hilbert曲线的Blend_Z_Hilbert曲线在局部性指标上较Z曲线提升20%以上,在聚集度指标上提升50%以上。

接着,基于二分混合空间填充曲线降维后的一维数据,提出了一种基于流式批处理计算的HBase多维索引结构SFI-HBase。在数据插入方面,SFI-HBase使用Spark Streaming对插入全量索引层的数据提前进行聚合、存储,提供了对并发插入的支持,实现了良好的插入效率。在数据查询方面,SFI-HBase的全量索引层存储不同粒度的索引信息,能够根据范围、KNN查询条件选择索引粒度,进而提高查询效率。在实验对比方面,与多种HBase多维索引解决方案进行了插入和查询实验对比,结果表明本文提出的索引结构具有综合最优的时空效率。与线性化技术经典解决方案MD-HBase相比,SFI-HBase的范围查询效率提高10%左右,KNN查询效率提高5倍以上,插入效率提高十倍以上。

最后,为了验证SFI-HBase在真实场景中的可用性,基于开源网约车数据集实现了一个网约车离线分析平台。该平台能够自动的将插入到MySQL的数据通过采集、计算的方式自动同步到SFI-HBase的存储层和全量索引层,并能够基于时间、经纬度等多维条件实现对网约车订单数据的高效查询。

ABSTRACT

HBase is an open-source database based on the distributed file system Hadoop, capable of supporting real-time read and write operations for massive data. To facilitate rapid data insertion, HBase does not offer support for multi-dimensional indexing. However, many application scenarios of HBase require the use of multi-dimensional indexing, such as in the fields of e-commerce, IoT (Internet of Things), transportation, etc. Thus, numerous studies are dedicated to providing solutions for multi-dimensional indexing in HBase. Among them, the global indexing scheme based on linearization techniques first linearizes multi-dimensional data into a one-dimensional sequence, and then builds an indexing structure on this one-dimensional sequence, achieving commendable insertion and query efficiency. However, this approach tends to be complex in ensuring data concurrency and consistency, and the query efficiency and employed linearization techniques of most schemes still have room for improvement.

This paper first theoretically improves linearization techniques. Space-filling curves are a common type of linearization technique, where locality and clustering degree are two theoretical indicators to measure the "quality" of space-filling curves. Among various space-filling curves, the Z-curve, due to its simple encoding and support for binary partition trimming of multi-dimensional spaces, is widely applied. However, its locality and clustering degree are relatively poor. This paper mixes the Z-curve, which supports binary partitioning, with other space-filling curves with excellent theoretical properties, proposing a new binary-mixed space-filling curve that not only supports binary partition trimming of multi-dimensional data spaces but also possesses better locality and clustering degree. Under experimental conditions, the Blend_Z_Hilbert curve, which mixes the Z-curve with the Hilbert curve, improves over 20% in locality and over 50% in clustering degree compared to the Z-curve alone.

Following this, based on the one-dimensional data after dimensionality reduction using the binary-mixed space-filling curve, a multi-dimensional index structure for HBase named SFI-HBase, based on stream-batch processing computation, is proposed. For data insertion, SFI-HBase uses Spark Streaming to aggregate and store the data intended for the full index layer in advance, providing support for concurrent insertions and achieving high insertion efficiency. For data querying, the full index layer of SFI-HBase stores different granularities of index information, enabling the selection of index granularity based on range and KNN query conditions, thereby improving query efficiency. In experimental comparisons with various HBase multi-dimensional indexing solutions, the results demonstrate that the index structure proposed in this paper has the best spatial-temporal efficiency. Compared to the classic linearization solution MD-HBase, the range query efficiency of SFI-HBase improves by about 10%, and the KNN query efficiency increases by more than five times, with over ten times improvement in insertion efficiency.

Lastly, to validate the usability of SFI-HBase in real scenarios, an offline analysis platform for ride-hailing services based on an open-source dataset has been implemented. This platform can automatically synchronize the data inserted into MySQL to the storage layer and full index layer of SFI-HBase through collection and computation, and efficiently query the ride-hailing order data based on multi-dimensional conditions such as time and latitude/longitude.

目录

1 绪论

1.1 研究背景与意义

1.2 国内外研究现状

1.2.1 索引技术

1.2.2 空间填充曲线

1.3 论文主要工作

1.4 论文章节安排

2 相关理论基础与技术简介

2.1 大数据存储与计算技术

2.1.1 Hadoop生态圈

2.1.2 HDFS

2.1.3 HBase

2.1.4 Spark Streaming

2.3 索引相关技术

2.3.1 二级索引

2.3.2 聚簇索引

2.3.3 多维索引

2.3 空间填充曲线

2.4 本章小结

3 基于可变阶数的二分混合空间填充曲线

3.1 问题描述

3.2 二分混合空间填充曲线

3.2.1 基本概念

3.2.2 编码方法

3.2.3 解码方法

3.2.4 编解码时空复杂度

3.2.5 可变阶数设置

3.3 空间填充曲线评价指标定义和说明

3.3.1 局部性

3.3.2 聚集度

3.4 空间填充曲线实验对比与分析

3.5 本章小结

4 基于二分混合空间填充曲线的多维流式全量索引

4.1 问题描述

4.1.1 数据倾斜与齐夫分布

4.1.2 线性化技术索引方案存在的问题

4.2多维流式全量索引SFI-HBase

4.2.1 SFI-HBase索引结构

4.2.2 范围查询

4.2.3 KNN查询

4.3索引性能实验对比与分析

4.3.1 插入效率对比

4.3.2 范围查询效率对比

4.3.2 KNN查询效率对比

4.4 本章小结

5 基于SFI-HBase的海量数据分析平台设计与实现

5.1 系统需求分析

5.1.1 功能性需求分析

5.1.2 非功能性需求分析

5.2 系统设计

5.2.1 系统架构设计

5.2.2 功能模块设计

5.2.3 数据库设计

5.3系统实现

5.3.1 员工管理模块

5.3.2 数据同步模块

5.3.3 订单查询模块

5.3.4 统计信息模块

5.4 系统测试

5.4.1 功能测试

5.4.2 性能测试

5.5 本章小结

6 总结与展望

6.1 总结

6.2 展望

参考文献

更多项目:

另有1000+份项目源码,项目有java(包含springboot,ssm,jsp等),小程序,python,php,net等语言项目。项目均包含完整前后端源码,可正常运行!

!!! 有需要的小伙伴可以点击下方链接咨询我哦!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小马软件开发定制

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值