一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据差异化同步方法、装置、系统及主节点设备与流程

2022-02-21 07:52:41 来源:中国专利 TAG:
1.本发明涉及计算机技术中的数据库
技术领域
:,尤其涉及一种数据差异化同步方法、装置、系统及主节点设备。
背景技术
::2.在实际的数据库应用中,经常需要实现数据库中数据的同步,可以是主主同步,也可以是主从同步。目前,针对一些数据库的数据同步,均是一致性同步。例如,在主从同步和主主同步的一些方案中,无论是自有的日志复制、流同步复制,还是第三方产品bucardo等同步工具,仅仅是实现多个数据库的一致性同步。要想实现差异化同步,目前只能采取其他的方式间接实现数据库的差异化同步。3.目前可采用的差异化同步方式,可以是etl(extracttransformandload,抽取-转换-加载)方式:基于时间戳周期性将库数据a差异化同步到数据库b。该方式的缺陷是根据抽取周期的设定会有一定的数据延时,并且需要开发一套etl程序,根据差异的复制程度,开发成本较高。4.也可以采用ab库同时写入方式:在数据采集阶段进行开发,同时向多个节点的数据库写入数据。该方式的缺陷是数据采集开发的工作量较大,当数据写入发生异常时,不易定位数据写入发生异常的问题所在,并且,同时向多个节点写入数据的效率较低。5.也可以采用基于监听预写日志或监听增删改开发中间件方式:该方式最为复杂,开发成本较大,且差异化数据不容易筛选控制。6.综上,目前已知的数据差异化同步方案,普遍存在实现的复杂度高、效率低的问题。技术实现要素:7.有鉴于此,本发明实施例提供一种数据差异化同步方法、装置、系统及主节点设备,用以解决现有技术存在数据差异化同步的复杂度高、效率低的问题。8.第一方面,本发明实施例提供一种数据差异化同步方法,其特征在于,应用于主节点设备,所述主节点设备具有主数据表,所述主节点设备与多个从节点设备相连,每个从节点设备具有与所述主数据表结构相同的从数据表,所述主节点设备还具有多个外部数据表,且每个外部数据表与所述主数据表之间存在继承关系,所述多个外部数据表与所述多个从节点设备一一对应,且每个外部数据表与对应的从节点设备的从数据表之间存在映射关系,所述方法,包括:9.当所述主数据表中插入新的数据时,按照预设的数据分发规则,将所述新的数据分发至满足所述数据分发规则的外部数据表,被分发所述新的数据的该外部数据表作为待同步外部数据表;10.按照所述映射关系,将所述待同步外部数据表中的所述新的数据,同步至与所述待同步外部数据表存在映射关系的从数据表。11.根据本发明实施例的一种具体实现方式,在所述按照预设的数据分发规则,将所述新的数据分发至满足所述数据分发规则的外部数据表之前,还包括:12.基于用户输入的创建信息,在所述主节点设备的postgresql数据库中创建所述主数据表;13.基于与所述主节点设备相连的多个从节点设备的数量,在所述主节点设备的postgresql数据库中,创建数量相同的与所述主数据表存在继承关系的多个外部数据表;14.针对每个外部数据表,建立该外部数据表与对应的从节点设备的从数据表之间的映射关系。15.根据本发明实施例的一种具体实现方式,所述按照预设的数据分发规则,将所述新的数据分发至满足所述数据分发规则的外部数据表,包括:16.获取所述新的数据的生成时刻所属的时间段;17.按照预设的数据分发规则,确定该时间段对应的外部数据表;18.将所述新的数据分发至该时间段对应的外部数据表。19.根据本发明实施例的一种具体实现方式,所述按照预设的数据分发规则,将所述新的数据分发至满足所述数据分发规则的外部数据表,包括:20.获取所述新的数据的属性信息;21.按照预设的数据分发规则,确定该属性信息对应的外部数据表;22.将所述新的数据分发至该属性信息对应的外部数据表。23.第二方面,本技术实施例还提供一种数据差异化同步装置,应用于主节点设备,所述主节点设备具有主数据表,所述主节点设备与多个从节点设备相连,每个从节点设备具有与所述主数据表结构相同的从数据表,所述主节点设备还具有多个外部数据表,且每个外部数据表与所述主数据表之间存在继承关系,所述多个外部数据表与所述多个从节点设备一一对应,且每个外部数据表与对应的从节点设备的从数据表之间存在映射关系,所述装置,包括:24.数据分发模块,用于当所述主数据表中插入新的数据时,按照预设的数据分发规则,将所述新的数据分发至满足所述数据分发规则的外部数据表,被分发所述新的数据的该外部数据表作为待同步外部数据表;25.数据同步模块,用于按照所述映射关系,将所述待同步外部数据表中的所述新的数据,同步至与所述待同步外部数据表存在映射关系的从数据表。26.根据本发明实施例的一种具体实现方式,还包括:27.数据表创建模块,用于基于用户输入的创建信息,在所述主节点设备的postgresql数据库中创建所述主数据表;基于与所述主节点设备相连的多个从节点设备的数量,在所述主节点设备的postgresql数据库中,创建数量相同的与所述主数据表存在继承关系的多个外部数据表;针对每个外部数据表,建立该外部数据表与对应的从节点设备的从数据表之间的映射关系。28.根据本发明实施例的一种具体实现方式,所述数据分发模块,具体用于获取所述新的数据的生成时刻所属的时间段;按照预设的数据分发规则,确定该时间段对应的外部数据表;将所述新的数据分发至该时间段对应的外部数据表。29.根据本发明实施例的一种具体实现方式,所述数据分发模块,具体用于获取所述新的数据的属性信息;按照预设的数据分发规则,确定该属性信息对应的外部数据表;将所述新的数据分发至该属性信息对应的外部数据表。30.第三方面,本技术实施例还提供一种主节点设备,所述主节点设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述主节点设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行上述任一数据差异化同步方法。31.第四方面,本技术实施例还提供一种数据差异化同步系统,包括:上述主节点设备和多个从节点设备。32.第五方面,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一数据差异化同步方法。33.第六方面,本发明的实施例还提供一种应用程序,所述应用程序被执行以实现本发明任一实施方式所述的方法。34.本发明实施例提供的方案中,在主节点设备上创建有与主数据表具有继承关系的多个外部数据表,并且针对每个外部数据表,该外部数据表与对应的从节点设备的从数据表之间存在映射关系,并且,预设有数据分发规则,从而当主数据表中插入新的数据时,可以按照预设的该数据分发规则,将该新的数据分发至满足该数据分发规则的外部数据表,进而可以按照映射关系,将该外部数据表中的该新的数据,同步至与该外部数据表存在映射关系的从数据表,而不满足该数据分发规则的其他外部数据表,则不会被分发该新的数据,也就不会将该新的数据同步至与其他外部数据表存在映射关系的从数据表中,即实现了数据的差异化同步,并且,是基于数据库自身具有的数据表之间的继承和映射关系,实现的复杂度更低,效率更高。附图说明35.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。36.图1为本发明的实施例提供的数据差异化同步方法的流程图;37.图2为本发明的另一实施例提供的数据差异化同步方法的流程图;38.图3为本发明的实施例提供的数据差异化同步方法的示意图;39.图4为本发明的实施例提供的数据差异化同步装置的结构示意图;40.图5为本发明的另一实施例提供的数据差异化同步装置的结构示意图;41.图6为本发明的实施例提供的主节点设备的结构示意图;42.图7为本发明的实施例提供的数据差异化同步系统的结构示意图。具体实施方式43.下面结合附图对本发明实施例进行详细描述。应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。44.本实施例提供一种数据差异化同步方法,应用于主节点设备,主节点设备具有主数据表,主节点设备与多个从节点设备相连,每个从节点设备具有与主数据表结构相同的从数据表,主节点设备还具有多个外部数据表,且每个外部数据表与主数据表之间存在继承关系,多个外部数据表与多个从节点设备一一对应,且每个外部数据表与对应的从节点设备的从数据表之间存在映射关系,如图1所示,该方法包括:45.步骤11、当主数据表中插入新的数据时,按照预设的数据分发规则,将新的数据分发至满足数据分发规则的外部数据表,被分发新的数据的该外部数据表作为待同步外部数据表。46.步骤12、按照映射关系,将待同步外部数据表中的新的数据,同步至与待同步外部数据表存在映射关系的从数据表。47.采用本技术实施例提供的上述图1所示的数据差异化同步方法,在主节点设备上创建有与主数据表具有继承关系的多个外部数据表,并且针对每个外部数据表,该外部数据表与对应的从节点设备的从数据表之间存在映射关系,并且,预设有数据分发规则,从而当主数据表中插入新的数据时,可以按照预设的该数据分发规则,将该新的数据分发至满足该数据分发规则的外部数据表,进而可以按照映射关系,将该外部数据表中的该新的数据,同步至与该外部数据表存在映射关系的从数据表,而不满足该数据分发规则的其他外部数据表,则不会被分发该新的数据,也就不会将该新的数据同步至与其他外部数据表存在映射关系的从数据表中,即实现了数据的差异化同步。并且,该方法是基于数据库自身具有的数据表之间的继承和映射关系实现的,实现的复杂度更低,效率更高。48.本技术实施例中,可以基于postgresql数据库实现,postgresql数据库具有强大的扩展功能,例如,表继承(tableinheritance)和映射(mapping),基于这些扩展功能,可以实现本技术实施例提供的方法,下面对此进行详细描述。49.本技术实施例还提供一种数据差异化同步方法,如图2所示,可以包括如下步骤:50.步骤21、基于用户输入的创建信息,在主节点设备的postgresql数据库中创建主数据表。51.本技术实施例中,可以向用户展示用于创建数据表的界面,界面中可以包括一些用于创建数据表的选项和文本输入框,供用户通过选择和输入文本内容的方式,输入创建信息,并基于用户输入的创建信息,在主节点设备的postgresql数据库中创建主数据表,用户输入的创建信息,可以基于实际需要进行输入。52.如图3所示,在主节点设备上创建了主数据表,名称为table_sync。53.步骤22、基于与主节点设备相连的多个从节点设备的数量,在主节点设备的postgresql数据库中,创建数量相同的与主数据表存在继承关系的多个外部数据表。54.如图3所示,以包括3个从节点设备为例,在主节点设备的postgresql数据库中,创建3个与主数据表存在继承关系的外部数据表,分别是外部数据表1,名称为foreign_table_sync1,外部数据表2,名称为foreign_table_sync2,外部数据表3,名称为foreign_table_sync3。55.并且,3个外部数据表与3个从节点设备之间一一对应,例如,如图3所示,外部数据表1与从节点设备1对应,外部数据表2与从节点设备2对应,外部数据表3与从节点设备3对应。56.步骤23、针对每个外部数据表,建立该外部数据表与对应的从节点设备的从数据表之间的映射关系。57.如图3所示,3个从节点设备上均创建有一个从数据表,且从数据表的结构与主数据表相同,分别是从数据表1,从数据表2和从数据表3,为了便于每个从节点设备对从数据表的使用,每个从数据表的名称可以与主数据表的名称相同,均是table_sync,这样在主节点设备上运行的用于使用主数据表的软件代码,可以直接复制到从节点设备上,使得该软件代码可以直接使用从数据表,而不需要对软件代码进行改进。58.本步骤中,如图3所示,分别建立外部数据表1与从数据表1之间的映射关系,外部数据表2与从数据表2之间的映射关系,外部数据表3与从数据表3之间的映射关系。59.步骤24、当主数据表中插入新的数据时,按照预设的数据分发规则,确定满足该数据分发规则的外部数据表。60.本技术实施例中,预设的数据分发规则,可以基于各从节点设备对数据表中数据实际应用的需要,进行灵活的设置。61.例如,可以基于数据生成时刻所属的时间段设置数据分发规则,相应的,本步骤中,可以获取该新的数据的生成时刻所属的时间段,并按照预设的数据分发规则,确定该时间段对应的外部数据表;62.又如,也可以基于数据的属性信息设置数据分发规则,相应的,本步骤中,可以获取该新的数据的属性信息,并按照预设的数据分发规则,确定该属性信息对应的外部数据表。63.步骤25、将该新的数据分发至该对应的外部数据表,被分发该新的数据的外部数据表作为待同步外部数据表。64.由于该外部数据表继承于主数据表,所以,可以按照继承关系,将该新的数据分发至该对应的外部数据表。65.步骤26、按照映射关系,将待同步外部数据表中的该新的数据,同步至与待同步外部数据表存在映射关系的从数据表。66.本技术实施例中,从数据表与主数据表的结构相同,从而可以按照映射关系,实现数据的同步。67.而对于其他从数据表,由于其对应的外部数据表中并未被分发该新的数据,所以也不会被同步该新的数据,从而实现了该从数据表与其他从数据表之间的数据差异化同步。68.本技术实施例中,利用postgresql数据库强大的扩展功能,可以在postgresql数据库上安装外部表扩展,利用“外部表继承 规则”的方式,实现数据差异化同步,并且,无需借助第三方,可以具有更高的可靠性和安全性;只需要通过创建表继承和规则的方式,即可实现数据差异化同步,成本低,复杂度低,且效率更高。69.基于同一发明构思,根据本发明实施例提供的上述数据差异化同步方法,本发明实施例还提供了一种数据差异化同步装置,应用于主节点设备,主节点设备具有主数据表,主节点设备与多个从节点设备相连,每个从节点设备具有与主数据表结构相同的从数据表,主节点设备还具有多个外部数据表,且每个外部数据表与主数据表之间存在继承关系,多个外部数据表与多个从节点设备一一对应,且每个外部数据表与对应的从节点设备的从数据表之间存在映射关系,如图4所示,包括:70.数据分发模块41,用于当主数据表中插入新的数据时,按照预设的数据分发规则,将新的数据分发至满足数据分发规则的外部数据表,被分发新的数据的该外部数据表作为待同步外部数据表;71.数据同步模块42,用于按照映射关系,将待同步外部数据表中的新的数据,同步至与待同步外部数据表存在映射关系的从数据表。72.根据本发明实施例的一种具体实现方式,如图5所示,还包括:73.数据表创建模块43,用于基于用户输入的创建信息,在主节点设备的postgresql数据库中创建主数据表;基于与主节点设备相连的多个从节点设备的数量,在主节点设备的postgresql数据库中,创建数量相同的与主数据表存在继承关系的多个外部数据表;针对每个外部数据表,建立该外部数据表与对应的从节点设备的从数据表之间的映射关系。74.根据本发明实施例的一种具体实现方式,数据分发模块41,具体用于获取新的数据的生成时刻所属的时间段;按照预设的数据分发规则,确定该时间段对应的外部数据表;将新的数据分发至该时间段对应的外部数据表。75.根据本发明实施例的一种具体实现方式,数据分发模块41,具体用于获取新的数据的属性信息;按照预设的数据分发规则,确定该属性信息对应的外部数据表;将新的数据分发至该属性信息对应的外部数据表。76.本实施例的装置,可以用于执行图1和图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。77.本技术实施例还提供一种主节点设备,如图6所示,可以实现本发明图1和图2所示实施例的流程,如图6所示,上述主节点设备可以包括:壳体61、处理器62、存储器63、电路板64和电源电路65,其中,电路板64安置在壳体61围成的空间内部,处理器62和存储器63设置在电路板64上;电源电路65,用于为上述主节点设备的各个电路或器件供电;存储器63用于存储可执行程序代码;处理器62通过读取存储器63中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的数据差异化同步方法。78.处理器62对上述步骤的具体执行过程以及处理器62通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1和图2所示实施例的描述,在此不再赘述。79.该主节点设备以多种形式存在,包括但不限于:80.(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。81.(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。82.(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。83.(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。84.(5)其他具有数据交互功能的主节点设备。85.第四方面,本技术实施例还提供一种数据差异化同步系统,如图7所示,包括:上述任一主节点设备71和多个从节点设备72。86.第五方面,本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现上述任一数据差异化同步方法。87.第六方面,本发明的实施例还提供一种应用程序,所述应用程序被执行以实现本发明任一实施例提供的方法。88.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。89.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。90.尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。91.为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。92.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。93.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献