基于Hbase的影像瓦片存储方法、装置、设备及介质与流程

文档序号:20186838发布日期:2020-03-27 19:11阅读:588来源:国知局
基于Hbase的影像瓦片存储方法、装置、设备及介质与流程

本发明涉及地理信息技术领域,尤其涉及一种基于hbase的影像瓦片存储方法、装置、设备及介质。



背景技术:

金字塔瓦片是地理信息领域为了提升地图加载速度而采用的切片方式,从瓦片金字塔的底层到顶层,分辨率越来越低,但表示的地理范围不变,一般都是采用文件夹的方式,按瓦片级别逐级存储。

但是,现有的金字塔瓦片存储存在的问题有:数据都是单个机器存储,当机器发生故障时,数据会不可避免的丢失;文件夹存取方式,相比数据库存取方式,瓦片存取效率低,特别是当金字塔瓦片的数据量大时,读取效率低将直接导致地图缩放响应速度慢,严重影响地图使用。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

有鉴于此,本发明提出了一种基于hbase的影像瓦片存储方法、装置、设备及介质,旨在解决现有技术无法实现金字塔瓦片安全存储以及高效存取的技术问题。

本发明的技术方案是这样实现的:

一方面,本发明提供了一种基于hbase的影像瓦片存储方法,所述基于hbase的影像瓦片存储方法包括以下步骤:

s1,建立hbase表,获取金字塔瓦片切片级数;

s2,建立行列号算法,获取待计算数据,通过行列号算法对该待计算数据进行计算,从计算结果中获取金字塔瓦片的行列号;

s3,设定rowkey拼接规则,获取随机字符串,通过rowkey拼接规则将金字塔瓦片切片级数、金字塔瓦片的行列号以及随机字符串拼接成rowkey,并根据rowkey将金字塔瓦片写入hbase表中。

在以上技术方案的基础上,优选的,步骤s1中,建立hbase表,获取金字塔瓦片切片级数,还包括以下步骤,建立hbase表,获取金字塔瓦片切片级数,根据金字塔瓦片切片级数对hbase表进行预分区,金字塔瓦片切片技术与分区的编号一一对应。

在以上技术方案的基础上,优选的,步骤s2中,建立行列号算法,获取待计算数据,通过行列号算法对该待计算数据进行计算,从计算结果中获取金字塔瓦片的行列号,还包括以下步骤,所述待计算数据包括:地图分辨率、坐标系数据、影像的具体坐标、瓦片像素的宽以及瓦片像素的高,根据影像的具体坐标从坐标系数据中找到该影像的具体坐标对应的地图分辨率。

在以上技术方案的基础上,优选的,所述行列号算法为:

其中,r代表瓦片的行号,c代表瓦片的列号,kq代表影像像素的宽,gq代表影像像素的高,kw代表瓦片像素的宽,gw代表瓦片像素的高。

在以上技术方案的基础上,优选的,所述影像像素的宽和高的计算方法为:

其中,(x,y)代表影像的具体坐标,δ代表该影像的具体坐标对应的地图分辨率。

在以上技术方案的基础上,优选的,步骤s3中,设定rowkey拼接规则,获取随机字符串,通过rowkey拼接规则将金字塔瓦片切片级数、金字塔瓦片的行列号以及随机字符串拼接成rowkey,并根据rowkey将金字塔瓦片写入hbase表中,还包括以下步骤,设定字符串拼接规则作为rowkey拼接规则,获取随机字符串,通过字符串拼接规则将金字塔瓦片切片级数、金字塔瓦片的行列号以及随机字符串拼接成rowkey,并根据rowkey将金字塔瓦片写入hbase表对应的分区中。

在以上技术方案的基础上,优选的,并根据rowkey将金字塔瓦片写入hbase表对应的分区之后,还包括以下步骤,获取金字塔瓦片的行列号以及金字塔瓦片切片级数,将金字塔瓦片的行列号以及金字塔瓦片切片级数作为该金字塔瓦片的索引标签,根据该标签从hbase表对该金字塔瓦片进行查找。

更进一步优选的,所述基于hbase的影像瓦片存储方法装置包括:

表建立模块,用于建立hbase表,获取金字塔瓦片切片级数;

行列号计算模块,用于建立行列号算法,获取待计算数据,通过行列号算法对该待计算数据进行计算,从计算结果中获取金字塔瓦片的行列号;

写入模块,用于设定rowkey拼接规则,获取随机字符串,通过rowkey拼接规则将金字塔瓦片切片级数、金字塔瓦片的行列号以及随机字符串拼接成rowkey,并根据rowkey将金字塔瓦片写入hbase表中。

第二方面,所述基于hbase的影像瓦片存储方法还包括一种设备,所述设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的基于hbase的影像瓦片存储方法程序,所述基于hbase的影像瓦片存储方法程序配置为实现如上文所述的基于hbase的影像瓦片存储方法的步骤。

第三方面,所述基于hbase的影像瓦片存储方法还包括一种介质,所述介质为计算机介质,所述计算机介质上存储有基于hbase的影像瓦片存储方法程序,所述基于hbase的影像瓦片存储方法程序被处理器执行时实现如上文所述的基于hbase的影像瓦片存储方法的步骤。

本发明的一种基于hbase的影像瓦片存储方法相对于现有技术具有以下有益效果:

(1)通过在建立hbase表时,根据金字塔瓦片切片级数建立预分区,通过rowkey将要用时展示的瓦片存放在同一个分区中,通过这样的方式,可以缩小查询范围,同时提高查询效率;

(2)通过瓦片级数以及瓦片行列号来建立rowkey的二级索引,通过二级索引,可以在每次查询的时候通过二级索引来准确获取rowkey,然后再通过rowkey对瓦片进行精确查找,通过这样的方式,可以提高查找效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例方案涉及的硬件运行环境的设备的结构示意图;

图2为本发明基于hbase的影像瓦片存储方法第一实施例的流程示意图;

图3为本发明基于hbase的影像瓦片存储方法第一实施例的功能模块示意图。

具体实施方式

下面将结合本发明实施方式,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。

如图1所示,该设备可以包括:处理器1001,例如中央处理器(centralprocessingunit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(randomaccessmemory,ram)存储器,也可以是稳定的非易失性存储器(non-volatilememory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的结构并不构成对设备的限定,在实际应用中设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于hbase的影像瓦片存储方法程序。

在图1所示的设备中,网络接口1004主要用于建立设备与存储基于hbase的影像瓦片存储方法系统中所需的所有数据的服务器的通信连接;用户接口1003主要用于与用户进行数据交互;本发明基于hbase的影像瓦片存储方法设备中的处理器1001、存储器1005可以设置在基于hbase的影像瓦片存储方法设备中,所述基于hbase的影像瓦片存储方法设备通过处理器1001调用存储器1005中存储的基于hbase的影像瓦片存储方法程序,并执行本发明实施提供的基于hbase的影像瓦片存储方法。

结合图2,图2为本发明基于hbase的影像瓦片存储方法第一实施例的流程示意图。

本实施例中,所述基于hbase的影像瓦片存储方法包括以下步骤:

s10:建立hbase表,获取金字塔瓦片切片级数。

应当理解的是,hbase是一个高可靠性、高性能、可伸缩的分布式数据库,通过rowkey可以实现非结构化数据的快速查询,rowkey可以理解为关系型数据库的主键,用于标识唯一的行,是由用户指定的一串不重复的字符串,非结构化数据是数据结构不规则或者不完整,没有预定义的数据模型,不方便用数据库二维逻辑表来表现的数据,包括所有格式的办公文档、文本、图片、xml、html、各类报表、图像以及音频信息等等。

应当理解的是,在最开始建立hbase表的过程中,是没有考虑到预分区的,这样就导致在查询的时候需要进行全表扫描,而且数据都是随机存储在hbase表中,查询的速度很慢。所以,在本实施中,在建立hbase表之后,会获取金字塔瓦片切片级数,然后根据金字塔瓦片的切片级数对表进行预分区,分区数由金字塔瓦片切片级数决定,如果切片级数有18级,那么预分区数目就是18个分区,而且金字塔瓦片切片级数与分区的编号是一一对应的,第1级的切片数就对应第1个分区,以此类推,第18级的切片数就对应第18个分区。通过建立分区,可以是要同时展示的瓦片处于同一个区域,在进行瓦片检索时,缩小了需要检索的范围,同时提高了检索效率。

s20:建立行列号算法,获取待计算数据,通过行列号算法对该待计算数据进行计算,从计算结果中获取金字塔瓦片的行列号。

应当理解的是,所述待计算数据包括:地图分辨率、坐标系数据、影像的具体坐标、瓦片像素的宽以及瓦片像素的高,其中地图分辨率在对表进行分区之后,就已经设定完毕,不同分区对应不同的地图分辨率,然后根据影像的具体坐标可以从坐标系数据中找到该影像对应的地图分辨率,然后根据地图分辨率以及影像的具体坐标可以计算出每幅影像在该级别对应的像素宽和高,再利用计算出的影像像素的宽和高除以瓦片像素的宽和高就可以分别得到对应级别瓦片的列号和行号。

应当理解的是,所述行列号算法为:

其中,r代表瓦片的行号,c代表瓦片的列号,kq代表影像像素的宽,gq代表影像像素的高,kw代表瓦片像素的宽,gw代表瓦片像素的高。

所述影像像素的宽和高的计算方法为:

其中,(x,y)代表影像的具体坐标,δ代表该影像的具体坐标对应的地图分辨率。

s30:设定rowkey拼接规则,获取随机字符串,通过rowkey拼接规则将金字塔瓦片切片级数、金字塔瓦片的行列号以及随机字符串拼接成rowkey,并根据rowkey将金字塔瓦片写入hbase表中。

应当理解的是,在获取到金字塔瓦片的行列号之后,就需要拼接出rowkey来将瓦片存入对应的hbase表分区中,本实施例用到的rowkey拼接规则是字符串拼接规则,比如地图级别(一般都是三位数,瓦片级别为1时为001,瓦片级别为10则是101)+行列号+字符串,这样就构成了rowkey。

应当理解的是,在拼接成rowkey之后,系统会根据rowkey将金字塔瓦片写入hbase表对应的分区中,如果需要读取金字塔瓦片时,可以根据瓦片行列号以及瓦片切片级别模糊检索对应的瓦片并读取。模糊检索是指搜索系统自动按照用户输入关键词的同义词进行模糊检索,从而得出较多的结果。

应当理解的是,此时系统将瓦片行列号以及瓦片切片级别作为了rowkey的二级索引标签,在读取瓦片时,是先通过二级索引标签读取对应的rowkey,然后再通过rowkey来读取对应的瓦片。通过这样的方式,既提高了数据安全性,不用担心数据的丢失,同时也提高了整个读写过程的效率。

需要说明的是,以上仅为举例说明,并不对本申请的技术方案构成任何限定。

通过上述描述不难发现,本实施例通过建立hbase表,获取金字塔瓦片切片级数;建立行列号算法,获取待计算数据,通过行列号算法对该待计算数据进行计算,从计算结果中获取金字塔瓦片的行列号;设定rowkey拼接规则,获取随机字符串,通过rowkey拼接规则将金字塔瓦片切片级数、金字塔瓦片的行列号以及随机字符串拼接成rowkey,并根据rowkey将金字塔瓦片写入hbase表中。本实施例通过在建立hbase表时,对表进行预分区,然后通过rowkey将金字塔瓦片写入对应的分区中,同时利用瓦片级别以及瓦片行列号建立二级索引,能够更加快速且精确对数据进行存取,同时也提高了数据安全性。

此外,本发明实施例还提出一种基于hbase的影像瓦片存储方法装置。如图3所示,该基于hbase的影像瓦片存储方法装置包括:表建立模块10、行列号计算模块20、写入模块30。

表建立模块10,用于建立hbase表,获取金字塔瓦片切片级数;

行列号计算模块20,用于建立行列号算法,获取待计算数据,通过行列号算法对该待计算数据进行计算,从计算结果中获取金字塔瓦片的行列号;

写入模块30,用于设定rowkey拼接规则,获取随机字符串,通过rowkey拼接规则将金字塔瓦片切片级数、金字塔瓦片的行列号以及随机字符串拼接成rowkey,并根据rowkey将金字塔瓦片写入hbase表中。

此外,需要说明的是,以上所描述的装置实施例仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的,此处不做限制。

另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的基于hbase的影像瓦片存储方法,此处不再赘述。

此外,本发明实施例还提出一种介质,所述介质为计算机介质,所述计算机介质上存储有基于hbase的影像瓦片存储方法程序,所述基于hbase的影像瓦片存储方法程序被处理器执行时实现如下操作:

s1,建立hbase表,获取金字塔瓦片切片级数;

s2,建立行列号算法,获取待计算数据,通过行列号算法对该待计算数据进行计算,从计算结果中获取金字塔瓦片的行列号;

s3,设定rowkey拼接规则,获取随机字符串,通过rowkey拼接规则将金字塔瓦片切片级数、金字塔瓦片的行列号以及随机字符串拼接成rowkey,并根据rowkey将金字塔瓦片写入hbase表中。

进一步地,所述基于hbase的影像瓦片存储方法程序被处理器执行时还实现如下操作:

建立hbase表,获取金字塔瓦片切片级数,根据金字塔瓦片切片级数对hbase表进行预分区,金字塔瓦片切片技术与分区的编号一一对应。

进一步地,所述基于hbase的影像瓦片存储方法程序被处理器执行时还实现如下操作:

所述待计算数据包括:地图分辨率、坐标系数据、影像的具体坐标、瓦片像素的宽以及瓦片像素的高,根据影像的具体坐标从坐标系数据中找到该影像的具体坐标对应的地图分辨率。

进一步地,所述基于hbase的影像瓦片存储方法程序被处理器执行时还实现如下操作:

所述行列号算法为:

其中,r代表瓦片的行号,c代表瓦片的列号,kq代表影像像素的宽,gq代表影像像素的高,kw代表瓦片像素的宽,gw代表瓦片像素的高。

进一步地,所述基于hbase的影像瓦片存储方法程序被处理器执行时还实现如下操作:

所述影像像素的宽和高的计算方法为:

其中,(x,y)代表影像的具体坐标,δ代表该影像的具体坐标对应的地图分辨率。

进一步地,所述基于hbase的影像瓦片存储方法程序被处理器执行时还实现如下操作:

设定字符串拼接规则作为rowkey拼接规则,获取随机字符串,通过字符串拼接规则将金字塔瓦片切片级数、金字塔瓦片的行列号以及随机字符串拼接成rowkey,并根据rowkey将金字塔瓦片写入hbase表对应的分区中。

进一步地,所述基于hbase的影像瓦片存储方法程序被处理器执行时还实现如下操作:

获取金字塔瓦片的行列号以及金字塔瓦片切片级数,将金字塔瓦片的行列号以及金字塔瓦片切片级数作为该金字塔瓦片的索引标签,根据该标签从hbase表对该金字塔瓦片进行查找。

以上所述仅为本发明的较佳实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1