掌桥专利:专业的专利平台
掌桥专利
首页

时空数据管理方法、系统、主机及计算机可读存储介质

文献发布时间:2023-06-19 11:35:49


时空数据管理方法、系统、主机及计算机可读存储介质

技术领域

本申请涉及数据处理领域,尤其是涉及一种时空数据管理方法、系统、主机及计算机可读存储介质。

背景技术

随着地理信息矢量和影像数据的不断积累,数据量不断增加,相关技术一般是将地理信息数据入库至Oracle、SQLServer、PostgreSQL等关系型数据库。

但是,在读取地理信息数据时,利用关系型数据库自有的索引规则进行检索,已经不能满足海量时空数据管理需求,主要表现为:一是横向扩展能力不足,一台服务器的存储容量和磁盘输入输出(IO)存在上限,无法满足海量时空数据高效存储的需求,需联合多台服务器进行同时处理,由于关系型数据库设计特点,没有考虑分片存储,不具备很好的原生横向扩展能力,无法较好地利用多台服务器性能;二是索引性能的局限性,当数据量增加以后,检索耗时也随之增加,无法简单地通过增加服务器而提升检索性能。

因此,以上相关技术将时空数据存入关系型数据库,无法满足海量时空数据的存储需求,且在数据库中检索时空数据的效率低下。

发明内容

为了有助于提高时空数据的存储能力及检索效率,本申请提供了一种时空数据管理方法、系统、主机及计算机可读存储介质。

第一方面,本申请提供一种时空数据管理方法,采用如下的技术方案:

一种时空数据管理方法,包括:

获取时空数据;

对所述时空数据进行分层,根据空间编码规则对分层后的所述时空数据进行编码得到主键;

根据分片存储规则,按照所述主键对所述时空数据进行划分后存储至列式数据库中的服务器,所述列式数据库具有多台服务器。

通过采用上述技术方案,获取时空数据,通过时空数据展示的精度和用途等对时空数据进行分层,再根据空间编码规则对分层后的时空数据进行编码之后,得到主键,列式数据库基于分片存储的原理,具有多个服务器,在存储时空数据之时,根据分片存储规则,按照主键对时空数据进行划分后存储至列式数据库中的服务器,使得在读取时空数据时,能够通过主键定位到服务器存储的时空数据。与相关技术相比,由于时空数据存储到列式数据库采用的是分片存储规则,海量时空数据的存储需求增加时,通过增加服务器即可实现存储容量的扩展;空间编码规则将复杂的时空数据进行编码得到主键后,根据主键就可以检索得到对应的时空数据,避免了检索时数据库的全表扫描,降低了输入输出负载;列式数据库使得时空数据是列式存储,读取数据时,不需要随机读取,减少了寻址定位时间。因此,满足了海量时空数据的存储需求,并且提高了时空数据的检索效率。

可选的,所述对所述时空数据进行分层,根据空间编码规则对分层后的所述时空数据进行编码得到主键,包括:

根据预设数据分层制度对所述时空数据进行层级划分,确定所述时空数据的层级数;

根据空间编码规则对每一个层级数对应的所述时空数据进行编码得到主键。

通过采用上述技术方案,预设数据分层制度可以按照时空数据的精度和用途,例如,层级数越高表明数据精度越高,根据预设数据分层制度对时空数据进行层级划分,就能确定时空数据的层级数,空间编码规则是将时空数据的空间坐标转换为一维字符串,因此,根据空间编码规则对每一个层级数对应的时空数据进行编码得到主键,从而实现对不同层级的时空数据分别进行空间编码。

可选的,所述根据空间编码规则对每一个层级数对应的所述时空数据进行编码得到主键,包括:

对每一个层级数对应的所述时空数据进行平面投影,得到平面空间;

将所述平面空间依次划分为多个网格;

根据空间编码规则对每个网格进行编码,得到一维字符信息;

根据所述一维字符信息生成每个网格对应的时空数据的主键。

通过采用上述技术方案,将每一个层级数对应的时空数据进行平面投影,得到平面空间,平面空间中每一个平面坐标都与时空数据的空间范围存在一个对应关系,将平面空间依次划分为多个网格,根据空间编码规则对每一个网格进行编码,编码时可以按照希尔伯特(Hilbert)空间填充曲线依次对网格编码,也可以按照连续空间特定规则对网格编码,最后得到的所有网格的编码值为一维字符信息,将一维字符信息中每个网格对应的编码值作为主键。将复杂的时空数据投影后的平面二维坐标信息转换为一维的主键,便于索引排序和检索,提升了通过索引进行检索的效率。

可选的,所述根据空间编码规则对每个网格进行编码,得到一维字符信息,包括:

根据希尔伯特空间填充曲线对所有网格进行依次编码,得到所有网格对应的一维数值;

根据所有网格的一维数值得到所述时空数据的一维字符信息。

通过采用上述技术方案,平面空间中每个网格都对应到特定的时空数据,根据Hilbert空间填充曲线编码,例如,从左下角的网格开始标记为0,按照Hilbert空间填充曲线依次完成其他网格的编码,最后一个右下角编码值为2

可选的,所述根据空间编码规则对每个网格进行编码,得到一维字符信息,包括:

根据连续空间特定规则对所有网格进行编码,得到所有网格对应的一维数值;

根据所有网格的一维数值得到所述时空数据的一维字符信息。

通过采用上述技术方案,连续空间特定规则是指将连续的网格按照特定规则进行编码,对于编码值的设置不做限定,那么通过连续空间特定规则的编码,得到所有网格对应的一维数值,由于是将连续的网格按照特定规则进行编码,方便了后续生成的主键的排序及建立索引,以及时空数据中相邻数据存储时能够在相近的存储单元中。

可选的,所述根据分片存储规则,按照所述主键对所述时空数据进行划分后存储至列式数据库中的服务器,包括:

根据所述主键的数量确定索引区间;

根据分片存储规则及所述索引区间将所述时空数据分片存储至对应的服务器。

通过采用上述技术方案,根据主键的数量就能确定划分了多少网格,每个网格对应的是时空数据中的一条数据,那么一条数据对应一个索引,按照主键的数量就能确定索引区间,按照分片存储规则,每个服务器都配置了不同存储区间,将索引区间与存储区间进行比对,确定每个主键及对应的时空数据存储到的服务器,从而完成时空数据的分片存储。

可选的,方法还包括:

当需要读取目标时空数据时,确定所述目标时空数据的目标层级数及对应的目标网格;

根据所述空间编码规则、所述目标层级数及所述目标网格,得到目标主键;

根据所述目标主键确定目标服务器;

从所述目标服务器中读取与所述目标主键对应的目标时空数据。

通过采用上述技术方案,当需要从列式数据库中读取目标时空数据时,先确定目标时空数据的目标层级数及目标网格,目标层级数和目标网络的确定方式都是依据按照时空数据存储时的方式,再通过空间编码规得到目标网格的目标主键,由于是分片存储规则,那么通过目标主键就能确定目标时空数据存储的目标服务器,按照目标主键与目标时空数据的关联关系,从目标服务器中读取出目标时空数据。

第二方面,本申请提供一种时空数据管理系统,采用如下的技术方案:

一种时空数据管理系统,包括:

系统接口模块,用于获取时空数据;

层级编码模块,用于对所述时空数据进行分层,根据空间编码规则对分层后的所述时空数据进行编码得到主键;

存储模块,用于根据分片存储规则,按照所述主键对所述时空数据进行划分后存储至列式数据库中的服务器,所述列式数据库具有多台服务器。

通过采用上述技术方案,时空数据管理系统的系统接口模块获取时空数据,层级编码模块通过时空数据展示的精度和用途等对时空数据进行分层,再根据空间编码规则对分层后的时空数据进行编码之后,得到主键,列式数据库基于分片存储的原理,具有多个服务器,在存储模块存储时空数据之时,根据分片存储规则,按照主键对时空数据进行划分后存储至列式数据库中的服务器,使得在读取时空数据时,能够通过主键定位到服务器存储的时空数据。与相关技术相比,由于时空数据存储到列式数据库采用的是分片存储规则,海量时空数据的存储需求增加时,通过增加服务器即可实现存储容量的扩展;空间编码规则将复杂的时空数据进行编码得到主键后,根据主键就可以检索得到对应的时空数据,避免了检索时数据库的全表扫描,降低了输入输出负载;列式数据库使得时空数据是列式存储,读取数据时,不需要随机读取,减少了寻址定位时间。因此,满足了海量时空数据的存储需求,并且提高了时空数据的检索效率。

第三方面,本申请提供一种主机,包括:

存储器及处理器;

所述存储器上存储有能够被所述处理器加载并执行以上第一方面所述时空数据管理方法的计算机程序。

第四方面,本申请提供一种计算机可读存储介质,存储有能够被处理器加载并执行以上第一方面所述时空数据管理方法的计算机程序。

综上所述,本申请包括以下至少一种有益技术效果:

1.由于时空数据存储到列式数据库采用的是分片存储规则,海量时空数据的存储需求增加时,通过增加服务器即可实现存储容量的扩展;空间编码规则将复杂的时空数据进行编码得到主键后,根据主键就可以检索得到对应的时空数据,避免了检索时数据库的全表扫描,降低了输入输出负载;列式数据库使得时空数据是列式存储,读取数据时,不需要随机读取,减少了寻址定位时间,因此,满足了海量时空数据的存储需求,并且提高了时空数据的检索效率;

2.将复杂的时空数据投影后的平面空间,进行网格划分,通过Hilbert空间填充曲线或连续空间特定规则将二维坐标信息转换为一维数值字符串的主键,便于时空数据的索引排序和检索,提升了检索效率。

附图说明

图1是本申请其中一实施例的时空数据管理方法的第一流程示意图。

图2是本申请其中一实施例的时空数据管理方法的第二流程示意图。

图3是本申请其中一实施例的读取时空数据的流程示意图。

图4是本申请其中一实施例的时空数据管理系统的结构示意图。

附图标记说明:401、系统接口模块;402、层级编码模块;403、存储模块。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图1-4及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。

本申请实施例公开一种时空数据管理方法。

实施例1

参照图1,该方法的执行步骤包括:

101,获取时空数据。

其中,在地理信息领域,时空数据主要包括了矢量数据和影像数据。

102,对时空数据进行分层,根据空间编码规则对分层后的时空数据进行编码得到主键。

其中,时空数据分为不同的精度和用途,因此需要对时空数据先进行分层,不同的层级的时空数据分别利用空间编码规则进行编码,得到主键。每个主键都对应到特定的时空数据。

103,根据分片存储规则,按照主键对时空数据进行划分后存储至列式数据库中的服务器。

其中,列式数据库可以是分布式列式数据库,具有多个服务器,列式服务器还可以是Redis、Cassandra、Hbase及Accumulo等具有列式数据库分片存储、按列集中存储的特性的数据库,Redis是一个分布式非关系型数据库;Cassandra是一个混合型的非关系的数据库,采用分布式的设计;HBase是一个分布式的、面向列的开源数据库;accumulo是一个分布式数据存储和检索系统。在存储时空数据之时,根据分片存储规则,按照主键对时空数据进行划分,即将时空数据划分为多个区间,每个区间存储至列式数据库中的一个服务器,并且存储时空数据时,关联的主键也需要存储到同一个服务器中。

实施例1的实施原理为:通过时空数据展示的精度和用途等对时空数据进行分层,再根据空间编码规则对分层后的时空数据进行编码得到主键,在存储时空数据之时,根据分片存储规则,按照主键将时空数据划分为多个区间,每个区间存储至列式数据库中的一个服务器,并且存储时空数据时,关联的主键也需要存储到同一个服务器中,使得在读取时空数据时,能够通过主键定位到服务器存储的时空数据。与相关技术相比,由于时空数据存储到列式数据库采用的是分片存储规则,海量时空数据的存储需求增加时,通过增加服务器即可实现存储容量的扩展;空间编码规则将复杂的时空数据进行编码得到主键后,根据主键就可以检索得到对应的时空数据,避免了检索时数据库的全表扫描,降低了输入输出负载;列式数据库使得时空数据是列式存储,读取数据时,不需要随机读取,减少了寻址定位时间。因此,满足了海量时空数据的存储需求,并且提高了时空数据的检索效率。

实施例2

参照图2,本实施例与以上实施例1的不同之处在于,对实施例1中的步骤102进行详细的说明,具体的执行步骤包括:

201,获取时空数据。

202,根据预设数据分层制度对时空数据进行层级划分,确定时空数据的层级数。

其中,预设数据分层制度是针对时空数据的精度和用途,预设的层级判定原则,例如数据精度越高,则层级数越大。按照预设数据分层制度对时空数据进行层级划分就能确定时空数据的层级数L。

203,对每一个层级数对应的时空数据进行平面投影,得到平面空间。

其中,在将时空数据进行分层之后,对于每一个层级数的时空数据,分别进行处理,以一个层级数的时空数据为例进行说明。平面投影在实际应用时经常采用的是WEB墨卡托投影,墨卡托投影又名等角正轴圆柱投影,由荷兰地图学家墨卡托在1569年拟定,假设地球被围在一个中空的圆柱里,其赤道与圆柱相接触,然后再假想地球中心有一盏灯,把球面上的图形投影到圆柱体上,再把圆柱体展开,这就是一幅标准纬线为零度(即赤道)的“墨卡托投影”绘制出的世界地图。从球到平面,有个固定的转换公式。因此,使用WEB墨卡托或者其他投影可以将时空数据投影为一个平面空间。

204,将平面空间依次划分为多个网格。

其中,平面空间是二维平面,将平面空间依次划分为多个网格,网格的划分可以参考层级数,例如,层级数越高,说明数据精度越高,那么就需要划分的网格越多。

205,根据空间编码规则对每一个网格进行编码,得到一维字符信息。

其中,空间编码规则可以是Hilbert空间填充曲线,也可以是连续空间特定规则,其中,Hilbert空间填充曲线是一种能填充满一个平面正方形的分形曲线;连续空间特定规则是指将连续的网格按照特定规则进行编码,对于编码值的设置不做限定;

以Hilbert空间填充曲线为例:

从左下角的网格开始标记为0,按照Hilbert空间填充曲线依次完成其他网格的编码,最后一个右下角编码值为2

206,根据一维字符信息生成每个网格的主键。

其中,一维字符信息是对多个网格编码后得到的一维数值组成的,将一维字符信息中每个一维数值作为对应网格的主键,主键即该网格对应的时空数据。

207,根据分片存储规则,按照主键对时空数据进行划分后存储至列式数据库中的服务器。

其中,分片存储时空数据的实施步骤,具体包括:

(1),根据主键的数量确定索引区间。

其中,假设主键的数量具有M个,即表明时空数据共有M条数据,每条数据对应到平面空间上的一个特定网格,索引区间就是[1,M]。

(2),根据分片存储规则及索引区间将时空数据分片存储至对应的服务器。

其中,假设列式数据库中共有P个服务器,并且M>P,根据分片存储规则,按照分片存储规则,每个服务器都配置了不同存储区间,例如,[1,Z]的存储到第1台服务器,(Z,2Z]的存储到第2台服务器,依次类推直到第P台服务器,如果M=Z-1,那么全部的主键和主键对应的时空数据都存储到第1台服务器中;如果M=Z+1,那么[1,Z]的主键和主键对应的时空数据存储到第1台服务器中,Z+1的主键和主键对应的时空数据存储到第2台服务器中;如果M=2Z+2,那么[1,Z]的主键和主键对应的时空数据存储到第1台服务器中,(Z,2Z]的主键和主键对应的时空数据存储到第2台服务器中,2Z+1和2Z+2的主键和主键对应的时空数据存储到第3台服务器中。

时空数据中矢量数据包括元数据信息和实体数据两类,元数据信息包括生产年份、数学参考及生产标准等,时空数据存储到服务器时,矢量数据的主键与实体数据结构表如下表1所示:

表1 矢量数据的主键与实体数据结构表

主键和矢量数据实际存入列式数据库的结构为:

KEY1|KEY2|……GEOMETRY1|GEOMETRY2|……ATTRIBUTE1|ATTRIBUTE2|……ATTRIBUTE1N|ATTRIBUTE2N|……;

时空数据中影像数据包括元数据信息和实体数据,元数据信息包括生产年份、数学参考、分辨率及波段信息等,影像数据的主键与实体数据结构表如下表2所示:

表2 影像数据的主键与实体数据结构表

主键和影像数据实际存入列式数据库的结构为:

KEY1|KEY2|……IMG_BYTE_DATA1|IMG_BYTE_DATA2|……。

实施例2的实施原理为:获取到时空数据后,按照预设数据分层制度对时空数据进行层级划分,确定时空数据的层级数,对于每一个层级数的时空数据采用WEB墨卡托投影技术进行平面投影为一个平面空间,将平面空间依次划分为多个网格,根据空间编码规则对每一个网格进行编码得到一维字符信息,空间编码规则可以是Hilbert空间填充曲线,也可以是连续空间特定规则,一维字符信息是对多个网格编码后得到的一维数值组成的,将一维字符信息中每个一维数值作为对应网格的主键,主键即该网格对应的时空数据,根据分片存储规则将主键及主键对应的时空数据进行划分后,分片存储至列式数据库中的服务器。将复杂的时空数据投影后的平面二维坐标信息转换为一维的主键,便于索引排序和检索,提升了通过索引进行检索的效率。通过Hilbert空间填充曲线将时空数据的二维坐标编码为一维数值,并且是按照顺序依次编码,方便了后续生成的主键的排序及建立索引,保证了局部空间聚类,以及时空数据中相邻数据存储时能够在相近的存储单元中。

实施例3

参照图3,本实施例与以上实施例1和实施例2的不同之处在于,在以上实施例中完成了时空数据存储过程后,需要从列式数据库读取时空数据的时候,具体的步骤包括:

301,当需要读取目标时空数据时,确定目标时空数据的目标层级数及对应的目标网格。

其中,如果用户需要从列式数据库中读取目标时空数据时,通过以上实施例2中存储时空数据时候的记录的层级数和网格等信息,确定目标时空数据的目标层级数,以及目标时空数据对应的目标网格。

302,根据空间编码规则、目标层级数及目标网格,得到目标主键。

其中,结合实施例2中主键的生成过程,结合空间编码规则、目标层级数及目标网格,得到目标时空数据对应的目标主键。

303,根据目标主键确定目标服务器。

其中,在已知了分片存储规则的情况,通过判断目标主键所处的索引区间落入哪个服务器的存储区间,从而确定目标服务器。

304,从目标服务器中读取与目标主键对应的目标时空数据。

其中,由于在存储时,主键和主键对应的时空数据是关联存储到同一个服务器中的,那么确定了目标服务器之后,只需要检索目标服务器中与目标主键关联的目标时空数据,就能读取出目标主键对应的目标时空数据。

实施例3的实施原理为:通过获取目标时空数据对应的层级数和主键,确定存储的服务器,使用主键检索定位到服务器中的目标时空数据,分布式列式数据库的特性,可以使得一次性全部取出时空数据。通过读取时空数据,可以证明读取过程减少了磁盘IO读取次数,提高了检索速度。

本申请实施例还公开一种空间数据管理系统。

实施例4

参照图4,该系统包括:

系统接口模块401,用于获取时空数据;

层级编码模块402,用于对时空数据进行分层,根据空间编码规则对分层后的时空数据进行编码得到主键;

存储模块403,用于根据分片存储规则,按照主键对时空数据进行划分后存储至列式数据库中的服务器,列式数据库具有多台服务器。

实施例4的实施原理为:系统接口模块获取时空数据,层级编码模块402通过时空数据展示的精度和用途等对时空数据进行分层,再根据空间编码规则对分层后的时空数据进行编码得到主键,存储模块403在存储时空数据之时,根据分片存储规则,按照主键将时空数据划分为多个区间,每个区间存储至列式数据库中的一个服务器,并且存储时空数据时,关联的主键也需要存储到同一个服务器中,使得在读取时空数据时,能够通过主键定位到服务器存储的时空数据。与相关技术相比,由于时空数据存储到列式数据库采用的是分片存储规则,海量时空数据的存储需求增加时,通过增加服务器即可实现存储容量的扩展;空间编码规则将复杂的时空数据进行编码得到主键后,根据主键就可以检索得到对应的时空数据,避免了检索时数据库的全表扫描,降低了输入输出负载;列式数据库使得时空数据是列式存储,读取数据时,不需要随机读取,减少了寻址定位时间。因此,满足了海量时空数据的存储需求,并且提高了时空数据的检索效率。

需要说明的是,实施例4中的层级编码模块402及存储模块403还用于执行以上时空数据管理方法的实施例中的步骤。

本申请还提供一种主机,包括:

存储器及处理器;

存储器上存储有能够被处理器加载并执行以上实施例1-3中时空数据管理方法的计算机程序。

本申请还提供一种计算机可读存储介质,存储有能够被处理器加载并执行以上实施例1-3中时空数据管理方法的计算机程序。

计算机可读存储介质例如包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上均为本申请的较佳实施例,并非依此限制本申请的保护范围,本说明书(包括摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。

相关技术
  • 时空数据管理方法、系统、主机及计算机可读存储介质
  • 基于招商活动的蓄客数据管理方法、系统、计算机设备及计算机可读存储介质
技术分类

06120112986324