数据库空间分片复制方法及系统的制作方法

文档序号:6542885阅读:213来源:国知局
数据库空间分片复制方法及系统的制作方法
【专利摘要】本发明涉及空间数据库【技术领域】,公开了一种数据库空间分片复制方法及系统。该方法包括步骤:将目标分布式数据库按指定的空间分片方案进行部署;在目标分布式数据库的源数据库空间表中捕获空间对象记录所发生的变化;将变化后空间对象记录的空间位置信息与空间分片规则进行空间关系判断,如满足划分的空间位置关系,则判定当前变化后空间对象记录需复制到对应空间分片所在的目的数据库;根据数据传播定义,将变化后空间对象记录复制给目的数据库。本发明将空间数据按空间位置特征进行分片存储,并按指定的空间关系规则实现复制,从而提高了分布式环境下空间数据的更新同步效率,支撑维护空间对象的全局一致性,并简化空间分布式应用。
【专利说明】数据库空间分片复制方法及系统
【技术领域】
[0001]本发明涉及空间数据库【技术领域】,特别涉及一种数据库空间分片复制方法及系统。
【背景技术】
[0002]随着地理信息系统(GIS)、遥感(RS)和全球卫星导航系统(GNSS)技术的快速发展,地理信息应用逐渐广泛,涉及市政管理、应急反应、健康医疗、交通、能源、通信、商业应用等各大领域。作为地理信息应用的核心基础,地理空间数据主要记录道路、房屋、河流等各类地理实体的空间位置信息以及相关属性信息。与常规通用关系型数据不同,地理空间数据区域特征明显、结构复杂(非结构化)且空间多维(X,y,z),因此,传统关系型数据库技术尤其是分布式数据处理技术面临诸多挑战。
[0003]分布式数据库系统的存储主要有两种方式一分片和复制。分片(fragmentation)就是系统把数据划分为几个片(或几个部分),各片存储在不同的节点上,以实现各片数据的分布式存取。所谓复制(replication),广义上是指将数据和数据库对象从一个数据库复制和分发到另一个数据库的过程,而狭义上主要用于将同一数据的多个副本存放到多个节点上,这样,在其中一个节点出现故障时,可以通过访问存放在另外节点上的副本,使系统可以正常工作。在实际应用中,通常是将两者结合在一起,先对数据进行分片,然后将分片进行复制。
[0004]传统的数据库分片由于处理的是通用关系型数据,因此主要根据键值的子集进行数据划分,一个基本原则是分片不相交原则,即各分片中的记录不存在交集(这里主要指水平分片),以避免数据同步的复杂度给系统更新或使用带来隐患。基于该原则,传统的复制方式也只是简单地将源数据或源分片数据按副本方式备份存储/更新,即使通过指定键值子集实现非副本方式复制,也不存在分片数据间的复杂关系和同步问题。
[0005]但是,传统数据库分片和复制方式并不适合存储和处理地理空间数据。鉴于地理信息与身俱来的按空间区域分布特性,在分布式应用中,地理空间数据更多需要按空间位置特征进行分片存储,例如,节点a地图库包含全国范围数据,节点b地图库包含北京区域数据,节点c地图库包含河北区域数据,且b和c相邻区域数据可能需要部分重叠并能够更新后同步共享(出于数据采集边界的模糊性或周边缓冲出图的需要等)。此类空间分片存储模式具有以下特殊性:(1)需要按空间位置特征进行分片存储而不是按某一键值的划分;
(2)非副本复制,即a\b\c数据均不同。(3)分片存在空间意义上的“交集”,即a空间上包含(b、c),b空间相交C。(4)非传统的键值子集复制,即a\b\c数据由于保存的是空间对象记录,不存在直接的键值子集关系。因此,要实现abc三个节点的分片部署和数据更新同步,如采用传统的数据库分片与复制技术,要进行空间多维向属性一维的编码转换,不但维护、实现难度较大、且数据一致性和性能无法保证。

【发明内容】
[0006]针对传统数据库系统复制技术主要针对通用关系型数据,只能按副本复制或按键值子集复制而不支持按空间位置关系进行复制问题,提出了一种数据库空间分片复制方法及系统,将空间数据按空间位置特征进行分片存储,并按指定的空间关系规则实现复制,从而有效提高了分布式环境下空间数据的更新同步效率,支撑维护空间对象的全局一致性,并简化空间分布式应用。
[0007]根据本发明的第一方面,提供了一种数据库空间分片复制方法,包括步骤:
[0008]SI,将目标分布式数据库的分布式空间表按指定的空间分片方案进行部署,其中,根据空间分片规则按空间位置特征进行分片划分,根据映射关系将划分后的空间分片对应存储到各节点数据库;
[0009]S2,在所述目标分布式数据库的源数据库空间表中捕获空间对象记录所发生的变化,提取变化后空间对象记录的空间位置信息;
[0010]S3,将提取到的所述变化后空间对象记录的空间位置信息与所述空间分片规则进行空间关系判断,如满足与特定空间分片的空间位置关系,则判定当前所述变化后空间对象记录需复制到对应空间分片所在的目的数据库;
[0011]S4,根据所述源数据库到所述目的数据库所定义的数据传播规则,将所述变化后空间对象记录复制给目的数据库。
[0012]优选地,所述空间分片规则包括:用于界定各空间分片范围的空间分界对象集合;以及与空间分界对象集合中每一个空间分界对象对应的、空间对象记录划归所述空间分界对象所需满足的空间位置关系信息。
[0013]优选地,所述数据传播规则包括:数据传播路径、数据传播周期、冲突解决策略以及本数据传播规则的激活状态。
[0014]优选地,所述冲突解决策略包括:
[0015]a)根据优先级判断,优先采纳优先级较高的空间对象记录;和/或
[0016]b)根据时间戳判断,优先采纳时间戳为最新的空间对象记录。
[0017]优选地,步骤S3具体包括步骤:
[0018]S31顺序地从空间分片规则中读取一个空间分界对象;
[0019]S32将当前读取到的空间分界对象与所述提取到的变化后空间对象记录的空间位置信息进行指定空间位置关系的空间关系判断;
[0020]S33如符合所述指定空间位置关系,则判定当前变化后空间对象记录需复制到包含有当前空间分界对象所对应空间分片的目的数据库中;
[0021]S34循环执行步骤S31-S33,直至遍历所述空间分片规则中所有的空间分界对象。
[0022]优选地,步骤S4中将所述变化后空间对象记录复制给目的数据库具体为:
[0023]首先判断当前数据传播规则的激活状态,如果处于激活状态,则进一步获取数据传播路径和数据传播周期,并以数据传播路径决定数据传输路由、以数据传播周期决定数据同步时间,将空间表中的空间对象记录复制给目的数据库。
[0024]另一方面,本发明还同时提供了一种数据库空间分片复制系统,包括:
[0025]分片部署模块,用于将目标分布式数据库的分布式空间表按指定的空间分片方案进行部署,其中,根据空间分片规则按空间位置特征进行分片划分,根据映射关系将划分后的空间分片对应存储到各节点数据库;[0026]变化捕获模块,用于在所述目标分布式数据库的源数据库空间表中捕获空间对象记录所发生的变化,提取变化后空间对象记录的空间位置信息;
[0027]分片导航模块,用于将所述变化捕获模块所提取到的变化后空间对象记录的空间位置信息与所述分片部署模块所定义的空间分片规则进行空间关系判断,如满足与特定空间分片的空间位置关系,则判定当前所述变化后空间对象记录需复制到对应空间分片所在的目的数据库;
[0028]传播应用模块,用于根据所述分片导航模块所判定的目的数据库以及所述分片部署模块所定义的所述源数据库到所述目的数据库的数据传播规则,将所述变化后空间对象记录复制给目的数据库。
[0029]优选地,所述空间分片规则包括:用于界定各空间分片范围的空间分界对象集合;以及与空间分界对象集合中每一个空间分界对象对应的、空间对象记录划归所述空间分界对象所需满足的空间位置关系信息。
[0030]优选地,所述数据传播规则包括:数据传播路径、数据传播周期、冲突解决策略以及本数据传播规则的激活状态。
[0031]优选地,所述分片导航模块进一步包括:
[0032]读取模块,用于顺序地从分片部署模块所定义的空间分片规则中读取一个空间分界对象;
[0033]判断模块,用于将当前读取到的空间分界对象与所述变化捕获模块提取到的变化后空间对象记录的空间位置信息进行指定空间位置关系的空间关系判断;
[0034]定向模块,用于在所述判断模块的结果符合所述指定空间位置关系时,判定当前变化后空间对象记录需复制到包含有当前空间分界对象所对应空间分片的目的数据库中;
[0035]循环模块,用于控制上述三个模块循环执行,直至遍历所述空间分片规则中所有的空间分界对象。
[0036]优选地,所述传播应用模块将所述变化后空间对象记录复制给目的数据库具体为:
[0037]首先判断当前数据传播规则的激活状态,如果处于激活状态,则进一步获取数据传播路径和数据传播周期,并以数据传播路径决定数据传输路由、以数据传播周期决定数据同步时间,将空间表中的空间对象记录复制给目的数据库。
[0038]相对于现有技术,本发明提供了一种数据库空间分片复制方法及系统,按空间位置特征进行分片划分和存储,当捕获到空间数据发生变化时,根据空间关系判断确定复制目标,最后再利用数据传播规则进行数据同步。
[0039]本发明相对于现有技术具有以下显著的技术效果:
[0040](I)空间数据按空间位置特征进行分片存储,符合空间数据的按空间区域分布特性,优选的,直接通过定义空间分界对象划分空间分片,简化了空间分布式应用;
[0041](2)由于分片划分通过定义空间分片规则实现,因此分片间允许存在公共区域(交集),较好地解决了相邻节点间因空间数据采集边界的模糊性或周边缓冲出图等需求而要求数据部分重叠的问题;
[0042](3)源数据库和目的数据库间按指定的空间位置关系实现复制,可避免传统的按全副本式复制、手工提取子集或映射键值子集进行复制,提高了分布式环境下空间数据的更新同步效率;
[0043](4)节点间公共区域的更新同步有效支撑维护了空间对象的全局一致性,提高了数据的共享程度。
【专利附图】

【附图说明】
[0044]图1为本发明的一个实施例中目标分布式数据库的基本数据结构示意图;
[0045]图2为本发明的一个实施例中数据库空间分片复制方法的流程示意图;
[0046]图3为本发明给出的一个应用场景中进行一条空间对象记录更新时复制过程的具体实例不意图;
[0047]图4为本发明的一个优选实施例中分片导航的流程示意图。
【具体实施方式】
[0048]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例为实施本发明的较佳实施方式,所述描述是以说明本发明的一般原则为目的,并非用以限定本发明的范围。本发明的保护范围应当以权利要求所界定者为准,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0049]如前所述,分布式数据库的存储主要采用分片和复制两种方式,两种方式可独立使用或同时使用。在本发明中,为了提高空间数据库的分布式效率,对数据分片和复制方式均进行了相应改进。为详细解释本发明的具体实现,下面先对本发明中的空间分片的形式举例说明如下:本发明中,空间分片按所给定的空间位置特征进行分片及存储,分片之间允许存在空间对象的交集,如与区域多边形A (如图1所示的空间分界对象I)相交的空间对象划分为空间分片1、与区域多边形B (如图1所示的空间分界对象2)相交的划到空间分片2...,而区域A和区域B相邻且存在重叠区域,因此,重叠区域的对象同时出现在空间分片I和空间分片2 ;同时,也可以包含全局范围的空间分片;此外还可能存在其他例子:如和河流A相交的所有支流对象划分为空间分片1、与河流B相交的则划为空间分片2等等。
[0050]具体拟结合图1所示分布式数据库和图2所示空间分片复制流程为例进行说明。
[0051]1、分片部署
[0052]如图1所示,假设对目标分布式数据库DB的一个分布式空间表TB进行部署,其中包含4个数据库节点,分别为DB_a、DB_b、DB_c、DB_d。同时,假设该分布式空间表TB所存储的空间对象为“消防栓”,每一条空间对象记录对应存储一个“消防栓”实体,并假设该表表结构为:
[0053]Tb= {fid INT, shape GEOMETRY};
[0054]其中:fid为空间对象记录的唯一标识字段;shape为空间几何字段(非通用数据库字段类型,但为空间数据库领域技术人员所公知),可采用SQL/MM Spatial或OGC SFSQL标准所定义的GEOMETRY类型进行定义,用于记录空间对象“消防栓”的空间位置信息,如“POINT (60.123,60.123) ”代表经纬度(60.123,60.123)所在点位。
[0055]现将目标分布式数据库DB的分布式空间表TB按以下空间分片方案进行部署:[0056]首先,以划分空间分界对象方式作为优选实施例,对空间分片规则进行定义。如图1所示,所述空间分片规则包含:用于界定各空间分片范围的空间分界对象集合,即:实施例中以多边形方式划分的空间分界对象I (对应空间分片I)、空间分界对象2 (对应空间分片2)和空间分界对象3 (对应空间分片3);与空间分界对象集合中每一个空间分界对象对应的、空间对象记录划归所述空间分界对象所需满足的空间位置关系信息,即假设:
[0057]与空间分界对象I多边形(记<p0lyg0n_l>)具有“包含”空间位置关系(记〈within〉)的空间对象记录划归空间分片I ;
[0058]与空间分界对象2多边形(记<p0lyg0n_2>)具有“包含”空间位置关系(记〈within〉)的空间对象记录划归空间分片2 ;
[0059]与空间分界对象3多边形(记<p0lyg0n_3>)具有“相交”空间位置关系(记〈intersect〉)的空间对象记录划归空间分片3。
[0060]结合以上描述,本实施例给出空间分片规则的形式化描述为:
[0061]Rp={Partition, Relation, Division};
[0062]其中;Rp标识空间分片规则的集合partition标识空间分片;Relation标识空间位置关系,即用于记录空间对象记录划归当前空间分界对象所需满足的空间位置关系信息,其值可为ISO SQL/MM Spatial或OGC SFSQL所定义的空间关系算子名称;Division为空间分界对象,类型包含点、线或多边形。
[0063]假设以“空间分片规则表”的方式实现空间分片规则的定义,结合以上实施例,定义表结构为:Tp(pidINT, rel_shape VARCHAR(20), shape GEOMETRY),其中 pid 为空间分片编号;rel_shape为空间位置关系;shape为多边形格式的空间分界对象。根据上述描述,在Tp表中需定义3条空间分片规则,如下图所示,其中空间分界对象polygon_l与polygon_2存在交集。
[0064]
【权利要求】
1.一种数据库空间分片复制方法,其特征在于,所述方法包括步骤: Si,将目标分布式数据库的分布式空间表按指定的空间分片方案进行部署,其中,根据空间分片规则按空间位置特征进行分片划分,根据映射关系将划分后的空间分片对应存储到各节点数据库; S2,在所述目标分布式数据库的源数据库空间表中捕获空间对象记录所发生的变化,提取变化后空间对象记录的空间位置信息; S3,将提取到的所述变化后空间对象记录的空间位置信息与所述空间分片规则进行空间关系判断,如满足与特定空间分片的空间位置关系,则判定当前所述变化后空间对象记录需复制到对应空间分片所在的目的数据库; S4,根据所述源数据库到所述目的数据库所定义的数据传播规则,将所述变化后空间对象记录复制给目的数据库。
2.根据权利要求1所述的方法,其特征在于,所述空间分片规则包括:用于界定各空间分片范围的空间分界对象集合;以及与空间分界对象集合中每一个空间分界对象对应的、空间对象记录划归所述空间分界对象所需满足的空间位置关系信息。
3.根据权利要求1所述的方法,其特征在于,所述数据传播规则包括:数据传播路径、数据传播周期、冲突解决策略以及本数据传播规则的激活状态。
4.根据权利要求3所述的方法,其特征在于,所述冲突解决策略包括: a)根据优先级判断,优先 采纳优先级较高的空间对象记录;和/或 b)根据时间戳判断,优先采纳时间戳为最新的空间对象记录。
5.根据权利要求1或2所述的方法,其特征在于,步骤S3具体包括步骤: S31顺序地从空间分片规则中读取一个空间分界对象; S32将当前读取到的空间分界对象与所述提取到的变化后空间对象记录的空间位置信息进行指定空间位置关系的空间关系判断; S33如符合所述指定空间位置关系,则判定当前变化后空间对象记录需复制到包含有当前空间分界对象所对应空间分片的目的数据库中; S34循环执行步骤S31-S33,直至遍历所述空间分片规则中所有的空间分界对象。
6.根据权利要求1或3所述的方法,其特征在于,步骤S4中将所述变化后空间对象记录复制给目的数据库具体为: 首先判断当前数据传播规则的激活状态,如果处于激活状态,则进一步获取数据传播路径和数据传播周期,并以数据传播路径决定数据传输路由、以数据传播周期决定数据同步时间,将空间表中的空间对象记录复制给目的数据库。
7.一种数据库空间分片复制系统,其特征在于,所述系统包括: 分片部署模块,用于将目标分布式数据库的分布式空间表按指定的空间分片方案进行部署,其中,根据空间分片规则按空间位置特征进行分片划分,根据映射关系将划分后的空间分片对应存储到各节点数据库; 变化捕获模块,用于在所述目标分布式数据库的源数据库空间表中捕获空间对象记录所发生的变化,提取变化后空间对象记录的空间位置信息; 分片导航模块,用于将所述变化捕获模块所提取到的变化后空间对象记录的空间位置信息与所述分片部署模块所定义的空间分片规则进行空间关系判断,如满足与特定空间分片的空间位置关系,则判定当前所述变化后空间对象记录需复制到对应空间分片所在的目的数据库; 传播应用模块,用于根据所述分片导航模块所判定的目的数据库以及所述分片部署模块所定义的所述源数据库到所述目的数据库的数据传播规则,将所述变化后空间对象记录复制给目的数据库。
8.根据权利要求7所述的系统,其特征在于,所述空间分片规则包括:用于界定各空间分片范围的空间分界对象集合;以及与空间分界对象集合中每一个空间分界对象对应的、空间对象记录划归所述空间分界对象所需满足的空间位置关系信息。
9.根据权利要求7所述的系统,其特征在于,所述数据传播规则包括:数据传播路径、数据传播周期、冲突解决策略以及本数据传播规则的激活状态。
10.根据权利要求7或8所述的系统,其特征在于,所述分片导航模块进一步包括: 读取模块,用于顺序地从分片部署模块所定义的空间分片规则中读取一个空间分界对象; 判断模块,用于将当前读取到的空间分界对象与所述变化捕获模块提取到的变化后空间对象记录的空间位置信息进行指定空间位置关系的空间关系判断; 定向模块,用于在所述判断模块的结果符合所述指定空间位置关系时,判定当前变化后空间对象记录需复制到包含有当前空间分界对象所对应空间分片的目的数据库中; 循环模块,用于控制上述三个模块循环执行,直至遍历所述空间分片规则中所有的空间分界对象。`
11.根据权利要求7或9所述的系统,其特征在于,所述传播应用模块将所述变化后空间对象记录复制给目的数据库具体为: 首先判断当前数据传播规则的激活状态,如果处于激活状态,则进一步获取数据传播路径和数据传播周期,并以数据传播路径决定数据传输路由、以数据传播周期决定数据同步时间,将空间表中的空间对象记录复制给目的数据库。
【文档编号】G06F17/30GK103870602SQ201410133174
【公开日】2014年6月18日 申请日期:2014年4月3日 优先权日:2014年4月3日
【发明者】谢炯, 王方, 陈振, 张明波, 陈荣国, 陈应东, 万庆 申请人:中国科学院地理科学与资源研究所, 北京博阳世通信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1