数据同步处理方法及装置与流程

文档序号:11156926阅读:541来源:国知局
数据同步处理方法及装置与制造工艺

本公开涉及数据同步技术领域,尤其涉及一种数据同步处理方法及数据同步处理装置。



背景技术:

随着信息化技术的飞速发展,企业信息化建设日益普及。一些企业各部门或者分公司纷纷搭建自己的信息化系统。这样,在这些不同的系统中实现数据的共享、整合时,数据(如在职人员数据和离职人员数据等)的双向同步是一种经常碰到且非常重要的需求。

相关技术中,目前对大数据量的数据进行同步时主要有两种方式:一是全量数据同步方式,二是增量数据同步方式。全量数据同步方式要求双方系统有较强的数据读取能力及稳定的网络,该方式耗时长且对双方系统压力大。而增量数据同步方式则要求数据源系统准确记录各数据的如更新时间等变更信息,并实现逻辑删除。但是当数据量过大而无法采用全量数据同步方式,同时数据源系统又无法准确记录各数据的变更信息时,会导致数据同步效率低下,这对大数据量的数据同步提出了新的要求。另外,同步后的数据在目的系统中使用时,如何提高大数据量的数据的读取效率,需要与之适应的数据读取方案,相关技术中目前缺乏相应的解决方案。

因此,有必要提供一种新的技术方案改善上述方案中存在的一个或者多个问题。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

本公开的目的在于提供一种数据同步处理方法及数据同步处理装置,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。

本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。

根据本公开实施例的第一方面,提供一种数据同步处理方法,应用于一第一服务器,所述方法包括:

向一第二服务器发送一数据定时同步请求,接收所述第二服务器响应所述数据定时同步请求后根据数据更新时间信息在所述第二服务器上查找到并发送来的一个或多个第一数据;其中,所述定时同步请求携带所述数据更新时间信息;

根据一预设数据请求向所述第二服务器发送数据实时同步请求,接收所述第二服务器响应所述数据实时同步请求后在所述第二服务器上查找到并发送来的一个或多个第二数据。

本公开的一种示例性实施例中,所述第一服务器上设有第一数据存储表和第二数据存储表;所述方法还包括:

查询所述第二数据是否在所述第一数据存储表中,当所述第二数据在所述第一数据存储表中时,更新所述第一数据存储表中的所述第二数据;

当所述第二数据不在所述第一数据存储表中时,查询所述第二数据是否在所述第二数据存储表中,当所述第二数据在所述第二数据存储表中时,更新所述第二数据存储表中的所述第二数据;

当所述第二数据不在所述第二数据存储表中时,添加所述第二数据到所述第二数据存储表。

本公开的一种示例性实施例中,所述更新所述第一数据存储表中的所述第二数据之后,所述方法还包括:

判断所述第二数据所表征的对象是否存在,若不存在,则将所述第二数据从所述第一数据存储表转移到所述第二数据存储表;若存在,则不移动数据。

本公开的一种示例性实施例中,所述更新所述第二数据存储表中之前存储的所述第二数据之后,所述方法还包括:

判断所述第二数据所表征的对象是否存在,若存在,则将所述第二数据从所述第二数据存储表转移到所述第一数据存储表;若不存在,则不移动数据。

本公开的一种示例性实施例中,所述第一服务器上设有第一数据存储表和第二数据存储表;所述方法还包括:

将所述第一数据存储到所述第一数据存储表中,并检查所述第一数据存储表中是否存在使用频率低于预设值的第三数据,若存在,则将所述第三数据移动至所述第二数据存储表中。

根据本公开实施例的第二方面,提供一种数据同步处理装置,应用于一第一服务器,所述装置包括:

数据定时同步模块,用于向一第二服务器发送一数据定时同步请求,接收所述第二服务器响应所述数据定时同步请求后根据数据更新时间信息在所述第二服务器上查找到并发送来的一个或多个第一数据;其中,所述定时同步请求携带所述数据更新时间信息;

数据实时同步模块,用于根据一预设数据请求向所述第二服务器发送数据实时同步请求,接收所述第二服务器响应所述数据实时同步请求后在所述第二服务器上查找到并发送来的一个或多个第二数据。

本公开的一种示例性实施例中,所述第一服务器上设有第一数据存储表和第二数据存储表;所述装置还包括:

第一查询更新模块,用于查询所述第二数据是否在所述第一数据存储表中,当所述第二数据在所述第一数据存储表中时,更新所述第一数据存储表中的所述第二数据;

第二查询更新模块,用于当所述第二数据不在所述第一数据存储表中时,查询所述第二数据是否在所述第二数据存储表中,当所述第二数据在所述第二数据存储表中时,更新所述第二数据存储表中的所述第二数据;

数据添加模块,用于当所述第二数据不在所述第二数据存储表中时,添加所述第二数据到所述第二数据存储表。

本公开的一种示例性实施例中,所述装置还包括:

第一判断转移模块,用于在所述更新所述第一数据存储表中的所述第二数据之后,判断所述第二数据所表征的对象是否存在,若不存在,则将所述第二数据从所述第一数据存储表转移到所述第二数据存储表;若存在,则不移动数据。

本公开的一种示例性实施例中,所述装置还包括:

第二判断转移模块,用于在所述更新所述第二数据存储表中之前存储的所述第二数据之后,判断所述第二数据所表征的对象是否存在,若存在,则将所述第二数据从所述第二数据存储表转移到所述第一数据存储表;若不存在,则不移动数据。

本公开的一种示例性实施例中,所述第一服务器上设有第一数据存储表和第二数据存储表;所述装置还包括:

第三判断转移模块,用于将所述第一数据存储到所述第一数据存储表中,并检查所述第一数据存储表中是否存在使用频率低于预设值的第三数据,若存在,则将所述第三数据移动至所述第二数据存储表中。

本公开的实施例提供的技术方案可以包括以下有益效果:

本公开的一种实施例中,通过上述数据同步处理方法及装置,将数据定时同步和数据实时同步相结合,对于数据源中准确记录变更时间的数据采用定时批量同步数据,对于数据源中没有准确记录变更时间的数据采用实时同步;这样,一方面,当数据量过大而无法采用全量同步,同时数据源中又无法准确记录变更时间时,解决大数据量的数据同步问题,在一定程度上提高数据同步效率;另一方面,由于不用完全采用实时同步方式,在一定程度上减少了对双方系统的通信网络的要求,降低了对双方系统的压力。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示意性示出本公开示例性实施例中第一数据同步处理方法流程图;

图2示意性示出本公开示例性实施例中第二数据同步处理方法流程图;

图3示意性示出本公开示例性实施例中第三数据同步处理方法流程图;

图4示意性示出本公开示例性实施例中数据同步处理应用场景示意图;

图5示意性示出本公开示例性实施例中第一数据同步处理装置示意图;

图6示意性示出本公开示例性实施例中第二数据同步处理装置示意图;

图7示意性示出本公开示例性实施例中第三数据同步处理装置示意图;

图8示意性示出本公开示例性实施例中另一数据同步处理装置示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。

此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

本示例实施方式中首先提供了一种数据同步处理方法,该方法可以应用于一第一服务器上,所述第一服务器例如可以是运行目的系统的服务器。参考图1中所示,该数据同步处理方法可以包括:

步骤S101:向一第二服务器发送一数据定时同步请求,接收所述第二服务器响应所述数据定时同步请求后根据数据更新时间信息在所述第二服务器上查找到并发送来的一个或多个第一数据;其中,所述定时同步请求携带所述数据更新时间信息。

步骤S102:根据一预设数据请求向所述第二服务器发送数据实时同步请求,接收所述第二服务器响应所述数据实时同步请求后在所述第二服务器上查找到并发送来的一个或多个第二数据。

通过上述数据同步处理方法,当数据量过大而无法采用全量同步,同时数据源中又无法准确记录变更时间时,解决大数据量的数据同步问题,在一定程度上提高数据同步效率;另一方面,由于不用完全采用实时同步方式,在一定程度上减少了对双方系统的通信网络的要求,降低了对双方系统的压力。

下面,将参考图1至图4对本示例实施方式中的上述方法的各个步骤进行更详细的说明。

在步骤S101中,向一第二服务器发送一数据定时同步请求,接收所述第二服务器响应所述数据定时同步请求后根据数据更新时间信息在所述第二服务器上查找到并发送来的一个或多个第一数据;其中,所述定时同步请求携带所述数据更新时间信息。

本示例实施方式中,所述第二服务器可以是运行一源系统的服务器,所述源系统例如可以是一分公司平台系统,该分公司平台系统例如可以存储记录代理人信息(如姓名或者工号等)。而所述第一服务器上运行的所述目的系统例如可以是一个险培训管理系统。

示例性的,该个险培训管理系统需要从所述源系统同步获取代理人信息。由于源系统中信息记录更新可能存在不及时的情况,那么代理人的信息有些是准确记录了数据的更新时间的,有些则没有准确记录数据更新时间。对于准确记录了数据的更新时间的这部分数据,所述个险培训管理系统可以向所述源系统发送一定时同步请求,所述定时同步请求可以携带所要请求的数据的时间范围条件,例如距离当前时间的前3天内的数据。所述目的系统接收到所述定时同步请求后,解析获取所述时间范围条件,根据所述时间范围条件比对查找符合该条件的代理人信息并批量返回给所述源系统。

在步骤S102中,根据一预设数据请求向所述第二服务器发送数据实时同步请求,接收所述第二服务器响应所述数据实时同步请求后在所述第二服务器上查找到并发送来的一个或多个第二数据。

示例性的,对于没有准确记录数据更新时间的部分数据,可以通过所述目的系统向所述源系统发起实时同步请求以获取一条或多条数据,

本示例实施方式中,数据的同步采用定时增量同步和实时同步相结合的方式来实现。对于源系统中准确记录了变更时间的数据,通过比对更新时间来定时批量同步数据;对于源系统中更新时间不准确的数据,则通过目的系统发起同步请求,同步具体的一条或多条数据。这样,当数据量过大而无法采用全量同步,同时数据源中又无法准确记录变更时间时,解决了大数据量的数据同步问题,在一定程度上提高了数据同步的效率。

参考图2所示,在一示例性实施例中,数据同步至所述目的系统后,为了提高所述目的系统中数据的查询效率。所述第一服务器上可以设有第一数据存储表和第二数据存储表。例如,所述第一数据存储表可以是所述目的系统中的常用数据表A,所述第二数据存储表可以是所述目的系统中的不常用数据表B。所述方法还可以包括步骤S103~步骤S105。其中:

步骤S103:查询所述第二数据是否在所述第一数据存储表中,当所述第二数据在所述第一数据存储表中时,更新所述第一数据存储表中的所述第二数据。

在一示例性实施例中,所述更新所述第一数据存储表中的所述第二数据之后,所述方法还可以包括:判断所述第二数据所表征的对象是否存在,若不存在,则将所述第二数据从所述第一数据存储表转移到所述第二数据存储表;若存在,则不移动数据。

示例性的,所述第二数据可以是代理人数据,所述第二数据所表征的对象即代理人。举例来说,所述目的系统向源系统发起实时同步请求,并将源系统中的某条或多条数据同步至目的系统中。之后所述目的系统查询所同步的数据是否存在于常用数据表A中,若存在,则在常用数据表A中更新数据。更新后,目的系统根据分表属性明确该数据是否属于常用数据,若不属于,则将该数据从常用数据表A移动至不常用数据表B中;若属于,不移动数据。例如,同步代理人数据至目的系统后,目的系统根据该代理人数据所代表的代理人是否在职的属性信息判断该代理人数据是否属于常用数据,若不在职,则将该代理人数据从常用数据表A移动至不常用数据表B中;若在职,则不移动数据。

步骤S104:当所述第二数据不在所述第一数据存储表中时,查询所述第二数据是否在所述第二数据存储表中,当所述第二数据在所述第二数据存储表中时,更新所述第二数据存储表中的所述第二数据。

示例性的,继续以上述举例说明。所述目的系统查询所同步的数据是否存在于常用数据表A中,若同步的数据不存在于常用数据表A中,则检查是存在于不常用数据表B中。若存在,则更新不常用数据表B中的数据。

在一示例性实施例中,所述更新所述第二数据存储表中的所述第二数据之后,所述方法还可以包括:判断所述第二数据所表征的对象是否存在,若存在,则将所述第二数据从所述第二数据存储表转移到所述第一数据存储表;若不存在,则不移动数据。

示例性的,更新不常用数据表B中的数据后,目的系统根据分表属性明确该数据是否属于常用数据,若属于,则将数据从不常用数据表B中移动至常用数据表A中;若不属于,则不移动数据。例如,更新不常用数据表B中的代理人数据后,所述目的系统根据该代理人数据所代表的代理人是否在职的属性信息判断该代理人数据是否属于常用数据,若在职,则将该代理人数据从不常用数据表B移动至常用数据表A中;若不在职,则不移动数据。

步骤S105:当所述第二数据不在所述第二数据存储表中时,添加所述第二数据到所述第二数据存储表。

示例性的,上述检查同步的数据是否存在于不常用数据表B中时,若不存在,则添加该同步的数据至不常用数据表B中。

本示例实施方式中,同步后的数据在目的系统中使用分表存储更新,常用数据和不常用数据定时或实时转换。大数据量的数据读取上同时可以采用索引和分表方式,按照数据的某一属性进行分表存储,以提高后续在目的系统中进行数据查询的效率。本示例实施方式提高了目的系统中大数据量的数据读取效率。

参考图3所示,在一示例性实施例中,在上述实施例的基础上,所述第一服务器上可以设有第一数据存储表和第二数据存储表。所述第一数据存储表可以是目的系统中的常用数据表A,所述第二数据存储表可以是所述目的系统中的不常用数据表B。所述方法还可以包括:

步骤S1011:将所述第一数据存储到所述第一数据存储表中,并检查所述第一数据存储表中是否存在使用频率低于预设值的第三数据,若存在,则将所述第三数据移动至所述第二数据存储表中。

示例性的,所述使用频率低于预设值的第三数据即不常用数据,所述预设值可以根据具体情况设置,对此不做限制。定时同步数据时,每次定时同步根据源系统中数据的更新时间将满足时间要求的数据增量同步到目的系统的常用表A中。之后目的系统根据分表属性字段检查常用表A中是否存在不常用数据,即使用频率低于预设值的数据,若存在,则将这部分不常用数据移动至不常用表B。这样可以根据同步的数据的属性将数据分表存储,同时也可以实现常用数据和不常用数据的实时或定期转换,便于后期查询数据时提高查询效率。

下面结合图4所示的本示例实施方式的一应用场景示意图对本示例实施方式作出进一步的说明。

本应用场景中以个险培训管理系统NTMS系统(目的系统)向分公司信息平台BIP系统(源系统)请求同步代理人数据为例,来具体阐述本示例实施方式中上述方法的流程。所述NTMS系统中的代理人信息需要从BIP系统获取,BIP系统中的代理人信息表数据量巨大,且部分信息的调整未记录更新时间。NTMS系统中的代理人表根据人员状态分为离职表(对应不常用表B)和在职表(对应常用表A)。下面对代理人数据定时同步和实时同步的流程进行说明。

一、数据定时同步:

步骤1):NTMS系统每天定时向BIP系统发起定时同步请求。例如同步请求更新日期为最近3天的数据。

步骤2):BIP系统查询更新日期为最近3天的数据,若没有,则无需同步。若有,BIP系统将满足条件的数据同步更新到NTMS系统的在职表中。

步骤3):NTMS系统判断更新后的代理人是否在职,将不在职的代理人转移到离职表中。

二、数据实时同步:

步骤1):用户在NTMS系统中输入代理人工号,请求同步该代理人的信息。

步骤2):BIP系统查找到该代理人信息并返回同步到NTMS系统。

步骤3):NTMS系统查询所同步的代理人是否存在于在职表,若存在,则更新在职表中该代理人的信息。

步骤4):步骤3)中更新在职表中该代理人的信息后,判断更新后的代理人是否在职,若不在职,则将该代理人信息从在职表转移到离职表;若在职,不移动数据。

步骤5):步骤3)中,若同步的代理人不存在于在职表中,则检查离职表。若存在于离职表,则更新离职表中该代理人的信息;若不存在,则添加该代理人的信息至离职表。

步骤6):步骤5)中更新离职表中该代理人的信息后,NTMS系统判断更新后的代理人是否在职,若在职,则将该代理人从离职表转移到在职表;若不在职,不移动数据。

本示例实施方式中通过数据定时同步和实时同步方式相结合以提高数据同步效率,数据同步至目的系统后进行数据分表存储,以提高后续在目的系统中查找数据的便利性和查找效率。本示例实施方式兼顾了数据读取效率及数据同步的准确性以及同步效率。

需要说明的是,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。另外,也易于理解的是,这些步骤可以是例如在多个模块/进程/线程中同步或异步执行。

进一步的,本示例实施方式中,还提供了一种数据同步处理装置。该装置可以应用于一第一服务器,所述第一服务器例如可以是运行目的系统的服务器。参考图5中所示,装置100可以包括数据定时同步模块101和数据实时同步模块102。其中:

所述数据定时同步模块101,用于向一第二服务器发送一数据定时同步请求,接收所述第二服务器响应所述数据定时同步请求后根据数据更新时间信息在所述第二服务器上查找到并发送来的一个或多个第一数据;其中,所述定时同步请求携带所述数据更新时间信息;

所述数据实时同步模块102,用于根据一预设数据请求向所述第二服务器发送数据实时同步请求,接收所述第二服务器响应所述数据实时同步请求后在所述第二服务器上查找到并发送来的一个或多个第二数据。

参考图6所示,本示例性实施例中,所述第一服务器上可以设有第一数据存储表和第二数据存储表;所述装置100还可以包括第一查询更新模块103、第二查询更新模块104和数据添加模块105。其中:

所述第一查询更新模块103,用于查询所述第二数据是否在所述第一数据存储表中,当所述第二数据在所述第一数据存储表中时,更新所述第一数据存储表中的所述第二数据。

所述第二查询更新模块104,用于当所述第二数据不在所述第一数据存储表中时,查询所述第二数据是否在所述第二数据存储表中,当所述第二数据在所述第二数据存储表中时,更新所述第二数据存储表中的所述第二数据。

所述数据添加模块105,用于当所述第二数据不在所述第二数据存储表中时,添加所述第二数据到所述第二数据存储表。

参考图7所示,本示例性实施例中,所述装置100还可以包括第一判断转移模块106,用于在所述更新所述第一数据存储表中的所述第二数据之后,判断所述第二数据所表征的对象是否存在,若不存在,则将所述第二数据从所述第一数据存储表转移到所述第二数据存储表;若存在,则不移动数据。

参考图7所示,本示例性实施例中,所述装置100还可以包括第二判断转移模块107,用于在所述更新所述第二数据存储表中之前存储的所述第二数据之后,判断所述第二数据所表征的对象是否存在,若存在,则将所述第二数据从所述第二数据存储表转移到所述第一数据存储表;若不存在,则不移动数据。

参考图7所示,本示例性实施例中,所述第一服务器上可以设有第一数据存储表和第二数据存储表;所述装置100还可以包括第三判断转移模块108,用于将所述第一数据存储到所述第一数据存储表中,并检查所述第一数据存储表中是否存在使用频率低于预设值的第三数据,若存在,则将所述第三数据移动至所述第二数据存储表中。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。作为模块或单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现木公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本公开实施方式的方法。

图8示出根据本公开示例实施方式中一种数据同步处理装置400的示意图。例如,装置400可以被提供为一服务器。参照图8,装置400包括处理组件422,其进一步包括一个或多个处理器,以及由存储器432所代表的存储器资源,用于存储可由处理组件422的执行的指令,例如应用程序。存储器432中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件422被配置为执行指令,以执行上述方法。

装置400还可以包括一个电源组件426被配置为执行装置400的电源管理,一个有线或无线网络接口450被配置为将装置400连接到网络,和一个输入输出(I/O)接口458。装置400可以操作基于存储在存储器432的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

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