一种基于HBase的3D Tiles数据的存取方法及装置制造方法及图纸

技术编号:24121208 阅读:33 留言:0更新日期:2020-05-13 03:08
本发明专利技术涉及一种基于HBase的3D Tiles数据的存取方法及装置,该方法首先根据3D Tiles数据的数据类型以及瓦片级别对HBase数据库进行预分区,并确定每个分区的起始rowkey和终止rowkey;然后,根据3D Tiles数据文件名称提取的瓦片级别和文件后缀组成rowkey;最后,根据所述rowkey对所述3D Tiles数据进行存取操作,将所述3D Tiles数据存入对应的分区或从相应的分区读取所述3D Tiles数据。HBase是根据rowkey查询的,只要能快速的定位rowkey,就能实现快速的查询。因此,建表分区,合理设计3D Tiles文件的rowkey,查询时通过rowkey快速精确查找到3D Tiles文件,可达到毫秒级查询速度。

【技术实现步骤摘要】
一种基于HBase的3DTiles数据的存取方法及装置
本专利技术涉及地理信息
,具体涉及一种基于HBase的3DTiles数据的存取方法及装置。
技术介绍
3DTiles一种符合OGC标准规范的三维数据格式,设计用于流式传输和渲染大量3D地理空间内容,例如摄影测量,3D建筑,BIM/CAD,实例化特征和点云。现有的3DTiles管理存在的问题有:文件夹管理方式,数据安全性较低,随着数据规模越来越大,管理起来极为不便,而且会带来读取效率低下,不利于三维数据快速加载与地图渲染。
技术实现思路
本专利技术针对现有技术中存在的技术问题,提供一种基于HBase的3DTiles数据的存取方法及装置。HBase是一个高可靠性、高性能、可伸缩的分布式数据库,通过rowkey可实现非结构化数据的快速查询与读取。本专利技术解决上述技术问题的技术方案如下:第一方面,本专利技术提供一种基于HBase的3DTiles数据的存取方法,包括以下步骤:根据3DTiles数据的数据类型以及瓦片级别对HBase数据库进行预分区,并确定每个分区的起始rowkey和终止rowkey,其中所述数据类型包括:b3dm型三维瓦片数据,pnts型点云数据和json型元数据;根据3DTiles数据文件名称提取的瓦片级别和文件后缀组成rowkey;根据所述rowkey对所述3DTiles数据进行存取操作,将所述3DTiles数据存入对应的分区或从相应的分区读取所述3DTiles数据。由于HBase默认只有分区,在数据写入时,所有数据都会写入这个默认的分区,随着数据量的不断增加,此分区已经不能承受不断增长的数据量,会进行分割,分成2个分区,在此过程中,会产生两个问题:1.数据往一个分区上写,会有写热点问题。2.分区分割会消耗宝贵的集群I/O资源。基于此我们可以控制在建表的时候,创建多个空分区,并确定每个分区的起始和终止rowkey,这样只要我们的rowkey设计能均匀的命中各个分区,就不会存在写热点问题。既能保证数据均匀存储,又能提高写的效率。3DTiles数据包含3类文件:三维瓦片数据b3dm,点云数据pnts和元数据json。由于3DTiles数据占主要的数据格式为b3dm,点云数据和json数据量很小,将其存入第一个或者最后一个分区就可以了。3DTiles各个地图级别瓦片数据量相对比较均匀,因此将各级瓦片分别建表分区存储。进一步的,所述的将HBase数据库根据3DTiles数据的数据类型进行预分区,还包括从瓦片文件夹名称提取地图级别作为分区名称,对分区表进行命名。便于存取数据时,直接查找到指定的分区,提高数据存取速度。进一步的,所述的根据所述rowkey对所述3DTiles数据进行存取操作,包括,以3DTiles瓦片根文件下面的每个子文件夹为单位创建线程,同时控制并行线程数,以多线程方式读取本地3DTiles数据,设置HBase表写入缓存。由于3DTiles数据小文件太多,数据量普遍较大,采用一般方式读取写入HBase效率低下,将3DTiles瓦片根文件下面的每个子文件夹为单位创建线程,同时控制并行线程数,以多线程方式读取本地3DTiles数据,设置HBase表写入缓存,可以明显加快写入效率。进一步的,该方法还包括,对HBase数据库划分的分区以及分区内存储的数据进行备份,并存放在不同的集群节点中。单台服务器管理,当机器发生故障,数据会不可避免的丢失,数据安全性较低。依托HBase数据库的高可靠性,数据一般配置有2-3个备份,每个备份存放在不同集群节点,这样即使集群某个节点坏掉,也能保证数据不会丢失。第二方面,本专利技术还提供一种基于HBase的3DTiles数据的存取装置,包括:预分区模块,用于根据3DTiles数据的数据类型以及瓦片级别对HBase数据库进行预分区,并确定每个分区的起始rowkey和终止rowkey,其中所述数据类型包括:b3dm型三维瓦片数据,pnts型点云数据和json型元数据;rowkey生成模块,用于根据3DTiles数据文件名称提取的瓦片级别和文件后缀组成rowkey;存取模块,用于根据所述rowkey对所述3DTiles数据进行存取操作,将所述3DTiles数据存入对应的分区或从相应的分区读取所述3DTiles数据。进一步的,所述预分区模块还包括分区表命名模块,用于从瓦片文件夹名称提取地图级别作为分区名称,对分区表进行命名。进一步的,所述的存取模块还包括线程创建模块,所述线程创建模块用于以3DTiles瓦片根文件下面的每个子文件夹为单位创建线程,同时控制并行线程数,以多线程方式读取本地3DTiles数据,设置HBase表写入缓存。进一步的,该装置还包括数据备份模块,用于对HBase数据库划分的分区以及分区内存储的数据进行备份,并存放在不同的HBase数据库集群节点中。第三方面,本专利技术还提供一种电子设备,包括:存储器,用于存储计算机软件程序;处理器,用于读取并执行所述存储器中存储的计算机软件程序,实现如本专利技术第一方面所述的一种基于HBase的3DTiles数据的存取方法。第四方面,本专利技术还提供一种非暂态计算机可读存储介质,所述存储介质中存储有用于实现如本专利技术第一方面所述的一种基于HBase的3DTiles数据的存取方法的计算机软件程序。本专利技术提出了通过HBase数据库分布式存储3DTiles数据。HBase是根据rowkey查询的,只要能快速的定位rowkey,就能实现快速的查询。因此,建表分区,合理设计3DTiles文件的rowkey,查询时通过rowkey快速精确查找到3DTiles文件,可达到毫秒级查询速度。本专利技术的有益效果是:(1)数据安全性高,数据分布式存储,写入会自动备份,不用担心数据丢失;(2)高性能,数据规模增加不会带来数据读写效率降低。对表预分区,3DTiles数据根据rowkey写入各个表分区,避免数据热点问题,加快3DTiles写入HBase效率。由于3DTiles数据单个数据量很小,基本上为几十至几百kb,对数据压缩存储,可节省磁盘空间的占用。附图说明图1为本专利技术实施例提供的一种基于HBase的3DTiles数据的存取方法流程图;图2为本专利技术实施例提供的一种基于HBase的3DTiles数据的存取装置结构图。具体实施方式以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。实施例一如图1所示,本专利技术实施例提供一种基于HBase的3DTiles数据的存取方法,提出了通过HBase数据库分布式存储3DTiles数据。HBase是根据rowkey查询的,只要能快速的定位rowkey,就能实现快速的查询。因此,建表分区,合理设计3DTiles文件的rowkey,查询时通过rowkey快速精确查找到3DTi本文档来自技高网...

【技术保护点】
1.一种基于HBase的3D Tiles数据的存取方法,其特征在于,包括以下步骤:/n根据3D Tiles数据的数据类型以及瓦片级别对HBase数据库进行预分区,并确定每个分区的起始rowkey和终止rowkey,其中所述数据类型包括:b3dm型三维瓦片数据,pnts型点云数据和json型元数据;/n根据3D Tiles数据文件名称提取的瓦片级别和文件后缀组成rowkey;/n根据所述rowkey对所述3D Tiles数据进行存取操作,将所述3D Tiles数据存入对应的分区或从相应的分区读取所述3D Tiles数据。/n

【技术特征摘要】
1.一种基于HBase的3DTiles数据的存取方法,其特征在于,包括以下步骤:
根据3DTiles数据的数据类型以及瓦片级别对HBase数据库进行预分区,并确定每个分区的起始rowkey和终止rowkey,其中所述数据类型包括:b3dm型三维瓦片数据,pnts型点云数据和json型元数据;
根据3DTiles数据文件名称提取的瓦片级别和文件后缀组成rowkey;
根据所述rowkey对所述3DTiles数据进行存取操作,将所述3DTiles数据存入对应的分区或从相应的分区读取所述3DTiles数据。


2.根据权利要求1所述的方法,其特征在于,所述的将HBase数据库根据3DTiles数据的数据类型进行预分区,还包括从瓦片文件夹名称提取地图级别作为分区名称,对分区表进行命名。


3.根据权利要求1所述的方法,其特征在于,所述的根据所述rowkey对所述3DTiles数据进行存取操作,包括,以3DTiles瓦片根文件下面的每个子文件夹为单位创建线程,同时控制并行线程数,以多线程方式读取本地3DTiles数据,设置HBase表写入缓存。


4.根据权利要求1所述的方法,其特征在于,该方法还包括,对HBase数据库划分的分区以及分区内存储的数据进行备份,并存放在不同的集群节点中。


5.一种基于HBase的3DTiles数据的存取装置,其特征在于,包括:
预分区模块,用于根据3DTiles数据的数据类型以及瓦片级别对HBase数据库进行预分区,并确定每个分区的起始rowkey和终止rowkey,其中...

【专利技术属性】
技术研发人员:张业鑫李爱兵高刃李红艳李纯杨扬
申请(专利权)人:武汉光谷信息技术股份有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1