CN110175211B - 一种数据同步方法及装置 - Google Patents
一种数据同步方法及装置 Download PDFInfo
- Publication number
- CN110175211B CN110175211B CN201910367298.2A CN201910367298A CN110175211B CN 110175211 B CN110175211 B CN 110175211B CN 201910367298 A CN201910367298 A CN 201910367298A CN 110175211 B CN110175211 B CN 110175211B
- Authority
- CN
- China
- Prior art keywords
- data
- production
- incremental
- date
- target end
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本说明书实施例提供一种数据同步方法及装置。所述方法包括:将业务数据按时效性拆分为存量数据和投产日增量数据;将所述存量数据和投产日增量数据进行数据铺底至目标端数据库;将投产日之后的增量数据堵在源端,在所述投产日增量数据完成铺底之后,将投产日之后的增量数据实时同步至目标端数据库。通过本说明书实施例提供的方法,可以实现将海量银行业务数据在比较有限的窗口无缝地从源端系统同步到目标端系统的同时,减少投产窗口的占用以及降低投产窗口的停业时间。
Description
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种数据同步方法及装置。
背景技术
随着大数据时代的到来,数据已经成为一种重要的资产。无论是在企业,政府,还是教育机构中,数据资产是最具有价值的无形资产。随着信息技术的发展,每个组织机构都积累的大量的数据资料,但这些数据的来源不统一,使得在进行系统整合与数据集成过程中,出现系统与系统间无法进行互联互通和交互共享的问题,这时就需要用到数据同步。
数据同步是单纯的同步意为同时执行同样的操作,而数据同步将对象定位为数据,大多数时候对其的理解为不同存储设备或终端与终端,终端与服务器之间的备份操作。但完整的数据同步应为实时的,即当前操作双方应是互为镜像的,例如备份的过程直至结束即为数据同步,但这个操作样例则应该属于备份。
在银行业务中,由于银行业务需求或者系统架构调整要求,需要将银行海量数据在有限的时间窗口内由源端系统同步到目标端系统,并且不能有丝毫差错。通常源端系统是正在运行的系统(7×24小时运行),而目标端系统一般为未启用的新系统,因此这个操作不能对源端系统有过多影响,而目标端系统可以在等待数据全部迁移、同步完成后再启用。现有方案是,将海量数据从源端系统同步到目标端系统,一般需要源端系统在投产期间停止变业,完成批量操作后,数据不再变化时,开始进行数据同步,在数据同步完成后,目标系统开始工作,使得投产窗口停业时间较长。
发明内容
本说明书实施例的目的是提供一种数据同步方法及装置,以将海量银行业务数据在比较有限的窗口无缝地从源端系统同步到目标端系统的同时,减少窗口的占用以及降低窗口的停业时间。
为解决上述技术问题,本说明书实施例提供一种数据同步方法及装置是这样实现的:
一种数据同步方法,所述方法包括:
将业务数据按时效性拆分为存量数据和投产日增量数据;
将所述存量数据和投产日增量数据进行数据铺底至目标端数据库;
将投产日之后的增量数据堵在源端,在所述投产日增量数据完成铺底之后,将投产日之后的增量数据实时同步至目标端数据库。
一种数据同步装置,所述装置包括:
数据拆分模块,用于将业务数据按时效性拆分为存量数据和投产日增量数据;
数据铺底模块,用于将所述存量数据和投产日增量数据进行数据铺底至目标端数据库;
数据实时同步模块,用于将投产日之后的增量数据堵在源端,在所述投产日增量数据完成铺底之后,将投产日之后的增量数据实时同步至目标端数据库。
由以上本说明书实施例提供的技术方案可见,本说明书实施例通过将业务数据拆分为月底全量数据、月初至投产日前一天的增量数据和投产日增量数据;再提前将月底全量数据和月初至投产日前一天的增量数据装载至目标端数据库;最后将投产日增量数据同步至目标端数据库,从而实现将海量银行业务数据在比较有限的窗口无缝地从源端系统同步到目标端系统的同时,减少投产窗口的占用以及降低投产窗口的停业时间。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一种数据同步方法第一实施例流程图;
图2为本说明书一种数据同步方法第二实施例流程图;
图3为本说明书一种数据同步装置第一实施例的功能模块图;
图4为本说明书一种数据同步装置第一实施例中,数据实时同步模块的功能模块图;
图5为本说明书一种数据同步装置第二实施例的功能模块图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
图1为本说明书一种数据同步方法第一实施例流程图。
在本实施方式中,执行所述数据同步方法的主体可以是具有逻辑运算功能的电子设备,所述电子设备可以是服务器或客户端,所述客户端可以为台式电脑、平板电脑、笔记本电脑、工作站等。当然,客户端并不限于上述具有一定实体的电子设备,其还可以为运行于上述电子设备中的软体。还可以是一种通过程序开发形成的程序软件,该程序软件可以运行于上述电子设备中。
如图1所示,本说明书实施例提供了一种数据同步方法,包括以下步骤:
S110:将业务数据按时效性拆分为存量数据和投产日增量数据。
为了在有限时间内,将投产窗口内海量数据由源端同步到目标端,可以根据需要,将源端的业务数据进行拆分,即按照发生日期将源端业务数据拆分为存量数据和投产日增量数据。存量数据可以提前同步到目标端,不占用投产窗口,而投产窗口内仅同步投产日增量数据,这样大大缩减投产窗口的占用。
在一些实施例中,所述存量数据可以包括投产月月初之前的全量数据和投产月月初至投产日前一天的增量数据。
S120:将所述存量数据和投产日增量数据进行数据铺底至目标端数据库。
铺底数据就是我们在做性能测试之前,在数据库里除数据库字典表外按照业务逻辑存入的大量的数据。银行的铺底数据是有用的业务数据即存量数据,一般来说银行需要保存9个月(几十个T左右)的业务数据,这些数据是有可能被删、改、查的,是需要提供服务的有效数据。在本说明实施例中,所述铺底可以是相对实时下刷而进行的铺底,一般来说实时下刷的数据量较小,在9个月的业务数据总量中每天发生删、改的占比不到千分之一,如果几十个T的数据都通过实时下刷工具同步到目标端,在有限时间内是做不到的,因此需要通过数据铺底即导入文本的方式来实现。
在一些实施例中,可以将存量数据进行数据铺底至目标端数据库,再对投产日增量数据进行数据铺底。
具体地,可以通过以下方式完成数据铺底:
将源端数据库中截止到投产月月初的数据表及数据文件的全量数据采集出来,通过数据库装载工具(比如ORACLE的SQLLOADER),将全量数据装载到目标数据库中。如果源端是数据文件,则目标端需要建立对应的数据表,将全量文本装载到目标数据库的数据表中。为了提高装载效率,在装载时数据表不建立索引,全量数据装载完成以后再建立索引。对于月初至投产日前一天的增量数据和投产日增量数据,源端数据库中数据表及数据文件的数据的增、删、改,可以通过文本方式下传到数据中转中心,并通过以下方式:
MERGE(ifexist(...)
update table
else
insert into table
)
将数据的增、删、改加载到目标数据库,即通过主键判断目标端数据库是否已经存在此条数据,如果存在,则更新此条数据;如果不存在,则插入此条数据。
S130:将投产日之后的增量数据堵在源端,在所述投产日增量数据完成铺底之后,将投产日之后的增量数据实时同步至目标端数据库。
在一些实施例中,可以通过以下方式使数据铺底过程与数据同步工具实时同步的数据之间保持无缝衔接:
在投产日,将实时数据变化堵在源端,然后装载投产日的增量数据,同步完成后再将堵在源端的增量数据发送至目标端数据库中。具体地,将实时数据变化堵在源端指的是让源端数据抓取进程正常工作,并转换为MQ的消息正常写入MQ,但让目标端数据写入进程暂停工作,这样抓取下来的消息就堆积在MQ中等待处理,待投产日的增量数据铺底完成以后,再让目标端数据写入进程启动和工作。
在一些实施例中,在所述投产日增量数据完成铺底之后,可以利用数据同步工具将投产日之后的增量数据实时同步至目标端数据库。所述投产日之后的增量数据包括投产日之后数据增、删、改的变化中的至少一种。
数据同步工具组成包括:源端数据抓取进程、目标端数据写入进程和中间的MQ传输通道,即源端数据抓取进程抓取到数据的增、删、改以后,转换为一条MQ的消息写入MQ,目标端数据写入进程读取到MQ的消息以后,将此条消息转换为一条目标端的数据表的增、删、改语句,并且在目标端执行此条语句,从而完成数据同步。
具体地,数据同步工具可以将源端数据库数据的增、删、改实时转换为目标端数据库表的增、删、改,使目标端的数据与源端数据实时同步,数据同步工具负责将投产日源端的数据变化同步到目标端数据库。
在一些实施例中,源端部分数据如果是以文件方式存储的,数据同步工具不支持将文件中的数据的增、删、改实时变化同步到目标端系统,则可以对源端的数据进行数据预处理,通过数据预处理将文件增、删、改实时变化转变为数据表增、删、改实时变化,保留源系统的文件中的数据的增、删、改,这样可以尽量减少对源端系统的影响。
在一些实施例中,可以将存量数据、投产日增量数据和投产日之后的增量数据存储在数据中转中心中。这样一来,可以方便各目标系统随时获取业务数据,实现后续各目标端系统的增量投产。比如,后续目标端系统又增加了N张数据表,需要从源端系统获取全量数据,则可以从数据中转中心获取N张数据表的投产前存量数据。
在一些实施例中,对于源端数据库中数据表及数据文件的数据的增、删、改,可以通过文本方式下传到数据中转中心,并通过以下方式:
MERGE(ifexist(...)
update table
else
insert into table
)
将数据的增、删、改加载到目标数据库,即通过主键判断目标端数据库是否已经存在此条数据,如果存在,则更新此条数据;如果不存在,则插入此条数据。
在一些实施例中,在将投产日之后的增量数据实时同步至目标端数据库之前,可以先判断源端系统与所述目标端数据库是否为异构的数据库,如果是,则对所述数据进行码制修正及类型转换,再将将码制修正及类型转换后的增量数据实时同步至目标端数据库。
具体地,源端系统与目标端系统有可能是异构的数据库,会有码制转换问题及数据类型不匹配问题,此时需要对所述数据进行码制修正及类型转换。数据类型不匹配问题例如源端有6000字节长度的栏位,但目标端数据库不支持6000字节长度的栏位,则可以通过数据类型转换将源端6000字节长度的栏位分拆为多个栏位。码制转换问题比如源端EBCDIC码制,中文字符占两个字节并且前后有0E\0F,目标端是UTF-8码制中文字符占3-6字节不定,对于源端字符类型的栏位,但实际存储的数据却是一段压缩型数值加一段中文加一段英文字符的混合数据的场景,码制修正可以将此种类型栏位通过二进制字节流的方式同步到目标端,从而保证同步下去的分段数据的位置固定,可以分段截取使用;再比如特殊汉字和字符有两种UTF-8码,数据同步工具所选用的UTF-8码与目标应用系统选用的UTF-8码是不同的,通过码制修正将数据同步工具的码表修改为与目标系统选用的UTF-8码一致。
在一些实施例中,在将投产日之后的增量数据实时同步至目标端数据库之后,为确保数据同步工具同步的数据的正确性,还可以包括数据核对步骤,通过数据核对可以判断同步的数据是否正常。
具体的,可以通过以下规则对同步的数据是否正常进行判断:
对比所述数据中转中心中的增量数据和所述目标端数据库的增量数据,如果出现以下情况至少一种,则判断同步的数据正常:
1、所述数据中转中心中的投产日之后的增量数据和所述目标端数据库的投产日之后的增量数据的修改日期相同、且内容也相同。
2、所述数据中转中心中的投产日之后的增量数据和所述目标端数据库的投产日之后的增量数据的修改日期不同、且目标端数据库的增量数据修改日期较新。
如果出现以下情况至少一种,则判断同步的数据异常,并记录差异数据:
1、所述数据中转中心中的投产日之后的增量数据和所述目标端数据库的投产日之后的增量数据的修改日期相同、但内容不同。
2、所述数据中转中心中的投产日之后的增量数据和所述目标端数据库的投产日之后的增量数据的修改日期不同、且数据中转中心中的增量数据的修改日期较新。
3、所述所述数据中转中心中的投产日之后的增量数据在目标端数据库中不存在。
在一些实施例中,如果数据核对步骤判断出数据同步工具同步的数据出现异常,则可以增加数据修复步骤,将源端数据库的数据与目标端数据库的数据的差异数据进行修复,使源端数据库的数据与目标端数据库的数据保持一致。
具体地,将数据核对步骤中记录的差异数据生成差异结果文件,根据差异结果文件对数据进行修复,并将修复后的文件上传到源端数据库中,同时通过数据同步工具实时同步到目标端数据库。
本说明书实施例通过将业务数据拆分为存量数据和投产日增量数据,再将所述存量数据和投产日增量数据进行数据铺底至目标端数据库,将投产日之后的增量数据堵在源端,最后在所述投产日增量数据完成铺底之后,将投产日之后的增量数据实时同步至目标端数据库,从而实现将海量银行业务数据在比较有限的窗口无缝地从源端系统同步到目标端系统的同时,减少投产窗口的占用以及降低投产窗口的停业时间。
下面介绍本说明书一种数据同步方法第二实施例。
图2为本说明书一种数据同步方法第二实施例流程图,如图2所示,所述数据同步方法包括以下步骤:
S200:将业务数据按时效拆分为存量数据和投产日增量数据。
S201:将存量数据和投产日增量数据进行数据铺底至目标端数据库。
S202:将投产日之后的增量数据堵在源端,在所述投产日增量数据完成铺底之后,将投产日之后的增量数据实时同步至目标端数据库。
在一些实施例中,可以通过以下方式使数据铺底过程与数据同步工具实时同步的数据之间保持无缝衔接:
在投产日,将实时数据变化堵在源端,然后装载投产日的增量数据,同步完成后再将堵在源端的增量数据发送至目标端数据库中。具体地,将实时数据变化堵在源端指的是让源端数据抓取进程正常工作,并转换为MQ的消息正常写入MQ,但让目标端数据写入进程暂停工作,这样抓取下来的消息就堆积在MQ中等待处理,待投产日的增量数据铺底完成以后,再让目标端数据写入进程启动和工作。
在一些实施例中,在所述投产日增量数据完成铺底之后,可以利用数据同步工具将投产日之后的增量数据实时同步至目标端数据库。
数据同步工具组成包括:源端数据抓取进程、目标端数据写入进程和中间的MQ传输通道,即源端数据抓取进程抓取到数据的增、删、改以后,转换为一条MQ的消息写入MQ,目标端数据写入进程读取到MQ的消息以后,将此条消息转换为一条目标端的数据表的增、删、改语句,并且在目标端执行此条语句,从而完成数据同步。
具体地,数据同步工具可以将源端数据库数据的增、删、改实时转换为目标端数据库表的增、删、改,使目标端的数据与源端数据实时同步,数据同步工具负责将投产日源端的数据变化同步到目标端数据库。
在一些实施例中,源端部分数据如果是以文件方式存储的,数据同步工具不支持将文件中的数据的增、删、改实时变化同步到目标端系统,则可以对源端的数据进行数据预处理,通过数据预处理将文件增、删、改实时变化转变为数据表增、删、改实时变化,保留源系统的文件中的数据的增、删、改,这样可以尽量减少对源端系统的影响。
在一些实施例中,可以将存量数据、投产日增量数据和投产日之后的增量数据存储在数据中转中心中。这样一来,可以方便各目标系统随时获取业务数据,实现后续各目标端系统的增量投产。比如,后续目标端系统又增加了N张数据表,需要从源端系统获取全量数据,则可以从数据中转中心获取N张数据表的投产前存量数据。
在一些实施例中,对于源端数据库中数据表及数据文件的数据的增、删、改,可以通过文本方式下传到数据中转中心,并通过以下方式:
MERGE(ifexist(...)
update table
else
insert into table
)
将数据的增、删、改加载到目标数据库,即通过主键判断目标端数据库是否已经存在此条数据,如果存在,则更新此条数据;如果不存在,则插入此条数据。
在一些实施例中,在将投产日之后的增量数据实时同步至目标端数据库之前,可以先判断源端系统与所述目标端数据库是否为异构的数据库,如果是,则对所述数据进行码制修正及类型转换,再将将码制修正及类型转换后的增量数据实时同步至目标端数据库。
具体地,源端系统与目标端系统有可能是异构的数据库,会有码制转换问题及数据类型不匹配问题,此时需要对所述数据进行码制修正及类型转换。数据类型不匹配问题例如源端有6000字节长度的栏位,但目标端数据库不支持6000字节长度的栏位,则可以通过数据类型转换将源端6000字节长度的栏位分拆为多个栏位。码制转换问题比如源端EBCDIC码制,中文字符占两个字节并且前后有0E\0F,目标端是UTF-8码制中文字符占3-6字节不定,对于源端字符类型的栏位,但实际存储的数据却是一段压缩型数值加一段中文加一段英文字符的混合数据的场景,码制修正可以将此种类型栏位通过二进制字节流的方式同步到目标端,从而保证同步下去的分段数据的位置固定,可以分段截取使用;再比如特殊汉字和字符有两种UTF-8码,数据同步工具所选用的UTF-8码与目标应用系统选用的UTF-8码是不同的,通过码制修正将数据同步工具的码表修改为与目标系统选用的UTF-8码一致。
S203:对同步后的数据进行数据核对,判断同步后的数据是否正常。
在一些实施例中,在将投产日之后的增量数据实时同步至目标端数据库之后,为确保数据同步工具同步的数据的正确性,还可以包括数据核对步骤,通过数据核对可以判断同步的数据是否正常。
具体的,可以通过以下规则对同步的数据是否正常进行判断:
对比所述数据中转中心中的增量数据和所述目标端数据库的增量数据,如果出现以下情况至少一种,则判断同步的数据正常:
1、所述数据中转中心中的投产日之后的增量数据和所述目标端数据库的投产日之后的增量数据的修改日期相同、且内容也相同。
2、所述数据中转中心中的投产日之后的增量数据和所述目标端数据库的投产日之后的增量数据的修改日期不同、且目标端数据库的增量数据修改日期较新。
如果出现以下情况至少一种,则判断同步的数据异常,并记录差异数据:
1、所述数据中转中心中的投产日之后的增量数据和所述目标端数据库的投产日之后的增量数据的修改日期相同、但内容不同。
2、所述数据中转中心中的投产日之后的增量数据和所述目标端数据库的投产日之后的增量数据的修改日期不同、且数据中转中心中的增量数据的修改日期较新。
3、所述所述数据中转中心中的投产日之后的增量数据在目标端数据库中不存在。
S204:如果同步的数据异常,记录异常数据,并发送异常数据至源端。
S205:修复所述异常数据,并将修复后的数据同步至目标端数据库。
在一些实施例中,如果数据核对步骤判断出数据同步工具同步的数据出现异常,则可以增加数据修复步骤,将源端数据库的数据与目标端数据库的数据的差异数据进行修复,使源端数据库的数据与目标端数据库的数据保持一致。
具体地,将数据核对步骤中记录的异常数据生成差异结果文件,根据差异结果文件对数据进行修复,并将修复后的文件上传到源端数据库中,同时通过数据同步工具实时同步到目标端数据库。
本说明书实施例通过将业务数据拆分为存量数据和投产日增量数据,再将所述存量数据和投产日增量数据进行数据铺底至目标端数据库,将投产日之后的增量数据堵在源端,最后在所述投产日增量数据完成铺底之后,将投产日之后的增量数据实时同步至目标端数据库,并增加数据核对步骤和数据修复步骤,从而实现将海量银行业务数据在比较有限的窗口无缝地从源端系统同步到目标端系统的同时,减少投产窗口的占用以及降低投产窗口的停业时间,并保证同步的数据的正确性。
下面介绍本说明书一种数据同步装置第一实施例。
图3为本说明书一种数据同步装置第一实施例流程图,如图3所示,所述数据同步装置可以包括数据拆分模块310、数据铺底模块320和数据实时同步模块330。
其中,数据拆分模块310,用于将业务数据按时效性拆分为存量数据和投产日增量数据。
数据铺底模块320,用于将所述存量数据和投产日增量数据进行数据铺底至目标端数据库。
数据实时同步模块330,用于将投产日之后的增量数据堵在源端,在所述投产日增量数据完成铺底之后,将投产日之后的增量数据实时同步至目标端数据库。
在一些实施例中,所述装置还可以包括码制修正及类型转换模块,用于在将投产日之后的增量数据实时同步至目标端数据库之前,判断所述目标端数据库与源端数据库是否为异构数据库,如果是,则对所述增量数据进行码制修正及类型转换。
在一些实施例中,所述装置还可以包括数据中转中心存储模块,用于将存量数据、投产日增量数据和投产日之后的增量数据存储在数据中转中心中。
在一些实施例中,所述投产日之后的增量数据包括投产日之后数据增、删、改的变化中的至少一种。
在一些实施例中,如图4所示,所述数据实时同步模块330还可以包括:
数据预处理模块331用于将所述投产日之后数据增、删、改的变化转变为对应数据表增、删、改的变化。
数据实时同步子模块332,用于将所述数据表增、删、改的变化实时同步至目标端数据库。
下面介绍本说明书一种数据同步装置第二实施例。
图5为本说明书一种数据同步装置第二实施例流程图,如图5所示,所述数据同步装置可以包括数据拆分模块510、数据铺底模块520、数据实时同步模块530、数据核对模块540和数据修复模块550。
其中,数据拆分模块510,用于将业务数据按时效拆分为存量数据和投产日增量数据。
数据铺底模块520,用于将存量数据和投产日增量数据进行数据铺底至目标端数据库。
数据实时同步模块530,用于将投产日之后的增量数据堵在源端,在所述投产日增量数据完成铺底之后,将投产日之后的增量数据实时同步至目标端数据库。
数据核对模块540,用于对同步后的数据进行数据核对,判断同步后的数据是否正常。
数据修复模块550,用于修复所述异常数据,并将修复后的数据同步至目标端数据库。在一些实施例中,所述装置还可以包括码制修正及类型转换模块,用于在将投产日之后的增量数据实时同步至目标端数据库之前,判断所述目标端数据库与源端数据库是否为异构数据库,如果是,则对所述增量数据进行码制修正及类型转换。
在一些实施例中,所述装置还可以包括数据中转中心存储模块,用于将存量数据、投产日增量数据和投产日之后的增量数据存储在数据中转中心中。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于装置实施例和设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员在阅读本说明书文件之后,可以无需创造性劳动想到将本说明书列举的部分或全部实施例进行任意组合,这些组合也在本说明书公开和保护的范围内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(AlteraHardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。
Claims (15)
1.一种数据同步方法,其特征在于,所述方法包括:
将业务数据按时效性拆分为存量数据和投产日增量数据;其中,所述存量数据不占用投产窗口,所述投产窗口内仅同步投产日增量数据;
将所述存量数据和投产日增量数据进行数据铺底至目标端数据库;包括:将存量数据进行数据铺底至目标端数据库,再对投产日增量数据进行数据铺底;
将投产日之后的增量数据堵在源端,在所述投产日增量数据完成铺底之后,将投产日之后的增量数据实时同步至目标端数据库;其中,所述将投产日之后的增量数据堵在源端包括:源端数据抓取进程正常工作,并转换为MQ的消息正常写入MQ,使目标端数据库写入进程暂停工作;
所述将投产日之后的增量数据实时同步至目标端数据库之后,还包括:
对比数据中转中心中的投产日之后的增量数据和所述目标端数据库的投产日之后的增量数据,如果出现以下情况至少一种,则判断同步的数据正常:
所述数据中转中心中的投产日之后的增量数据和所述目标端数据库的投产日之后的增量数据的修改日期相同、且内容也相同;
所述数据中转中心中的投产日之后的增量数据和所述目标端数据库的投产日之后的增量数据的修改日期不同、且目标端数据库的增量数据修改日期较新。
2.如权利要求1所述的数据同步方法,其特征在于,所述存量数据包括:投产月月初之前的全量数据和投产月月初至投产日前一天的增量数据。
3.如权利要求1所述的数据同步方法,其特征在于,所述将投产日之后的增量数据实时同步至目标端数据库,包括:
判断所述目标端数据库与源端数据库是否为异构数据库,如果是,则对所述增量数据进行码制修正及类型转换;
将码制修正及类型转换后的增量数据实时同步至目标端数据库。
4.如权利要求1或3所述的数据同步方法,其特征在于,所述投产日之后的增量数据包括投产日之后数据增、删、改的变化中的至少一种。
5.如权利要求4所述的数据同步方法,其特征在于,所述将投产日之后的增量数据实时同步至目标端数据库还包括:
将所述投产日之后数据增、删、改的变化转变为对应数据表增、删、改的变化;
将所述数据表增、删、改的变化实时同步至目标端数据库。
6.如权利要求1所述的数据同步方法,其特征在于,所述方法还包括:
将存量数据、投产日增量数据和投产日之后的增量数据存储在数据中转中心中。
7.如权利要求6所述的数据同步方法,其特征在于,所述将投产日之后的增量数据实时同步至目标端数据库之后,还包括:
对比所述数据中转中心中的投产日之后的增量数据和所述目标端数据库的投产日之后的增量数据,如果出现以下情况至少一种,则判断同步的数据异常,并记录差异数据:
所述数据中转中心中的投产日之后的增量数据和所述目标端数据库的投产日之后的增量数据的修改日期相同、但内容不同;
所述数据中转中心中的投产日之后的增量数据和所述目标端数据库的投产日之后的增量数据的修改日期不同、且数据中转中心中的增量数据的修改日期较新;
所述数据中转中心中的投产日之后的增量数据在目标端数据库中不存在。
8.如权利要求7所述的数据同步方法,其特征在于,在判断数据同步过程异常之后,包括:
修复所述差异数据,并将修复后的数据同步至目标端数据库。
9.一种数据同步装置,其特征在于,所述装置包括:
数据拆分模块,用于将业务数据按时效性拆分为存量数据和投产日增量数据;其中,所述存量数据不占用投产窗口,所述投产窗口内仅同步投产日增量数据;
数据铺底模块,用于将所述存量数据和投产日增量数据进行数据铺底至目标端数据库;包括:将存量数据进行数据铺底至目标端数据库,再对投产日增量数据进行数据铺底;
数据实时同步模块,用于将投产日之后的增量数据堵在源端,在所述投产日增量数据完成铺底之后,将投产日之后的增量数据实时同步至目标端数据库;其中,所述将投产日之后的增量数据堵在源端包括:源端数据抓取进程正常工作,并转换为MQ的消息正常写入MQ,使目标端数据库写入进程暂停工作;
所述装置还包括:数据核对模块,用于在数据同步完成后,根据以下规则判断同步的数据是否正常:
对比数据中转中心中的投产日之后的增量数据和所述目标端数据库的投产日之后的增量数据,如果出现以下情况至少一种,则判断同步的数据正常:
所述数据中转中心中的投产日之后的增量数据和所述目标端数据库的投产日之后的增量数据的修改日期相同、且内容也相同;
所述数据中转中心中的投产日之后的增量数据和所述目标端数据库的投产日之后的增量数据的修改日期不同、且目标端数据库的增量数据修改日期较新。
10.如权利要求9所述的数据同步装置,其特征在于,所述装置还包括:
码制修正及类型转换模块,用于在将投产日之后的增量数据实时同步至目标端数据库之前,判断所述目标端数据库与源端数据库是否为异构数据库,如果是,则对所述增量数据进行码制修正及类型转换。
11.如权利要求9或10所述的数据同步装置,其特征在于,所述投产日之后的增量数据包括投产日之后数据增、删、改的变化中的至少一种。
12.如权利要求11所述的数据同步装置,其特征在于,所述数据实时同步模块包括:
数据预处理模块,用于将所述投产日之后数据增、删、改的变化转变为对应数据表增、删、改的变化;
数据实时同步子模块,用于将所述数据表增、删、改的变化实时同步至目标端数据库。
13.如权利要求9所述的数据同步装置,其特征在于,所述装置还包括:
数据中转中心存储模块,用于将存量数据、投产日增量数据和投产日之后的增量数据存储在数据中转中心中。
14.如权利要求13所述的数据同步装置,其特征在于,所述装置还包括:
如果出现以下情况至少一种,则判断同步的数据异常,并记录差异数据:
所述数据中转中心中的投产日之后的增量数据和所述目标端数据库的投产日之后的增量数据的修改日期相同、但内容不同;
所述数据中转中心中的投产日之后的增量数据和所述目标端数据库的投产日之后的增量数据的修改日期不同、且数据中转中心中的增量数据的修改日期较新;
所述数据中转中心中的投产日之后的增量数据在目标端数据库中不存在。
15.如权利要求14所述的数据同步装置,其特征在于,所述装置还包括:
数据修复模块,用于在判断数据同步过程异常之后,修复所述差异数据,并将修复后的数据同步至目标端数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910367298.2A CN110175211B (zh) | 2019-05-05 | 2019-05-05 | 一种数据同步方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910367298.2A CN110175211B (zh) | 2019-05-05 | 2019-05-05 | 一种数据同步方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110175211A CN110175211A (zh) | 2019-08-27 |
CN110175211B true CN110175211B (zh) | 2021-10-19 |
Family
ID=67690518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910367298.2A Active CN110175211B (zh) | 2019-05-05 | 2019-05-05 | 一种数据同步方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110175211B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110647534B (zh) * | 2019-09-19 | 2022-11-04 | 中国银行股份有限公司 | 一种跨数据库平台同步数据的核对方法、设备以及系统 |
CN110674152B (zh) * | 2019-09-24 | 2023-06-23 | 京东科技控股股份有限公司 | 数据同步方法与装置、存储介质、电子设备 |
CN110781197B (zh) * | 2019-09-29 | 2023-09-26 | 北京淇瑀信息科技有限公司 | 一种hive离线同步校验方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104881485A (zh) * | 2015-06-04 | 2015-09-02 | 中国银行股份有限公司 | 一种数据同步方法及系统 |
CN106446064A (zh) * | 2016-09-05 | 2017-02-22 | 中国银行股份有限公司 | 一种数据转换方法及装置 |
CN106874389A (zh) * | 2017-01-11 | 2017-06-20 | 腾讯科技(深圳)有限公司 | 数据的迁移方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108196910B (zh) * | 2018-01-02 | 2021-03-30 | 中国工商银行股份有限公司 | 一种软件版本的切换方法、设备以及系统 |
-
2019
- 2019-05-05 CN CN201910367298.2A patent/CN110175211B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104881485A (zh) * | 2015-06-04 | 2015-09-02 | 中国银行股份有限公司 | 一种数据同步方法及系统 |
CN106446064A (zh) * | 2016-09-05 | 2017-02-22 | 中国银行股份有限公司 | 一种数据转换方法及装置 |
CN106874389A (zh) * | 2017-01-11 | 2017-06-20 | 腾讯科技(深圳)有限公司 | 数据的迁移方法和装置 |
Non-Patent Citations (3)
Title |
---|
赵月,段颖颖,吴冰.银行IT架构转型下测试工作实践与思考.《金融电子化》.2018,正文第1-2页. * |
银行IT架构转型下测试工作实践与思考;赵月,段颖颖,吴冰;《金融电子化》;20180831;正文第1-2页 * |
面向共享数据中心的数据集成平台的设计与实现;史鑫;《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》;20061215;正文第2-5章 * |
Also Published As
Publication number | Publication date |
---|---|
CN110175211A (zh) | 2019-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110175211B (zh) | 一种数据同步方法及装置 | |
US8943029B2 (en) | On-line transaction processing (OLTP) compression and re-compression of database data | |
CN102129425B (zh) | 数据仓库中大对象集合表的访问方法及装置 | |
US20200356624A1 (en) | Collaborative document editing system and method | |
CN103810212A (zh) | 一种数据库索引的自动创建方法及系统 | |
CN111651519B (zh) | 数据同步方法、数据同步装置、电子设备及存储介质 | |
US20100076937A1 (en) | Feed processing | |
US20120158742A1 (en) | Managing documents using weighted prevalence data for statements | |
CN105530272A (zh) | 一种应用数据的同步方法和装置 | |
CN111367895B (zh) | 数据迁移方法及装置 | |
US20120066180A1 (en) | File-backed in-memory structured storage for service synchronization | |
CN111159040A (zh) | 一种测试数据生成方法、装置、设备及存储介质 | |
CN112783482B (zh) | 一种可视化表单生成方法、装置、设备及存储介质 | |
US20240054110A1 (en) | Method, apparatus and electronic device for creating quantum vehicle model parts basic database, and storage medium | |
CN104679736A (zh) | 一种能够统计低错的翻译系统 | |
CN102737082A (zh) | 一种动态更新文稿数据索引的方法和系统 | |
CN111143461A (zh) | 映射关系处理系统、方法和电子设备 | |
US20180025034A1 (en) | Archival of data in a relational database management system using block level copy | |
CN116069859A (zh) | 数据库的增量数据同步方法、存储介质与计算机设备 | |
CN107609038B (zh) | 数据清理方法和装置 | |
CN114003659A (zh) | 数据同步方法、装置、电子设备、存储介质及程序产品 | |
CN113434597A (zh) | 数据同步方法、装置和电子设备 | |
CN110543520B (zh) | 一种数据迁移的方法和装置 | |
CN114510534B (zh) | 数据同步方法、装置、设备及存储介质 | |
TWI816875B (zh) | 資料同步查詢方法、裝置、電腦裝置及存儲介質 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |