CN102222071B - 数据同步处理方法、设备及系统 - Google Patents

数据同步处理方法、设备及系统 Download PDF

Info

Publication number
CN102222071B
CN102222071B CN201010150105.7A CN201010150105A CN102222071B CN 102222071 B CN102222071 B CN 102222071B CN 201010150105 A CN201010150105 A CN 201010150105A CN 102222071 B CN102222071 B CN 102222071B
Authority
CN
China
Prior art keywords
sql statement
sequence number
data
database
cache list
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
Application number
CN201010150105.7A
Other languages
English (en)
Other versions
CN102222071A (zh
Inventor
李玉华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu net into Polytron Technologies Inc
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201010150105.7A priority Critical patent/CN102222071B/zh
Publication of CN102222071A publication Critical patent/CN102222071A/zh
Application granted granted Critical
Publication of CN102222071B publication Critical patent/CN102222071B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种数据同步处理方法、设备及系统,方法包括:依序从CRM数据库中读取多条数据变更日志至输入队列中;同时对输入队列中的多条数据变更日志进行分析处理,生成对应的多条SQL语句;按照数据变更日志的读取顺序,依序将对应的多条SQL语句输出至BOSS数据库中,以使BOSS系统依序执行每条SQL语句,实现与CRM系统的数据同步。本发明实施例在保证了CRM系统与BOSS系统的数据更改顺序一致的前提下,大大缩短了CRM-BOSS系统间数据同步处理的时间,提高了数据同步处理的速度,降低了CRM数据库的缓存负担。

Description

数据同步处理方法、设备及系统
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种数据同步处理方法、设备及系统。
背景技术
伴随着客户关系管理(Customer Relationship Management,简称CRM)系统与业务运营支撑系统(Business&Operation Support System,简称BOSS)解耦进程的势在必行,这两个系统之间共有的数据部分,需要通过特定的同步进程进行数据的同步处理。例如在CRM系统中记录和维护的用户数据的变更,必须通过后台的数据同步进程同步到BOSS系统中。
现有的CRM-BOSS用户数据同步接口中,将CRM系统中记录的用户数据变更日志同步到BOSS系统数据库通常采用下述方案实现:CRM系统通过触发器等技术手段将用户数据变更轨迹记录到变更日志表中后,同步处理系统从CRM系统的变更日志表中提取出变更日志,并按照日志产生时间对提取出的变更日志进行排序,数据同步系统根据排列顺序依序地对提取出的变更日志进行分析处理,为每条日志生成一条对应的结构化查询语言(StructuredQuery Language,简称SQL)语句,并依序将生成的SQL语句写入至BOSS系统的数据库中,以使BOSS系统依序执行SQL语句,从而同步实现BOSS数据库中用户数据的变更,且保持同样的数据变更顺序以保证同步后数据的正确性。
但是发明人在实现本发明的过程中发现:现有技术的这种数据处理方法,虽然通过串行地对CRM数据库中的各条变更日志进行分析处理,以依序生成对应的SQL语句的方式,来保证BOSS系统能够依序执行各SQL语句,从而维持与CRM数据库中同样的用户数据变更顺序,但是这种处理方式的速度极其缓慢,尤其当CRM系统中用户数据变更频繁,CRM数据库中积压了大量数据时,同步处理系统处理速度过于缓慢将会给CRM数据库造成很大的压力。
发明内容
本发明实施例提供一种数据同步处理方法、设备及系统,用以解决现有技术中CRM系统和BOSS系统间的数据同步处理方法处理速度慢、效率低的问题,以实现一种速度较快的CRM-BOSS数据同步处理方法。
为实现上述目的,本发明实施例提供一种数据同步处理方法,包括:
依序从CRM数据库中读取多条数据变更日志至输入队列中;
同时对所述输入队列中的多条所述数据变更日志进行分析处理,生成对应的多条SQL语句;
按照所述数据变更日志的读取顺序,依序将对应的所述多条SQL语句输出至BOSS数据库中,以使BOSS系统依序执行每条所述SQL语句,实现与CRM系统的数据同步。
为实现上述目的,本发明实施例还提供一种数据同步处理设备,包括:
数据读取模块,用于依序从CRM数据库中读取多条数据变更日志至输入队列中;
分析处理模块,用于同时对所述输入队列中的多条所述数据变更日志进行分析处理,生成对应的多条SQL语句;
数据输出模块,用于按照所述数据变更日志的读取顺序,依序将对应的所述多条SQL语句输出至BOSS数据库中,以使BOSS系统依序执行每条所述SQL语句,实现与CRM系统的数据同步。
为实现上述目的,本发明实施例还提供一种数据同步处理系统,包括上述的数据同步处理设备,以及分别与所述数据同步处理设备连接的CRM数据库和BOSS数据库。
本发明实施例提供的数据同步处理方法、设备及系统,通过在从CRM数据库中读取出多条数据变更日志之后,对读取出的数据变更日志进行并行处理,同时生成对应的多条SQL语句,而在生成了多条SQL语句后,将生成的各SQL语句按照对应的数据变更日志的读取顺序,输出至BOSS系统数据库中,从而在保证了CRM系统与BOSS系统的数据更改顺序一致的前提下,大大缩短了CRM-BOSS系统间数据同步处理的时间,提高了数据同步处理的速度,降低了CRM数据库的缓存负担。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据同步处理方法的流程图;
图2为本发明实施例提供的另一种数据同步处理方法的流程图;
图3为本发明实施例中缓存列表对存储的各SQL语句的输出进行控制的示意图;
图4为本发明实施例提供的一种数据同步处理设备的结构示意图;
图5为本发明实施例提供的另一种数据同步处理设备的结构示意图;
图6为本发明实施例提供的一种数据同步处理系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种数据同步处理方法的流程图,如图1所示,本实施例的方法包括如下步骤:
步骤100,依序从CRM数据库中读取多条数据变更日志至输入队列中;
随着CRM系统与BOSS系统的解耦的势在必行,CRM系统中存储的用户数据的变更轨迹,必须严格按照原变更顺序及变更方式同步到BOSS系统中。在CRM系统管理了大量的用户资料数据,而对于每个用户资料的每次变更,例如数据的插入、修改、删除及变更字段等,CRM系统均会采用触发器或其他技术手段将该变更轨迹以数据变更日志的方式记录到CRM数据库中。本实施例中,为了实现CRM系统与BOSS系统间的用户数据变更轨迹的同步,设置在CRM-BOSS同步接口的数据同步设备中的数据读取模块将从CRM数据库中顺序读取出各数据变更日志,并将读取出的多条数据变更日志依序存储至输入队列中。该输入队列具有预设大小的存储容量,能够存储一定长度的数据变更日志。
步骤101,同时对输入队列中的多条数据变更日志进行分析处理,生成对应的多条SQL语句;
数据读取模块依序将从CRM数据库中读取出的多条数据变更日志输入至输入队列之后,数据同步设备中的分析处理模块将对输入队列中的各数据变更日志进行分析处理,以根据数据变更日志中的数据变更信息生成对应的SQL语句。在本实施例中,数据同步设备对各数据变更日志进行的分析处理采取并行处理的方式,即在本实施例中,分析处理模块采用多个分析处理子进程,同时对输入队列中的各数据变更日志进行分析处理,以同时生成对应的SQL语句,从而提高系统的整体处理速度。
步骤102,按照数据变更日志的读取顺序,依序将生成的多条SQL语句输出至BOSS数据库中,以使BOSS系统依序执行每条SQL语句,实现与CRM系统的数据同步。
在根据各数据变更日志生成了对应的SQL语句之后,数据同步设备并不立即将生成的SQL语句输出至BOSS系统中。由于在CRM系统中,各个用户数据的变更都是存在一定的时间顺序的,该时间顺序决定了CRM系统中存储的所有数据变更日志都是按照其生成顺序排列在CRM数据库中的,因此为了保证BOSS系统中存储的用户的数据资料与CRM系统中保存的数据资料保持同步,不发生任何错误,对于数据同步设备而言,必须严格按照数据变更日志在CRM数据库中的排列顺序,将对应的SQL语句输出至BOSS系统的数据库中,以使BOSS系统按照SQL语句的入库顺序,依序执行每条SQL语句,从而依序执行与CRM系统中同样的数据变更操作。
因此在本步骤中,数据同步设备在依据各数据变更日志生成了对应的SQL语句之后,将按照上述步骤100中对数据变更日志的读取顺序,依序将生成的对应的多条SQL语句输出至BOSS数据库中,以使BOSS系统能够依序地执行每条SQL语句。由于在上述步骤100中,数据读取模块从CRM数据库中对各数据变更日志的读取是依序进行的,即是按照CRM数据库的排列顺序依次读取的,因此在本步骤中,依照数据变更日志的读取顺序将对应的SQL语句输出至BOSS系统中,能够保证BOSS系统与CRM系统之间的数据同步。
本实施例的数据同步处理方法,通过在从CRM数据库中读取出多条数据变更日志之后,对读取出的数据变更日志进行并行处理,同时生成对应的多条SQL语句,而在生成了多条SQL语句后,将生成的各SQL语句按照对应的数据变更日志的读取顺序,输出至BOSS系统数据库中,从而在保证了CRM系统与BOSS系统的数据更改顺序一致的前提下,大大缩短了CRM-BOSS系统间数据同步处理的时间,提高了数据同步处理的速度,降低了CRM数据库的缓存负担。
图2为本发明实施例提供的另一种数据同步处理方法的流程图,如图2所示,本实施例的方法包括如下步骤:
步骤200,依序从CRM数据库中读取多条数据变更日志至输入队列中;
步骤201,按照数据变更日志的读取顺序,为输入队列中的每条数据变更日志对应设置连续的序号标识;
在本实施例中,当设置在CRM系统和BOSS系统同步接口之间的数据同步设备依序从CRM数据库中读取出多条数据变更日志,并将其缓存至输入队列中之后,还将按照数据变更日志的读取顺序,即按照数据变更日志在CRM数据库中的生成顺序,为输入队列中每条数据变更日志对应设置一连续的序号标识。具体地,该序号标识可以从0开始,依次加1,各序号标识标记了各条数据变更日志在CRM系统产生的先后顺序,而为每一条数据变更日志对应设置序号标识的目的在于:使数据同步设备在之后对各数据变更日志进行分析处理,以及进行将分析处理后的SQL语句输出至BOSS数据库中,能够根据该序号标识控制对应的每条SQL语句的入库先后顺序。
步骤202,同时对输入队列中的多条数据变更日志进行分析处理,生成对应的携带有序号标识的多条SQL语句;
在将各数据变更日志写入至输入队列中,以及为输入队列中的各数据变更日志对应设置了连续的序号标识后,数据同步设备中的分析处理模块将对输入队列中的各数据变更日志进行分析处理,以生成对应的SQL语句。在本实施例中,分析处理模块中加载了多个并行的分析处理子进程,在对各数据变更日志进行分析处理的过程中,各分析处理子进程将同时从输入队列中依序提取出对应数目的数据变更日志,并同时对各数据变更日志进行分析处理操作,以同时生成对应数目的多条SQL语句。
具体地,由于在本实施例的上述步骤201中,数据同步设备为读取至输入队列中的各数据变更日志对应设置了连续的序号标识,而在本步骤的分析处理过程,对各数据变更日志中的序号标识并没有进行实质的分析处理,因此,生成的SQL语句中将同样携带对应的该序号标识,用于标识每条SQL语句对应的数据变更在CRM系统中的产生顺序。
此外需要说明的是,在本步骤中,分析处理模块中加载的分析处理子进程的数目并不需要与输入队列的预设存储容量能够存储的数据变更日志的数目一致,而且在实际应用中,将输入队列能够存储的最大数据变更日志的数目设置为大于分析处理子进程的总数目为较优的实现方式。而这样设置的目的在于:分析处理模块的各分析处理子进程在每次从输入队列提取数据变更日志以进行分析处理时,都可以使每个分析处理子进程得到充分的利用,而且在每次分析处理模块根据提取出的各数据变更日志生成了对应的SQL语句之后,数据读取模块无需等待下次分析处理过程的进行,而是可以再一次从CRM数据库中依序读取相应数目的数据变更日志至输入队列中,即数据提取和分析处理是两个异步的过程。
这样,在本实施例的数据同步处理方法中,对数据变更日志的分析处理和对数据变更日志从CRM数据库中的读取可以同时进行,而且对于每个分析处理子进程而言,其分析处理完一条数据变更日志后,可以接着从输入队列中提取下一条数据变更日志进行分析处理,同样无需其余并列的分析处理子进程的处理完成。由于实际应用中,通常数据变更日志读取的速度远快于对数据变更日志的分析处理速度,因此在每个分析处理子进程处理完一条数据变更日志后,无需等待输入队列对数据变更日志的读取时间,而是可以直接地再次依序从输入队列中进行日志的提取和分析处理,从而节省了数据读取的等待时间,从整体上加快了处理速度。
步骤203,按照SQL语句的序号标识,将生成的每条SQL语句对应写入至缓存列表的对应序号的每个存储单元中,以使缓存列表中存储SQL语句的顺序与SQL语句的序号标识的排列顺序一致;
当分析处理模块对多条数据变更日志进行分析处理,生成了对应的多条SQL语句后,由于在本实施例中,各分析处理子进程对各数据变更日志的分析处理速度并不一致,即各SQL语句的生成存在先后顺序,而若直接按照SQL语句的产生顺序将各SQL语句输出至BOSS数据库中,将导致BOSS系统中的用户数据与CRM系统中的数据存在偏差。因此,在本实施例中,为了保证能够将SQL语句能够按照各对应的数据变更日志在CRM系统中产生时间的先后顺序,依序输出至BOSS数据库中,数据同步设备还将进行一系列特殊的排序处理,以保证BOSS系统与CRM系统之间的数据同步。
具体地,在本实施例中,设置了一个用于对分析处理模块生成的SQL语句进行缓存管理的缓存列表,该缓存列表具有一定的存储容量,且设置有一定数目的存储单元,每个存储单元用于存储一条SQL语句。对于每个分析处理子进程而言,当该分析处理子进程生成了一条SQL语句后,将按照生成的该SQL语句中携带的序号标识,将该SQL语句写入至缓存列表的对应序号的每个存储单元中,且SQL语句写入至缓存列表中之后,各SQL语句在缓存列表中的排列顺序应当满足与SQL语句的序号标识的排列顺序保持一致。
优化地,在本实施例中,本步骤对SQL语句在缓存列表的各存储单元的写入还可以包括如下子步骤:
步骤2030,计算各SQL语句的序号标识与已输出至BOSS数据库的SQL语句的数目的差值;
步骤2031,判断上述差值是否小于等于缓存列表的预设长度L,若是则执行步骤2032,若否则执行步骤2034;
在本实施例中,对于分析处理模块输出的每一条SQL语句在缓存列表中的缓存位置,可以通过计算每条SQL语句在缓存列表中对应的存储单元相对于当前指针所指向的当前存储单元的偏移量而得到。具体地,在本实施例中,用于缓存SQL语句的缓存列表具体为一环形队列,每次将SQL语句写入至缓存列表的位置均可以根据当前指针指向的当前存储单元的序号、以及该SQL语句对应的存储单元相对当前存储单元的偏移量决定。但是由于缓存列表中预设的存储单元的个数有限,即缓存列表能够容置SQL语句的条数有限,因此,若直接将分析处理后生成的所有SQL语句均写入至缓存列表中,有可能造成前一SQL语句还未输出至BOSS数据库中,便被后一SQL语句覆盖,而导致最终BOSS数据库的数据发生错误。
于是,为了避免发生上述错误,本实施例中,在计算各SQL语句在缓存列表中对应存储单元的序号,并将SQL语句写入至缓存列表之前,数据同步处理装置将计算生成的各SQL语句的序号标识与当前已输出至BOSS数据库中的SQL语句总数目之间的差值。计算该差值的目的在于,将该差值与缓存列表的预设长度进行比较,以判别是否应当将生成的SQL语句写入至缓存列表中,还是应当等待缓存列表中对应存储单元中的SQL语句输出至BOSS数据库中后,再将生成的该SQL语句写入至缓存列表中。
步骤2032,按照公式Mi=MOD(i-Mall,L),计算每条SQL语句在缓存列表中对应的存储单元相对于当前指针的偏移量;
具体地,设Ni为第i条SQL语句的序号标识,Mall为当前已输出至BOSS数据库的SQL语句的总数目,若SQL语句的序号标识与当前已输出至BOSS数据库中的SQL语句总数目之间的差值Ni-Mall小于缓存列表的预设长度L,代表该SQL语句在缓存列表中对应存储单元中存储的前一条SQL语句已经被输出至BOSS数据库中,即代表数据同步设备可以将该SQL语句写入至缓存列表中。于是,数据同步设备根据该SQL语句的序号标识Ni与Mall之间的差值,计算该SQL语句在缓存列表中对应的存储单元相对于当前指针的偏移量。
具体地,每个SQL语句在缓存列表中对应的存储单元序号与当前指针指向的当前存储单元的序号之间的偏移量可以根据公式Mi=MOD(Ni-Mall,L)计算得到。该公式中,Mi为第i条SQL语句对应的存储单元相对当前指针的偏移量,Ni为第i条SQL语句的序号标识,L为缓存列表的总长度,Mall为则当前已输出至BOSS数据库的SQL语句的总数目。
举例说明,图3为本发明实施例中缓存列表对存储的各SQL语句的输出进行控制的示意图。如图3所示,假设在本实施例中缓存列表的长度L为16,对应设置有16个存储单元,在初始状态,已输出至BOSS数据库的SQL语句的总数目Mall为0,若需要往缓存列表中写入序号标识为4的SQL语句,则根据上述公式可以计算得到M4=MOD(4-0,16)=4,即序号标识为4的SQL语句应当写入至相对当前指针的偏移量为4的存储单元中。
步骤2033,将SQL语句写入至缓存列表中从当前指针指向的存储单元开始,向后偏移对应的偏移量个数目的存储单元中,并执行步骤204;
计算了每个分析处理子进程生成的SQL语句后,数据同步设备将根据当前指针,以及根据计算得到的每个SQL语句对应的偏移量,将每个SQL语句写入至缓存列表的从当前指针指向的当前存储单元开始,向后偏移对应的偏移量个数目的存储单元的存储单元中,并继续执行步骤204。
步骤2034,进入等待状态,以等待缓存列表中新的SQL语句的输出;
而若在上述步骤2031中,SQL语句的序号标识与当前已输出至BOSS数据库中的SQL语句总数目之间的差值Ni-Mall大于缓存列表的预设长度L,代表该SQL语句在缓存列表中对应存储单元中存储的前一条SQL语句还未被输出至BOSS数据库中,即代表数据同步设备此时暂不能将该SQL语句写入至缓存列表中。于是,数据同步设备将该SQL语句写入进程则将进入等待的状态,等待缓存列表中空间足够时再将新的SQL语句写入。
步骤204,当缓存列表中存在序号标识连续SQL语句时,依序将序号标识连续的至少一条SQL语句依序输出至BOSS数据库中;
而由于分析处理模块中,各分析处理子进程的处理速度并不一致,因此可能出现序号标识在前的数据变更日志还未对应生成SQL语句时,序号标识在后的数据变更日志便已经分析处理完成,生成了序号标识在后的SQL语句,因此此时缓存列表中写入的SQL语句将出现如图3B所示的情形。如图3B所示,序号标识为1、3、4的SQL语句预先生成,被写入缓存列表中,但此时序号标识为0、2的SQL语句还未生成,对于此种情形,数据同步设备并不将序号标识为1、3、4的SQL语句输出,而是等待序号标识为0和2的SQL语句的写入,再依序将序号标识为0-5的SQL语句,从而可以保证输出至BOSS数据库中的SQL语句的顺序。
因此在本实施例中,缓存列表在输出SQL语句至BOSS数据库中之前,将对其缓存的所有SQL语句进行检测,只有在检测到其中存在了序号标识连续SQL语句时,才依序将该序号标识连续的各SQL语句输出。如此一来,可以保证了输出至BOSS数据库中的SQL语句都是按照其对应的数据变更日志在CRM系统的变更顺序执行的,从而保证了BOSS数据库中的用户数据与CRM数据库中的用户数据是同步的,不会出现任何差错。
步骤205,根据输出至BOSS数据库的SQL语句的当前数目M,将当前指针向后偏移M个存储单元,并将输出至BOSS数据库的SQL语句的总数目Mall更新为Mall+M,并返回至步骤2030中。
而在输出了一组SQL语句至BOSS数据库之后,为了使保证写入至缓存列表中的SQL语句的有序性及准确性,数据同步设备将根据输出至BOSS数据库的SQL语句的数目,对缓存列表的当前指针所指向的当前存储单元进行更新,并返回至上述步骤203中的按照各SQL语句的序号标识,将生成的各SQL语句对应写入至缓存列表的对应序号的每个存储单元中的步骤。
具体地,由于缓存列表为一环形的存储队列,因此数据同步设备将当前指针循环向后跳转数目为M个的存储单元,M为此次输出至BOSS数据库的SQL语句。此时,输出至BOSS数据库的SQL语句的总数目Mall被更新为Mall+M,其中,M为输出至BOSS数据库的SQL语句的当前数目。如图3D所示,若将序号标识为0-4的SQL语句输出至BOSS数据库之后,当前指针向后偏移了5个存储单元的位置,指向了缓存列表的第5个存储单元,而其此时输出至BOSS数据库的SQL语句的总数目Mall更新为5。从而数据同步设备可以根据新的Mall值,对上次生成的还未写入至缓存列表中的SQL语句,以及新生成的SQL语句的序号标识进行判断,以根据判断结果,再次向缓存列表中写入新的SQL语句。
此外还需要说明的是,在本实施例中,当缓存列表依序将存储的连续序号标识的SQL语句输出至BOSS数据库时,可以先将各SQL语句输出至一输出列表中,例如如图3所示,可以将0-4的SQL语句写入至输出列表进行暂时存储,然后再依序将输出列表中的SQL语句输出至BOSS数据库中,从而进一步地提高了处理的速度。
本实施例的数据同步处理方法,通过在从CRM数据库中读取出多条数据变更日志之后,为各数据变更日志设置对应的序号标识,对读取出的数据变更日志进行并行处理,同时生成对应的多条SQL语句,而在生成了多条SQL语句后,将生成的各SQL语句按照对应的序号标识,有序地输出至BOSS系统数据库中,从而在保证了CRM系统与BOSS系统的数据更改顺序一致的前提下,大大缩短了CRM-BOSS系统间数据同步处理的时间,提高了数据同步处理的速度,降低了CRM数据库的缓存负担。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图4为本发明实施例提供的一种数据同步处理设备的结构示意图,如图4所示,本实施例的数据同步处理设备包括数据读取模块11、分析处理模块12和数据输出模块13。其中数据读取模块11用于依序从CRM数据库中读取多条数据变更日志至输入队列中;分析处理模块12用于同时对输入队列中的多条数据变更日志进行分析处理,生成对应的多条SQL语句;数据输出模块13用于按照数据变更日志的读取顺序,依序将对应的多条SQL语句输出至BOSS数据库中,以使BOSS系统依序执行每条述SQL语句,实现与CRM系统的数据同步。
其中,本实施例所涉及的所有功能模块、以及其所涉及的具体工作过程,可以参考上述数据同步处理方法所涉及的实施例揭露的相关内容,在此不再赘述。
本实施例的数据同步处理设备,通过在从CRM数据库中读取出多条数据变更日志之后,对读取出的数据变更日志进行并行处理,同时生成对应的多条SQL语句,而在生成了多条SQL语句后,将生成的各SQL语句按照对应的数据变更日志的读取顺序,输出至BOSS系统数据库中,从而在保证了CRM系统与BOSS系统的数据更改顺序一致的前提下,大大缩短了CRM-BOSS系统间数据同步处理的时间,提高了数据同步处理的速度,降低了CRM数据库的缓存负担。
图5为本发明实施例提供的另一种数据同步处理设备的结构示意图,如图5所示,在上一实施例的技术方案的基础上,本实施例的数据同步处理设备还包括序号标识设置模块14,用于在数据读取模块11依序从CRM数据库中读取多条数据变更日志至输入队列中之后,按照数据变更日志的读取顺序,为输入队列中的每条数据变更日志对应设置连续的序号标识。而分析处理模块12具体用于同时对输入队列中的多条数据变更日志进行分析处理,生成对应的携带有序号标识的多条SQL语句。
进一步地,本实施例中的数据输出模块13还可以包括语句写入模块131和输出模块132。其中,语句写入模块131用于按照SQL语句的序号标识,将生成的每条SQL语句对应写入至缓存列表的对应序号的每个存储单元中,以使缓存列表中存储SQL语句的顺序与SQL语句的序号标识的排列顺序一致;而输出模块132则用于当缓存列表中存在序号标识连续SQL语句时,将序号标识连续的至少一条SQL语句依序输出至BOSS数据库中。
更进一步地,本实施例中的语句写入模块131还可以包括计算子模块1311和写入子模块1312。其中计算子模块1311用于若SQL语句的序号标识与当前已输出至BOSS数据库的SQL语句的数目的差值小于缓存列表的预设长度时,按照公式Mi=MOD(Ni-Mall,L),计算SQL语句在缓存列表中对应的存储单元相对于当前指针指向的当前存储单元的偏移量,其中,Ni为第i条SQL语句的序号标识,Mi为序号标识为i的SQL语句在缓存列表中对应的存储单元相对于当前存储单元的偏移量,L为缓存列表的预设长度,Mall为当前已输出至BOSS数据库的SQL语句的数目。写入子模块1312用于将SQL语句写入至缓存列表中从当前指针指向的存储单元开始,向后偏移对应的偏移量个数目的存储单元的存储单元中。
此外,本实施例的数据同步设备还包括更新模块15,用于在输出模块132将序号标识连续的至少一条SQL语句依序输出至BOSS数据库中之后,据输出至BOSS数据库中的SQL语句的当前数目M,将当前指针向后偏移M个存储单元,并将当前输出至BOSS数据库的SQL语句的数目更新为Mall+M,并返回至语句写入模块131执行按照SQL语句的序号标识,将生成的每条SQL语句写入至缓存列表的对应的每个存储单元中的步骤。
更进一步地,本实施例中的数据读取模块11还可以用于,在分析处理模块12同时对输入队列中的多条数据变更日志进行分析处理,生成对应的多条SQL语句之后,重复执行依序从CRM数据库中读取多条数据变更日志至输入队列中的步骤,以覆盖输入队列中已完成分析处理的数据变更日志。
其中,本实施例所涉及的所有功能模块、以及其所涉及的具体工作过程,同样可以参考上述数据同步处理方法所涉及的实施例揭露的相关内容,在此不再赘述。
本实施例的数据同步处理设备,通过在从CRM数据库中读取出多条数据变更日志之后,为各数据变更日志设置对应的序号标识,对读取出的数据变更日志进行并行处理,同时生成对应的多条SQL语句,而在生成了多条SQL语句后,将生成的各SQL语句按照对应的序号标识,有序地输出至BOSS系统数据库中,从而在保证了CRM系统与BOSS系统的数据更改顺序一致的前提下,大大缩短了CRM-BOSS系统间数据同步处理的时间,提高了数据同步处理的速度,降低了CRM数据库的缓存负担。
图6为本发明实施例提供的一种数据同步处理系统的结构示意图。如图6所示,本实施例的数据同步处理系统包括上述的数据同步处理设备1,以及分别与数据同步处理设备1连接的CRM数据库2和BOSS数据库3。
具体地,本实施例所涉及的所有功能模块、以及其所涉及的具体工作过程,可以参考上述数据同步处理方法以及数据同步处理设备所涉及的实施例揭露的相关内容,在此不再赘述。
本实施例的数据同步处理系统,通过在数据同步处理设备从CRM数据库中读取出多条数据变更日志之后,为各数据变更日志设置对应的序号标识,对读取出的数据变更日志进行并行处理,同时生成对应的多条SQL语句,而在生成了多条SQL语句后,将生成的各SQL语句按照对应的序号标识,有序地输出至BOSS系统数据库中,从而在保证了CRM系统与BOSS系统的数据更改顺序一致的前提下,大大缩短了CRM-BOSS系统间数据同步处理的时间,提高了数据同步处理的速度,降低了CRM数据库的缓存负担。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (6)

1.一种数据同步处理方法,其特征在于,包括:
依序从客户关系管理CRM数据库中读取多条数据变更日志至输入队列中;
按照所述数据变更日志的读取顺序,为所述输入队列中的每条所述数据变更日志对应设置连续的序号标识;
同时对所述输入队列中的多条所述数据变更日志进行分析处理,生成对应的携带有所述序号标识的多条SQL语句;
若所述SQL语句的序号标识与当前已输出至业务运营支撑系统BOSS数据库的SQL语句的数目的差值小于缓存列表的预设长度,按照所述SQL语句的所述序号标识,将生成的每条所述SQL语句写入至所述缓存列表的对应的每个存储单元中,以使所述缓存列表中存储所述SQL语句的顺序与所述SQL语句的序号标识的排列顺序一致,所述缓存列表为一环形存储队列;
当所述缓存列表中存在所述序号标识连续SQL语句时,将所述序号标识连续的至少一条SQL语句依序输出至系统与所述BOSS数据库中,以使BOSS系统依序执行每条所述SQL语句,实现与CRM系统的数据同步。
2.根据权利要求1所述的数据同步处理方法,其特征在于:
所述按照所述SQL语句的所述序号标识,将生成的每条所述SQL语句写入至缓存列表的对应的每个存储单元中包括:
若所述SQL语句的序号标识与当前已输出至所述BOSS数据库的SQL语句的数目的差值小于所述缓存列表的预设长度,按照公式Mi=MOD(Ni-Mall,L),计算所述SQL语句在所述缓存列表中对应的存储单元相对于当前指针指向的当前存储单元的偏移量,其中,Ni为第i条SQL语句的序号标识,Mi为序号标识为i的SQL语句在所述缓存列表中对应的存储单元相对于所述当前存储单元的偏移量,L为所述缓存列表的预设长度,Mall为所述当前已输出至所述BOSS数据库的SQL语句的数目;
将生成的所述SQL语句写入至所述缓存列表中从所述当前存储单元开始,向后偏移对应的偏移量个数目的存储单元的存储单元中;
所述将所述序号标识连续的至少一条SQL语句依序输出至所述BOSS数据库中之后,所述方法还包括:
根据输出至所述BOSS数据库中的SQL语句的当前数目M,将所述当前指针向后偏移M个存储单元,并将所述当前已输出至所述BOSS数据库的SQL语句的数目更新为Mall+M,并返回至所述按照所述SQL语句的所述序号标识,将生成的每条所述SQL语句写入至缓存列表的对应的每个存储单元中的步骤。
3.根据权利要求1所述的数据同步处理方法,其特征在于,所述同时对所述输入队列中的多条所述数据变更日志进行分析处理,生成对应的携带有所述序号标识的多条SQL语句之后,所述方法还包括:
返回至依序从CRM数据库中读取多条数据变更日志至输入队列中的步骤,以覆盖所述输入队列中已完成分析处理的所述数据变更日志。
4.一种数据同步处理设备,其特征在于,包括:
数据读取模块,用于依序从客户关系管理CRM数据库中读取多条数据变更日志至输入队列中;
序号标识设置模块,用于在所述数据读取模块依序从CRM数据库中读取多条数据变更日志至输入队列中之后,按照所述数据变更日志的读取顺序,为所述输入队列中的每条所述数据变更日志对应设置连续的序号标识;
分析处理模块,用于同时对所述输入队列中的多条所述数据变更日志进行分析处理,生成对应的携带有所述序号标识的多条SQL语句;
语句写入模块,用于若所述SQL语句的序号标识与当前已输出至业务运营支撑系统BOSS数据库的SQL语句的数目的差值小于缓存列表的预设长度,按照所述SQL语句的所述序号标识,将生成的每条所述SQL语句写入至所述缓存列表的对应的每个存储单元中,以使所述缓存列表中存储所述SQL语句的顺序与所述SQL语句的序号标识的排列顺序一致,所述缓存列表为一环形存储队列;
输出模块,用于当所述缓存列表中存在所述序号标识连续SQL语句时,将所述序号标识连续的至少一条SQL语句依序输出至系统与所述BOSS数据库中,以使BOSS系统依序执行每条所述SQL语句,实现与CRM系统的数据同步。
5.根据权利要求4所述的数据同步处理设备,其特征在于:
所述语句写入模块还包括:计算子模块和写入子模块;
所述计算子模块用于若所述SQL语句的序号标识与当前已输出至所述BOSS数据库的SQL语句的数目的差值小于所述缓存列表的预设长度,按照公式Mi=MOD(Ni-Mall,L),计算所述SQL语句在所述缓存列表中对应的存储单元相对于当前指针指向的当前存储单元的偏移量,其中,Ni为第i条SQL语句的序号标识,Mi为序号标识为i的SQL语句在所述缓存列表中对应的存储单元相对于所述当前存储单元的偏移量,L为所述缓存列表的预设长度,Mall为所述当前已输出至所述BOSS数据库的SQL语句的数目;
所述写入子模块用于将生成的所述SQL语句写入至所述缓存列表中从所述当前存储单元开始,向后偏移对应的偏移量个数目的存储单元的存储单元中;
所述设备还包括更新模块,用于在所述输出模块将所述序号标识连续的至少一条SQL语句依序输出至所述BOSS数据库中之后,根据输出至所述BOSS数据库中的SQL语句的当前数目M,将所述当前指针向后偏移M个存储单元,并将所述当前已输出至所述BOSS数据库的SQL语句的数目更新为Mall+M,并返回至所述语句写入模块执行所述按照所述SQL语句的所述序号标识,将生成的每条所述SQL语句写入至缓存列表的对应的每个存储单元中。
6.根据权利要求4所述的数据同步处理设备,其特征在于,所述数据读取模块还用于,在所述分析处理模块同时对所述输入队列中的多条所述数据变更日志进行分析处理,生成对应的携带有所述序号标识的多条SQL语句之后,重复执行依序从CRM数据库中读取多条数据变更日志至输入队列中,以覆盖所述输入队列中已完成分析处理的所述数据变更日志。
CN201010150105.7A 2010-04-16 2010-04-16 数据同步处理方法、设备及系统 Active CN102222071B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010150105.7A CN102222071B (zh) 2010-04-16 2010-04-16 数据同步处理方法、设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010150105.7A CN102222071B (zh) 2010-04-16 2010-04-16 数据同步处理方法、设备及系统

Publications (2)

Publication Number Publication Date
CN102222071A CN102222071A (zh) 2011-10-19
CN102222071B true CN102222071B (zh) 2014-04-02

Family

ID=44778626

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010150105.7A Active CN102222071B (zh) 2010-04-16 2010-04-16 数据同步处理方法、设备及系统

Country Status (1)

Country Link
CN (1) CN102222071B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150026075A1 (en) * 2013-07-16 2015-01-22 Microsoft Corporation Control of crm data based on spreadsheet actions
CN103425490B (zh) * 2013-07-19 2016-04-20 福建富士通信息软件有限公司 基于crm系统中运行对象数据的管理方法
CN104572689B (zh) * 2013-10-17 2020-03-17 腾讯科技(深圳)有限公司 数据同步方法、装置及系统
CN104978313A (zh) * 2014-04-01 2015-10-14 中兴通讯股份有限公司 数据库系统的数据同步方法、装置及服务器
CN104050284B (zh) * 2014-06-27 2017-11-10 北京思特奇信息技术股份有限公司 一种基于单进程的数据异步查询方法及系统
CN104239537B (zh) * 2014-09-22 2017-07-07 国云科技股份有限公司 一种大数据预处理文本数据生成处理流程实现方法
CN106815275B (zh) * 2015-12-02 2020-11-27 阿里巴巴集团控股有限公司 一种通过备用数据库实现主备数据库同步的方法与设备
CN107665219B (zh) * 2016-07-28 2021-01-29 华为技术有限公司 一种日志管理方法及装置
CN107665255B (zh) * 2017-09-30 2020-12-15 杭州时趣信息技术有限公司 键值数据库数据变更的方法、装置、设备及存储介质
CN109376196B (zh) * 2018-09-25 2021-04-13 浪潮软件科技有限公司 一种redo日志批量同步方法及装置
CN110955653A (zh) * 2018-09-26 2020-04-03 阿里巴巴集团控股有限公司 一种数据页面的处理方法、装置、设备及计算机系统
CN109508244B (zh) * 2018-10-18 2021-03-12 北京新唐思创教育科技有限公司 数据处理方法及计算机可读介质
CN111797158B (zh) * 2019-04-08 2024-04-05 北京沃东天骏信息技术有限公司 数据同步系统、方法和计算机可读存储介质
CN110716916A (zh) * 2019-09-02 2020-01-21 深圳壹账通智能科技有限公司 资源在线管理方法、装置、计算机设备和存储介质
CN111984662B (zh) * 2020-08-20 2024-02-23 中国银行股份有限公司 批量更新数据库的方法及装置
CN112015821B (zh) * 2020-09-08 2023-11-07 香港中文大学(深圳) 一种数据库同步方法、终端以及存储介质
CN113760885A (zh) * 2020-10-23 2021-12-07 北京沃东天骏信息技术有限公司 增量日志处理方法、装置、电子设备及存储介质
CN112307121B (zh) * 2020-10-30 2023-10-31 中国平安人寿保险股份有限公司 基于Oracle的数据同步方法、装置及计算机设备
CN115470294B (zh) * 2022-08-30 2023-05-12 昆仑数智科技有限责任公司 数据库同步方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560700B1 (en) * 1998-11-17 2003-05-06 Telefonaktiebolaget Lm Ericsson (Publ) Protocol for synchronizing parallel processors in a mobile communication system
CN101369283A (zh) * 2008-09-25 2009-02-18 中兴通讯股份有限公司 一种内存数据库与物理数据库间的数据同步方法及系统
CN101436207A (zh) * 2008-12-16 2009-05-20 浪潮通信信息系统有限公司 一种基于日志快照的数据恢复和同步方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560700B1 (en) * 1998-11-17 2003-05-06 Telefonaktiebolaget Lm Ericsson (Publ) Protocol for synchronizing parallel processors in a mobile communication system
CN101369283A (zh) * 2008-09-25 2009-02-18 中兴通讯股份有限公司 一种内存数据库与物理数据库间的数据同步方法及系统
CN101436207A (zh) * 2008-12-16 2009-05-20 浪潮通信信息系统有限公司 一种基于日志快照的数据恢复和同步方法

Also Published As

Publication number Publication date
CN102222071A (zh) 2011-10-19

Similar Documents

Publication Publication Date Title
CN102222071B (zh) 数据同步处理方法、设备及系统
CN110135985B (zh) 一种区块链上交易的并行执行方法及系统
CN104541244B (zh) 用于进行重放执行的方法和设备
CN102831052B (zh) 测试用例自动化生成装置及方法
CN102867071B (zh) 一种网管海量历史数据管理方法
CN102917072A (zh) 用于数据服务器集群之间进行数据迁移的设备、系统及方法
CN102982085A (zh) 数据迁移系统和方法
CN109376196B (zh) 一种redo日志批量同步方法及装置
CN104731896A (zh) 一种数据处理方法及系统
CN109408468A (zh) 文件处理方法和装置、计算设备及存储介质
CN108334277B (zh) 一种日志写入及同步方法、装置、系统、计算机存储介质
US10664460B2 (en) Index B-tree maintenance for linear sequential insertion
CN101110024A (zh) 一种单元测试系统和方法
CN116483441B (zh) 基于移位缓冲的输出时序优化系统、方法及相关设备
CN103186617A (zh) 一种存储数据的方法和装置
CN113010608A (zh) 数据实时同步方法、装置及计算机可读存储介质
CN111291022B (zh) 一种基于区块链的数据存储系统
CN113177090A (zh) 数据处理方法及装置
CN103838780A (zh) 数据库的数据恢复方法及相关的设备
CN103092849A (zh) 文件系统簇管理方法
US20080201556A1 (en) Program instruction rearrangement methods in computer
CN113468196B (zh) 用于处理数据的方法、装置、系统、服务器和介质
CN113177474A (zh) 一种基于rpa技术的数据自动读取录入的方法及系统
CN109658985B (zh) 一种基因参考序列的去冗余优化方法及系统
CN101853278A (zh) 数据存储系统应用方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20170718

Address after: 510640 Guangdong City, Tianhe District Province, No. five, road, public education building, unit 371-1, unit 2401

Patentee after: Guangdong Gaohang Intellectual Property Operation Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: Huawei Technologies Co., Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170817

Address after: Suzhou City, Jiangsu province 215300 Dengyun Road No. 288 Yushan town of Kunshan City

Patentee after: Jiangsu net into Polytron Technologies Inc

Address before: 510640 Guangdong City, Tianhe District Province, No. five, road, public education building, unit 371-1, unit 2401

Patentee before: Guangdong Gaohang Intellectual Property Operation Co., Ltd.

TR01 Transfer of patent right