一种数据同步方法和装置与流程

文档序号:11276574阅读:241来源:国知局
一种数据同步方法和装置与流程

本发明涉及计算机技术领域,特别涉及一种数据同步方法和装置。



背景技术:

随着企业的发展以及大数据时代的到来,各种企业管理软件越来越多的应用于企业中。为了加强企业管理,或者是满足某些特殊的业务需求,需在不同的企业管理软件间实现跨系统的数据交换,也就是将其它系统的数据同步至自身系统的过程。

目前,在进行跨系统的数据同步时,需针对所有不同的数据格式通过二次编程的方式一一进行实现。

但是,由于一个系统可能需要与其它多个系统进行数据同步,而且不同的数据格式的数量也非常多,那么针对每一个其它系统,且针对每一个数据格式均进行编程实现的话,将会耗费大量时间,造成数据同步的效率较低。



技术实现要素:

本发明实施例提供了一种数据同步方法和装置,能够提高数据同步的效率。

第一方面,本发明实施例提供了一种数据同步方法,预先设置数据同步构件;还包括:

确定待采集业务系统,以及确定待同步业务系统;

从所述待采集业务系统获取待同步的至少一个中间表;其中,各个所述中间表中存储有所述待采集业务系统提供的源数据;

从所述待同步业务系统获取待导入数据的至少一个业务表;

针对所述至少一个中间表中的每一个所述中间表,均执行:

确定当前中间表的相关内容与目标业务表相关内容的同步映射关系;

根据各个所述同步映射关系和所述数据同步构件,将各个所述中间表中的源数据同步至相对应的所述业务表中,并将同步后的各个所述业务表导入所述待同步业务系统。

优选地,

所述确定当前中间表的相关内容与目标业务表相关内容的同步映射关系,包括:

确定当前中间表自身与目标业务表自身的第一同步映射关系;确定当前中间表中的字段与所述目标业务表中的字段的第二同步映射关系;确定当前中间表中的主键值与所述目标业务表中的主键值的第三同步映射关系;

所述根据各个所述同步映射关系和所述数据同步构件,将各个所述中间表中的源数据同步至相对应的所述业务表中,包括:

根据各个所述第一同步映射关系、相对应的各个所述第二同步映射关系、相对应的各个所述第三同步映射关系和所述数据同步构件,将各个所述中间表中的源数据同步至相对应的所述业务表中。

优选地,

所述当前中间表中的字段与所述目标业务表中的字段的第二同步映射关系,包括:主键字段映射关系、关联字段映射关系和普通字段映射关系中的任意一种或多种。

优选地,

进一步包括:设置同步依据字段;

在所述确定当前中间表的相关内容与目标业务表相关内容的同步映射关系之后,且在所述根据各个所述同步映射关系和所述数据同步构件,将各个所述中间表中的源数据同步至相对应的所述业务表中之前,进一步包括:

判断所述当前中间表和所述目标业务表中是否均包含所述同步依据字段,如果是,则根据所述同步依据字段,确定所述当前中间表和所述目标业务表中所包含的相同数据之间的映射关系表;

所述根据各个所述同步映射关系和所述数据同步构件,将各个所述中间表中的源数据同步至相对应的所述业务表中,包括:

根据各个所述第一同步映射关系、相对应的各个所述第二同步映射关系、相对应的各个所述第三同步映射关系、所述映射关系表和所述数据同步构件,将各个所述中间表中的源数据同步至相对应的所述业务表中。

优选地,

所述同步依据字段,包括:身份证号和手机号中的任意一种或多种;

优选地,

进一步包括:确定各个所述中间表分别对应的同步顺序;

所述根据各个所述同步映射关系和所述数据同步构件,将各个所述中间表中的源数据同步至相对应的所述业务表中,包括:

根据所述同步顺序、相对应的各个所述第一同步映射关系、相对应的各个所述第二同步映射关系、相对应的各个所述第三同步映射关系、相对应的所述映射关系表和所述数据同步构件,将各个所述中间表中的源数据同步至相对应的所述业务表中。

优选地,

在将所述将同步后的各个所述业务表导入所述待同步业务系统之后,进一步包括:

当所述待采集业务系统所提供的源数据出现新增、修改和删除中的任意一种或多种时,根据所述同步映射关系和所述数据同步构件,对相应的所述业务表中已同步的数据进行更新,并将更新后的所述业务表导入所述待同步业务系统。

第二方面,本发明实施例提供了一种数据同步装置,包括:

设置单元、获取单元、映射关系确定单元、数据同步单元;其中,

所述设置单元,用于预先设置数据同步构件;

所述获取单元,用于从所述待采集系统获取待同步的至少一个中间表;其中,各个所述中间表中存储有所述待采集业务系统提供的源数据;以及从所述待同步业务系统获取待导入数据的至少一个业务表;

所述映射关系确定单元,用于针对所述至少一个中间表中的每一个所述中间表,均执行:确定当前中间表的相关内容与目标业务表相关内容的同步映射关系;

所述数据同步单元,用于根据各个所述同步映射关系和所述数据同步构件,将各个所述中间表中的源数据同步至相对应的所述业务表中,并将同步后的各个所述业务表导入所述待同步业务系统。

优选地,

所述映射关系确定单元,具体用于确定当前中间表自身与目标业务表自身的第一同步映射关系;确定当前中间表中的字段与所述目标业务表中的字段的第二同步映射关系;确定当前中间表中的主键值与所述目标业务表中的主键值的第三同步映射关系;

所述数据同步单元,具体用于根据各个所述第一同步映射关系、相对应的各个所述第二同步映射关系、相对应的各个所述第三同步映射关系和所述数据同步构件,将各个所述中间表中的源数据同步至相对应的所述业务表中。

优选地,

进一步包括:依据字段设置单元和映射关系表确定单元;

所述依据字段设置单元,用于设置同步依据字段;

所述映射关系表确定单元,用于判断所述当前中间表和所述目标业务表中是否均包含所述同步依据字段,如果是,则根据所述同步依据字段,确定所述当前中间表和所述目标业务表中所包含的相同数据之间的映射关系表;

所述数据同步单元,具体用于根据各个所述第一同步映射关系、相对应的各个所述第二同步映射关系、相对应的各个所述第三同步映射关系、所述映射关系表和所述数据同步构件,将各个所述中间表中的源数据同步至相对应的所述业务表中。

优选地,

所述同步依据字段,包括:身份证号和手机号中的任意一种或多种。

优选地,

进一步包括:同步顺序确定单元;

所述数据同步单元,具体用于根据所述同步顺序、相对应的各个所述第一同步映射关系、相对应的各个所述第二同步映射关系、相对应的各个所述第三同步映射关系、相对应的所述映射关系表和所述数据同步构件,将各个所述中间表中的源数据同步至相对应的所述业务表中。

本发明实施例提供了一种数据同步方法和装置,在进行跨系统的数据同步时,通过从确定的待采集业务系统中获取待同步的至少一个中间表,以及从确定的待同步业务系统中获取待导入数据的至少一个业务表,接下来针对每一个业务表,通过确定出当前中间表的相关内容与目标业务表相关内容的同步映射关系,那么就可以根据各个同步映射关系和预设的数据同步构件,将各个中间表中的源数据同步至相对应的业务表中,而整个过程无需再通过一一编程的方式实现,因此本方案能够提高数据同步的效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例提供的一种数据同步方法的流程图;

图2是本发明另一个实施例提供的一种数据同步方法的流程图;

图3是本发明一个实施例提供的一种数据同步装置的结构示意图;

图4是本发明另一个实施例提供的一种数据同步装置的结构示意图;

图5是本发明又一个实施例中提供的一种数据同步装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种数据同步方法,该方法可以包括以下步骤:

步骤101:预先设置数据同步构件。

步骤102:确定待采集业务系统,以及确定待同步业务系统。

步骤103:从所述待采集业务系统获取待同步的至少一个中间表;其中,各个所述中间表中存储有所述待采集业务系统提供的源数据。

步骤104:从所述待同步业务系统获取待导入数据的至少一个业务表。

步骤105:针对所述至少一个中间表中的每一个所述中间表,确定当前中间表的相关内容与目标业务表相关内容的同步映射关系。

步骤106:根据各个所述同步映射关系和所述数据同步构件,将各个所述中间表中的源数据同步至相对应的所述业务表中,并将同步后的各个所述业务表导入所述待同步业务系统。

本发明实施例提供了一种数据同步方法和装置,在进行跨系统的数据同步时,通过从确定的待采集业务系统中获取待同步的至少一个中间表,以及从确定的待同步业务系统中获取待导入数据的至少一个业务表,接下来针对每一个业务表,通过确定出当前中间表的相关内容与目标业务表相关内容的同步映射关系,那么就可以根据各个同步映射关系和预设的数据同步构件,将各个中间表中的源数据同步至相对应的业务表中,而整个过程无需再通过一一编程的方式实现,因此本方案能够提高数据同步的效率。

为了能够确定表与表之间、字段与字段之间以及主键值与主键值之间的同步映射关系,本发明一个实施例中,所述步骤105的具体实施方式,可包括:确定当前中间表自身与目标业务表自身的第一同步映射关系;确定当前中间表中的字段与所述目标业务表中的字段的第二同步映射关系;确定当前中间表中的主键值与所述目标业务表中的主键值的第三同步映射关系;所述步骤106的具体实施方式,可包括:根据各个所述第一同步映射关系、相对应的各个所述第二同步映射关系、相对应的各个所述第三同步映射关系和所述数据同步构件,将各个所述中间表中的源数据同步至相对应的所述业务表中。

其中,为能够确定出当前中间表相关内容与目标业务表相关内容的同步映射关系,可向实施人员展示同步映射配置的界面,从而可以根据实时人员在该界面上的点击触发,来确定表与表之间、字段与字段之间、主键值与主键值之间的同步映射关系。

例如,人力系统需要获取财务系统的人员信息,其中,从财务系统获取到的是以表名称为人员基本信息的中间表,从人力系统获取到的是以表名称以人员主信息的业务表,因此实施人员在界面上进行配置时,首先为该人员基本信息中间表同步映射人员主信息业务表,此时可以确定的是表与表之间的第一同步映射关系,其次人员基本信息中间表中存在的字段是人员姓名,而人员主信息业务表中的存在的字段是姓名,此时可以进行人员姓名和姓名之间的映射,确定的是字段与字段之间的第二同步映射关系,最终人员基本信息中间表中针对陕西省的主键值为11,而人员主信息业务表中针对陕西省的主键值为abc,此时可以进行11和abc之间的第三映射关系,确定的是主键值与主键值之间的第三同步映射关系。

另外,在进行主键值的映射时,也即进行数据映射时,也通过自动数据映射和手动数据映射两种方式,其中,自动数据映射可根据设置的同步依据字段,将业务表与中间表的主键数据进行映射保存;而采用手动映射,在首次同步时,需进行初始化数据映射,确保业务表与中间表主键信息映射正确。

本发明一个实施例中,所述当前中间表中的字段与所述目标业务表中的字段的第二同步映射关系,包括:主键字段映射关系、关联字段映射关系和普通字段映射关系中的任意一种或多种。

其中,为便于实施人员进行配置,每一个中间表和相对应的业务表可以确定是对应一个同步项,如上述实施例中的人员信息可以认为是人员基本信息中间表和人员主信息业务表对应的同步项,而人员基本信息中间表中所包含的字段,如人员姓名、身份证号、性别、职位及开户银行等均可确定是不同的同步映射项目,实时人员可在提供的界面中首先选择出同步项,然后针对当前的同步项选择相应的中间表和业务表,并在进行同步映射项目的映射。

其中,主键字段映射,可用于其他映射项目关联主键,生成数据映射数据;关联字段映射,需注明关联的同步项id,同步时,会根据中间表的id联查到业务表中的同步项id,联查对应同步业务表id,最终存储到关联字段;普通字段映射,普通字段映射在同步数据时不进行任何数据加工,直接同步。

为了快速建立映射关系,本发明一个实施例中,进一步包括:设置同步依据字段;在所述步骤105之后,且在所述步骤106之前,可进一步包括:判断所述当前中间表和所述目标业务表中是否均包含所述同步依据字段,如果是,则根据所述同步依据字段,确定所述当前中间表和所述目标业务表中所包含的相同数据之间的映射关系表;所述步骤106的具体实施方式,可包括:根据各个所述第一同步映射关系、相对应的各个所述第二同步映射关系、相对应的各个所述第三同步映射关系、所述映射关系表和所述数据同步构件,将各个所述中间表中的源数据同步至相对应的所述业务表中。

针对业务表中不存在的数据,需通过同步映射关系将相应中间表中的源数据导入该业务表中,那么针对两个表中均存在的数据,还需确定相同数据之间的映射关系表。本发明实施例中所使用的同步依据字段需要是唯一的,例如,唯一的身份证号、手机号等均可。其中,建立数据映射时,自动根据同步项相同的设置自动数据映射。快速建映射的关系。

本发明一个实施例中,所述同步依据字段,包括:身份证号和手机号中的任意一种或多种;进一步包括:确定各个所述中间表分别对应的同步顺序;所述根据各个所述同步映射关系、所述映射关系表和所述数据同步构件,将各个所述中间表中的源数据同步至相对应的所述业务表中,包括:根据所述同步顺序、相对应的各个所述第一同步映射关系、相对应的各个所述第二同步映射关系、相对应的各个所述第三同步映射关系、相对应的所述映射关系表和所述数据同步构件,将各个所述中间表中的源数据同步至相对应的所述业务表中。

例如,有两个中间表分别对应人员信息和组织信息,那么确定的相应同步顺序依次为组织信息、人员信息,也即首先同步对应组织信息的中间表,其次再同步对应人员信息的中间表。

本发明一个实施例中,在所述步骤106之后,可进一步包括:当所述待采集业务系统所提供的源数据出现新增、修改和删除中的任意一种或多种时,根据所述同步映射关系和所述数据同步构件,对相应的所述业务表中已同步的数据进行更新,并将更新后的所述业务表导入所述待同步业务系统。

本发明实施例中可预置自动同步数据规则,可如下:

对于新增数据设置状态字段state为1,修改为2,删除为3。

新增时,数据同步构件读取数据结构映射信息,逐条进行数据处理,主键由系统自动生成,关联项读取关联同步项信息获取对应键值数据,生成业务数据库新增操作脚本,生成数据映射脚本,存储于堆栈中。

修改时,数据同步构件根据主键读取数据映射信息,联查关联同步项信息获取对应键值数据,生成业务数据库修改操作脚本,生成更新数据映射最后修改时间脚本,存储于堆栈中。

删除时,数据同步构件根据主键读取数据映射信息,生成删除业务数据脚本,生成更新数据映射最后时间脚本,生成备份最后同步前数据脚本,存储于堆栈中。

下面将详细说明本发明实施例提供的一种数据同步方法,如图2所示,该方法可以包括以下步骤:

步骤201:预先设置数据同步构件。

本发明实施例中,针对复杂的业务表同步,可进行二次开发业务同步构建的设置,并利用该二次开发业务同步构件实现数据的同步。

步骤202:确定待采集业务系统a,以及确定待同步业务系统b。

例如,a系统为财务系统,b系统为人力系统,a和b为异构系统。

步骤203:从系统中获取待同步的至少一个中间表;其中,各个中间表中存储有a系统所提供的源数据。

在具体实现时,可向系统发送数据同步操作请求,然后a系统会根据该请求进行至少一个中间表的设置,并提供这至少一个中间表,且这些中间表的格式等均是对应a系统的。

步骤204:从b系统中获取待导入数据的至少一个业务表。

步骤205:针对至少一个中间表中的每一个中间表,均执行:确定当前中间表自身与目标业务表自身的第一同步映射关系。

例如,a系统中表名称为人员基本信息的中间表映射b系统中表名称为人员主信息的业务表。

步骤206:确定当前中间表中的字段与目标业务表中的字段的第二同步映射关系。

例如,人员基本信息的中间表中的人员姓名映射人员主信息的业务表中的姓名。

步骤207:确定当前中间表中的主键值和目标业务表中的主键值的第三同步映射关系。

例如,人员基本信息的中间表中对应山东省的主键值01映射人员主信息的业务表中对应山东省的主键值ce。

步骤208:设置同步依据字段为身份证号。

本发明实施例中只是以身份证号为例,但并不局限于此,还可以设置为手机号等等。

步骤209:判断当前中间表和目标业务表中是否包含均包含身份证号,如果是,则执行步骤210,否则结束当前流程。

步骤210:根据身份证号,确定当前中间表和目标业务表中所包含的相同数据之间的映射关系表。

对于业务表中不存在的数据需进行同步,而对于业务表和相应的中间表中存在的相同数据还需确定数据映射关系。

步骤211:确定各个中间表分别对应的同步顺序。

例如,有两个同步项,分别是组织信息和人员信息,那么同步顺序则为先组织信息,后人员信息。

步骤212:根据同步顺序、相对应的各个第一同步映射关系、相对应的各个第二同步映射关系、相对应的各个第三同步映射关系、相对应的映射关系表和数据同步构件,将各个所述中间表中的源数据同步至相对应的业务表中,并将同步后的各个业务表导入b系统中。

在本发明实施例中,可针对同步过程生成的同步结果存储至预设的同步结果表中,以便之后在数据同步失败时,便于追查数据同步失败问题。

步骤213:当a系统所提供的源数据出现新增、修改和删除中的任意一种或多种时,根据各个第一同步映射关系、相对应的各个第二同步映射关系、相对应的各个第三同步映射关系和数据同步构件,对相应的业务表中已同步的数据进行更新,并将更新后的业务表导入b系统。

如图3所示,本发明实施例提供了一种数据同步装置,包括:

设置单元301、获取单元302、映射关系确定单元303、数据同步单元304;其中,

所述设置单元301,用于预先设置数据同步构件;

所述获取单元302,用于从所述待采集系统获取待同步的至少一个中间表;其中,各个所述中间表中存储有所述待采集业务系统提供的源数据;以及从所述待同步业务系统获取待导入数据的至少一个业务表;

所述映射关系确定单元303,用于针对所述至少一个中间表中的每一个所述中间表,均执行:确定当前中间表的相关内容与目标业务表相关内容的同步映射关系;

所述数据同步单元304,用于根据各个所述同步映射关系和所述数据同步构件,将各个所述中间表中的源数据同步至相对应的所述业务表中,并将同步后的各个所述业务表导入所述待同步业务系统。

本发明一个实施例中,所述映射关系确定单元303,具体用于确定当前中间表自身与目标业务表自身的第一同步映射关系;确定当前中间表中的字段与所述目标业务表中的字段的第二同步映射关系;确定当前中间表中的主键值与所述目标业务表中的主键值的第三同步映射关系;

所述数据同步单元304,具体用于根据各个所述第一同步映射关系、相对应的各个所述第二同步映射关系、相对应的各个所述第三同步映射关系和所述数据同步构件,将各个所述中间表中的源数据同步至相对应的所述业务表中。

本发明一个实施例中,如图4所示,进一步包括:依据字段设置单元401和映射关系表确定单元402;

所述依据字段设置单元401,用于设置同步依据字段;

所述映射关系表确定单元402,用于判断所述当前中间表和所述目标业务表中是否均包含所述同步依据字段,如果是,则根据所述同步依据字段,确定所述当前中间表和所述目标业务表中所包含的相同数据之间的映射关系表;

所述数据同步单元304,具体用于根据各个所述第一同步映射关系、相对应的各个所述第二同步映射关系、相对应的各个所述第三同步映射关系、所述映射关系表和所述数据同步构件,将各个所述中间表中的源数据同步至相对应的所述业务表中。

本发明一个实施例中,所述同步依据字段,包括:身份证号和手机号中的任意一种或多种;

本发明一个实施例中,如图5所示,进一步包括:同步顺序确定单元501;

所述数据同步单元501,具体用于根据所述同步顺序、相对应的各个所述第一同步映射关系、相对应的各个所述第二同步映射关系、相对应的各个所述第三同步映射关系、相对应的所述映射关系表和所述数据同步构件,将各个所述中间表中的源数据同步至相对应的所述业务表中。

上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

综上,本发明各个实施例至少具有如下有益效果:

1、在本发明实施例中,在进行跨系统的数据同步时,通过从确定的待采集业务系统中获取待同步的至少一个中间表,以及从确定的待同步业务系统中获取待导入数据的至少一个业务表,接下来针对每一个业务表,通过确定出当前中间表的相关内容与目标业务表相关内容的同步映射关系,那么就可以根据各个同步映射关系和预设的数据同步构件,将各个中间表中的源数据同步至相对应的业务表中,而整个过程无需在通过一一编程的方式实现,因此本方案能够提高数据同步的效率。

2、在本发明实施例中,通过设置同步依据字段,可以根据该同步依据字段,快速的建立数据映射关系。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质中。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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