本发明专利技术公开了一种基于空间动态格网的空间分表方法,包括以下步骤:S1、创建分表结果的存储结构;S2、根据数据空间范围以及分表记录数上限确定初始层级以及初始格网集合;S3、对分表空间范围内的数据进行转存/继续分表操作。本发明专利技术采用基于地图金字塔模型的动态格网以及格网内所包含的记录数量来综合确定分表的范围,并通过一张分表总表来统一存储跨多个分表的记录,以达到均衡分表容量以及保证矢量数据几何完整性的目的。数据几何完整性的目的。数据几何完整性的目的。
【技术实现步骤摘要】
基于空间动态格网的空间分表方法
[0001]本专利技术属于地理信息系统
,特别涉及一种基于空间动态格网的空间分表方法。
技术介绍
[0002]随着数据采集技术的不断进步,新一代测绘与设计数据和空间大数据愈发膨胀,地理信息系统(GIS,Geographic Information System)软件对其存储、处理和分析面临巨大挑战。当前地理信息数据中的矢量数据主要采用关系数据库存储,通过数据库扩展的方式赋予数据库空间数据存储能力以及空间分析的能力。
[0003]关系型数据库本身比较容易成为地理信息系统数据存储和访问的瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000万或100GB以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。对于空间数据来说其空间搜索的效率远低于属性的搜索效率,对性能优化的需求更加迫切。此时就要考虑对其进行切分,切分的目的就在于减少数据库的负担,缩短查询时间。
[0004]数据切分根据其切分类型,可以分为两种方式:垂直(纵向)切分和水平(横向)切分。
[0005]数据切分包括:分库和分表两种。本
技术实现思路
主要是针对单表数据量过大进行优化,只涉及分表不涉及分库。
[0006]垂直分表是基于数据库中的“列”进行,某个表字段较多,可以新建一张扩展表,将不经常用或字段长度较大的字段拆分出去到扩展表中。在字段很多的情况下(例如一个大表有100多个字段),通过“大表拆小表”,更便于开发与维护。数据库以行为单位将数据加载到内存中,这样表中字段长度较短且访问频率较高,内存能加载更多的数据,命中率更高,减少了磁盘IO,从而提升了数据库性能。如图1所示。
[0007]当一个应用难以再细粒度的垂直切分,或切分后数据量行数巨大,存在单库读写、存储性能瓶颈,这时候就需要进行水平切分了。
[0008]水平分表,是根据表内数据内在的逻辑关系,将同一个表按不同的条件分散到多个数据库或多个表中,每个表中只包含一部分数据,从而使得单个表的数据量变小,达到分布式的效果。如图2所示。
[0009]当前常用的空间分表方法主要借鉴了空间索引的思路,主要包括两种方法:采用单元网格索引策略的按固定的格网范围进行空间分表,采用R树索引空间划分策略的按R树范围进行空间分表。
[0010]按固定的格网范围进行空间分表原理比较简单,设置格网划分的总体空间范围以及格网的大小,构建具有唯一编号均匀的格网记录,格网的几何图形是一个矩形,矩形的边平行于坐标轴,将与格网矩形范围相交的数据保存到一张分表中,同时存储分表与格网记录的关联关系。
[0011]采用固定格网进行空间分表的优势:1)格网划分规则简单,构建容易;2)分表空间
范围大小统一,通过查询范围可以很快推算出所覆盖的分表,对需要查询的分表进行快速定位。
[0012]存在问题:1)因数据空间分布不均匀,会造成分表中的数据数量不均匀,如果想保持分表内数据量较小就要将格网的范围设置小,这样就会产生大量的分表;如果格网范围设置的比较大,就会造成某些分表内的数据很多,影响查询效率;2)对于几何图形(线或面)跨越多个格网的记录,如果对其用格网范围进行裁剪,查询时就要对同一记录的几何图形进行拼接处理;如果不对其进行裁剪,查询时就要对查询结果进行去重。
[0013]R树是平衡树的结构,最早是由A.Guttman在1984年提出的,随后又有了许多变型,构成了由R树,R+树,Hibert R树,SR树等组成的R系列树空间索引。
[0014]R树索引引进了最小外接矩形的概念,它可以将地图上的几何图形(点,线,面)构建最小的外接矩形,这样点线面的数据都转换成了一个相同的图形,那就是矩形,R数主要处理三个问题:第一、根据点线面构建最小外接矩形;第二,如何根据外接矩形对叶子节点进行检索,第三,如果往R树新增或者删除叶子节点的时候,如何重新构建R树来保持R树的平衡。
[0015]R树的构建过程为:第一步就是对这些地理信息元素进行最小外接矩形的构建;第二步就是在这些最小外接矩形之上再进行外接矩形的构建,直到构建到R树最顶层的根节点。
[0016]R树的每个结点不存放空间要素的值。叶结点中存储该结点对应的空间要素的外包络矩形和空间要素标识,这个外包络矩形是个广义上的概念,二维上是矩形,三维空间上就是长方体,以此类推到高维空间。非叶结点(叶结点的父亲、祖先结点)存放其子结点集合的整体外包络矩形和指向其子结点的指针。R树的构建过程以及结果参见图3。
[0017]采用R树模型进行空间分表的优势:1)通过控制根节点的汇总数量(即节点包含的记录数达到给定的记录数后就不再向上进行递归汇总),能够很好控制分表内数据的数量,分表的记录数会比较均匀;2)查找过程通过节点沿树形结构上溯,很快能够锁定要查询的范围,查询效率比较高。
[0018]存在问题:1)R树构建过程是一个递归过程,逻辑比较复杂;2)R树分表的空间范围非固定大小,且可能存在重叠,不能直观地了解分表的空间覆盖范围;3)几何图形很大的记录会将空间分表的范围设定的很大,其覆盖范围内的记录可能会超出设定的单表最大记录容量。
技术实现思路
[0019]本专利技术的目的在于克服现有技术的不足,提供一种采用基于地图金字塔模型的动态格网以及格网内所包含的记录数量来综合确定分表的范围,并通过一张分表总表来统一存储跨多个分表的记录,以达到均衡分表容量以及保证矢量数据几何完整性的空间分表方法。
[0020]本专利技术的目的是通过以下技术方案来实现的:基于空间动态格网的空间分表方法,包括以下步骤:
[0021]S1、创建分表结果的存储结构;
[0022]S2、根据数据空间范围以及分表记录数上限确定初始层级以及初始格网集合;
[0023]S3、对分表空间范围内的数据进行转存/继续分表操作。
[0024]步骤S1中,创建用于存储分表元数据便于快速查询的分表索引表,其结构包括Id、原始表名ori_table、分表表名sub_table、空间网格层级z、所在空间网格的列号x、所在空间网格的行号y、is_overlap属性和空间网格的范围extent;
[0025]通过is_overlap属性来区分该表是总表还是分表,当值为true时为总表,当值为false时为分表;
[0026]分表表名命名规则为:{sub_table}_{z}_{x}_{y},总表表名命名规则为:
[0027]{ori_table}_overlap;
[0028]分表、总表表结构和原始表结构保持一致,记录的标识也保持一致;分表用来存储记录几何图形完全包含在分表空间范围内的记录;总表用于存储记录几何图形跨分表范围的记录。
[0029]所述步骤S2包括如下子步骤:
[0030]S21、设置分表的记录数上限maxCnt;
[0031]S22、读取数据空间范围dataExtent以及记录数dataCnt,其中da本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.基于空间动态格网的空间分表方法,其特征在于,包括以下步骤:S1、创建分表结果的存储结构;S2、根据数据空间范围以及分表记录数上限确定初始层级以及初始格网集合;S3、对分表空间范围内的数据进行转存/继续分表操作。2.根据权利要求1所述的基于空间动态格网的空间分表方法,其特征在于,所述步骤S1中,创建用于存储分表元数据便于快速查询的分表索引表,其结构包括Id、原始表名ori_table、分表表名sub_table、空间网格层级z、所在空间网格的列号x、所在空间网格的行号y、is_overlap属性和空间网格的范围extent;通过is_overlap属性来区分该表是总表还是分表,当值为true时为总表,当值为false时为分表;分表表名命名规则为:{sub_table}_{z}_{x}_{y},总表表名命名规则为:{ori_table}_overlap;分表、总表表结构和原始表结构保持一致,记录的标识也保持一致;分表用来存储记录几何图形完全包含在分表空间范围内的记录;总表用于存储记录几何图形跨分表范围的记录。3.根据权利要求1所述的基于空间动态格网的空间分表方法,其特征在于,所述步骤S2包括如下子步骤:S21、设置分表的记录数上限maxCnt;S22、读取数据空间范围dataExtent以及记录数dataCnt,其中dataExtent是一个矩形,由矩形四角坐标[(minX,minY),(minX,maxY),(maxX,maxY),(maxX,minY)]表示;S23、计算初始分表数量:其中,tbCnt为初始分表的数量;Ceiling方法为求大于或等于指定的十进制数的最小整数值;S24、计算分表的初始层级格网,采用GoogleMap全球金字塔模型作为格网划分的规则,格网编号采用ZXY规则,其中Z表示层级号,取值范围为[0,n];X表示列号,取值范围为[0,2
n
‑
1];Y表示行号,取值范围为[0,2
n
‑
1];计算分表的初始层级格网具体包括以下步骤:S241、设置层级编号n初始值为1,预期分表数量tbCnt;S242、计算数据范围面积与层级格网面积的比值r,计算公式为:其中,n为层级编号;r为数据范围面积与层级为n的格网面积的比值;R为地球半径,取值6378137米;S243、若比值r≥2
2n
,层级编号n递增1,跳转到S242;当比值r<2
【专利技术属性】
技术研发人员:王进宝,李庆明,徐林,
申请(专利权)人:成都瀚涛天图科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。