一种数据处理方法及其系统的制作方法

文档序号:6586428阅读:114来源:国知局
专利名称:一种数据处理方法及其系统的制作方法
技术领域
本申请涉及通信领域中的数据处理技术,尤其涉及一种数据处理方法及其系统。
背景技术
主流关系数据库(如MySQL,PostgreSQL, Oracle)都有主从复制(Implication) 功能。假设A是主服务器,B是从服务器,并且基于数据库的业务系统部署了“数据库服 务器A”向“数据库服务器B”复制功能,则当数据库服务器A上发生数据增(Insert)、删 (Delete)、改(Update)操作时,这些操作会被同步到数据库服务器B,这个过程称为复制 (Replication)。通常,人们在处理基于数据库的业务时,会经常用到对数据库中的数据记录的增 (Insert), (Delete)、改(Update)、查(Select)四种操作。部署数据库复制之后,这些与 数据记录写操作相关的操作(包括增、删、改)就会按顺序由主数据库服务器同步到从数据 库服务器上。但这种同步操作必须是有序的。假设在记录有用户签名的业务系统中,主数据库 服务器为DB1,从数据库服务器为DB2,DBl上发生了这样一系列操作场景一 ID为12065的用户将自己的签名设置为“爱管闲事的狗”;相应的 SQL 语句 1 为update user_sign set nickname =,,爱管闲事的 狗” whereuserid = 12065 ;相应的数据库操作为把ID为12065的用户的昵称更新为“爱管闲事的狗”;场景二 ID为12065的用户将自己的签名设置为“盛夏的果实”;相应的 SQL 语句 2 为update user_sign set nickname =,,盛夏的果 实” whereuserid = 12065 ;相应的数据库操作为把ID为12065的用户的昵称更新为“盛夏的果实”;场景三ID为12065的用户将自己的签名设置为“大约在冬季”;才目应白勺 SQL -β) 3 ^ :update user_sign set nickname =,, X ^t 季” whereuserid = 12065 ;相应的数据库操作为把ID为12065的用户的昵称更新为“大约在冬季”。当DBl向DB2进行复制操作时,用于更新数据记录的SQL语句1、SQL语句2、SQL语 句3必须依次执行,这样DB1、DB2上的数据才能保持一致。如果DB2上的执行顺序是SQL 语句1、SQL语句3、SQL语句2,则DBl上12065的昵称是“大约在冬季”,而DB2上12065的 昵称是“盛夏的果实”,主、从数据库服务器中的数据就不一致了。由于更新数据记录的操作在复制过程中必须按序执行才能保证主、从数据库服务 器中的数据的一致性,为了保证主、从数据库服务器中的数据的一致性,主、从数据库服务 器之间的复制操作通常是单线程进行的,其执行效率较低。申请内容本申请实施例提供一种数据库操作方法及其系统,用以解决现有数据处理技术中数据库复制操作效率低的问题。本申请实施例提供的技术方案,包括一种数据处理方法,包括以下步骤当获取到对数据库中的数据记录进行更新的请求后,根据所请求更新的数据记录 在所述数据库中新插入一对象标识相同的数据记录,并在新插入的数据记录中添加版本信 息,所述版本信息用于表明具有相同对象标识的数据记录的插入操作的时间顺序;当将所述数据库复制到另一数据库时,利用多个线程并行执行数据库复制操作。一种数据处理系统,包括获取模块,用于获取对数据库中的数据记录进行更新的请求;更新处理模块,用于当获取到对数据记录进行更新的请求后,根据所请求更新的 数据记录在所述数据库中新插入一对象标识相同的数据记录,并在新插入的数据记录中 添加版本信息,所述版本信息用于表明具有相同对象标识的数据记录的插入操作的时间顺 序;复制处理模块,用于将所述数据库复制到另一数据库时,利用多个线程并行执行 数据库复制操作。本申请的上述实施例,通过在获取到对数据库中的数据记录进行更新的请求时, 在数据库中新插入一对象标识相同的数据记录,并在新插入的数据记录中添加版本信息, 从而将数据更新操作替换为数据插入操作;在对数据库进行复制时,利用多个线程并行执 行数据库复制操作。一方面,用多线程并行执行数据库复制操作可提高数据库复制操作的 效率;另一方面,由于将更新数据记录的操作替换为插入数据记录的操作,这样,即使由于 使用多线程执行复制操作而导致没有严格按照数据记录插入操作的时间先后来进行复制, 也不会破坏主、从数据库的数据一致性。


图1为本申请实施例数据处理系统的结构示意图之一;图2为本申请实施例数据处理系统的结构示意图之二 ;图3为本申请实施例数据处理系统的结构示意图之三。
具体实施例方式针对现有技术存在的问题,本申请实施例通过将数据更新操作替换为数据插入操 作,并使用多线程并行执行数据库复制操作,从而在保证主、从数据库数据一致性的前提下 提高数据库复制效率。本申请实施例的数据处理系统可对数据库中的数据记录进行操作,包括插 入ansert)、删除(Delete)、查询(Select)数据记录的操作,将主数据库的数据复制 (Replication)到从数据库的操作等。其中,主数据库、从数据库中的数据库表中包含有一 用于记录版本信息的字段,其中记录有数据记录的版本信息。数据库表中的数据记录通常 包含有一标识字段,用于描述对象的唯一身份,如用户ID,而其他字段则用于描述该对象的 属性,如用户姓名、年龄等,还可以包括描述数据记录的属性,如数据记录的版本信息。本申请实施例的数据处理系统可获取到用户通过该数据处理系统提供的人机交互界面输入的各种数据处理请求,如创建、更新、删除或查询数据记录的请求,或进行数据 库复制的请求;当系统获取到创建数据记录的请求时,生成插入数据记录的语句,并通过执行该 语句在数据库中插入一数据记录,新插入的数据记录中添加有版本信息;当系统获取到更新数据记录的请求时,生成插入数据记录的语句,并通过执行该 语句在数据库中插入一数据记录,新插入的数据记录中添加有版本信息,且具有与所请求 更新的数据记录相同的对象标识;当系统获取到查询数据记录的请求时,根据所查询的对象的标识生成查询数据记 录的语句,并通过执行该语句返回具有该对象标识的所有数据记录中最新插入的数据记录 的内容;当系统根据部署的数据库复制策略(如复制周期)或者获取到的复制请求,进行 数据库复制操作时,在复制过程中,可使用多线程并行执行数据库复制操作,进一步地,可 采用多服务器分布式来实现多线程并行执行数据库复制操作。本申请实施例的数据处理系统还可包括数据记录删除功能,当系统获取到删除数 据记录的请求时,生成插入数据记录的语句,并通过执行该语句在数据库中插入一与所请 求删除的数据记录具有相同对象标识的数据记录,并在该数据记录中添加表明其插入时间 顺序的版本信息,以及将该数据记录标记为删除。相应的,当系统获取到数据记录查询请求 时,首先根据所请求查询的对象的标识查找到最新插入的数据记录,然后再判断该数据记 录是否被标记为删除,如果是则返回未查找到的查询结果,否则将该最新插入的数据记录 的内容作为查询结果返回。上述的版本信息可由该数据处理系统在插入数据记录时生成。所述版本信息用来 表明具有相同对象标识的数据记录的插入操作在时间上的先后顺序。由于本申请实施例的 数据处理系统将数据记录的更新操作转换为数据记录的插入操作,这样,针对同一对象标 识的数据记录,若后续相应用户多次请求对其数据记录的内容进行更新,则会在数据库表 中插入相应数量的新的数据记录。为了在数据库查询时,给用户提供准确的查询结果(即 针对同一对象标识的多条数据记录仅返回其中最新插入的数据记录作为查询结果),因此 需要标识出每个数据记录的版本信息,以表明数据记录插入的时间顺序。所述版本信息可 以是依次递增的序列号,也可以是时间戳,或者其他能够表示时间先后顺序的字符组合。由于本申请实施例的数据处理系统将数据记录的更新操作和删除替换为数据记 录的插入操作,以及每个数据记录都包含有版本信息,因此,在复制数据库时,不需要严格 遵循每个数据操作执行的时间顺序来进行复制,因此可以使用多线程并发方式以及多服务 器分布式进行数据库复制操作,从而在一定程度上保证数据一致性的同时提高数据库复制 操作的效率。下面结合附图对本申请的实施例进行详细描述。参见图1,为本申请实施例数据处理系统的结构示意图,该系统可通过软件编程方 式实现。该数据库操作系统包括获取模块101、更新处理模块103、复制处理模块106,此 外还可包括插入处理模块102、删除处理模块104、查询处理模块105。该数据处理系统中各功能模块的主要功能,包括获取模块101 可获取到用户通过该数据处理系统提供的人机交互界面输入的各种数据处理请求,如创建、更新、删除或查询数据记录的请求,或进行数据库复制的请求, 并可根据接收到的数据处理请求触发相应的数据处理功能模块进行数据处理操作;插入处理模块102 可根据获取模块101获取到的创建数据记录的请求,生成插入 数据记录的语句,并通过执行该语句在数据库中插入一数据记录,新插入的数据记录中添 加有版本信息;更新处理模块103 可根据获取模块101获取到的更新数据记录的请求,生成插入 数据记录的语句,并通过执行该语句在数据库中插入一数据记录,新插入的数据记录中添 加有版本信息,且具有与所请求更新的数据记录相同的对象标识;删除处理模块104 可根据获取模块101获取到的删除数据记录的请求,生成插入 数据记录的语句,并通过执行该语句插入一条新的数据记录,以及将该数据记录标记为删 除;查询处理模块105 可根据获取模块101获取到的查询数据记录的请求,生成查询 数据记录的语句,并通过执行该语句返回查询结果;复制处理模块106 可根据获取模块101获取到的复制数据库的请求,或者根据部 署的数据库复制策略(如复制周期),进行数据库复制操作,并在复制过程中,可采用多服 务器分布式,以及多线程并行执行数据库复制操作。下面以表1所示的用于记载用户签名的数据处理系统(也可称为业务系统)的数 据库表结构为例,对本申请实施例的各种数据处理流程进行详细描述。该用于记载用户签 名的业务系统具有如上所述的获取模块101、插入处理模块102、更新处理模块103、查询处 理模块105和复制处理模块106,还可以包括删除处理模块104。表1 用于记载用户签名的数据库表USer_Sign的结构
权利要求
1.一种数据处理方法,其特征在于,包括以下步骤当获取到对数据库中的数据记录进行更新的请求后,根据所请求更新的数据记录在所 述数据库中新插入一对象标识相同的数据记录,并在新插入的数据记录中添加版本信息, 所述版本信息用于表明具有相同对象标识的数据记录的插入操作的时间顺序;当将所述数据库复制到另一数据库时,利用多个线程并行执行数据库复制操作。
2.如权利要求1所述的数据处理方法,其特征在于,根据所请求更新的数据记录在数 据库中新插入一对象标识相同的数据记录,包括以下步骤在所述数据库中查询与所请求更新的数据记录的对象标识相同的所有数据记录,并根 据数据记录中的版本信息确定出其中最后插入的数据记录;根据所述请求中携带的更新后的数据内容以及该最后插入的数据记录中的数据内容 合并生成一对象标识相同的数据记录,并将生成的数据记录插入到所述数据库中。
3.如权利要求1所述的数据处理方法,其特征在于,还包括当预先设定的时间或周期 到达时,查询所述数据库中的数据记录,若同一对象标识对应的数据记录有多条,则根据版 本信息保留查询到的数据记录中最后插入的数据记录,而将其余数据记录删除;或,当预先设定的时间或周期到达时,查询所述数据库中的数据记录,若同一对象标识对 应的数据记录有多条,则按照版本信息对查询到的数据记录进行排序,当查询到的数据记 录的数量超过设定阈值时,则从排序后的数据记录中最后插入的数据记录开始保留该阈值 所规定的数量的数据记录,而将其余数据记录删除。
4.如权利要求1所述的数据处理方法,其特征在于,在插入新的数据记录之前或之后, 还包括查询与该新的数据记录中的对象标识相同的所有数据记录,根据版本信息保留查询到 的数据记录中最后插入的数据记录,而将其余的数据记录删除;或,查询与该新的数据记录中的对象标识相同的所有数据记录,并按照版本信息对查询 到的数据记录进行排序;若查询到的数据记录的数量超过设定阈值,则从排序后的数据记 录中最后插入的数据记录开始保留该阈值所规定的数量的数据记录,而将其余数据记录删 除。
5.如权利要求1所述的数据处理方法,其特征在于,还包括当获取到查询数据记录的请求后,根据所请求查询的数据记录的对象标识查询出具有 该对象标识的所有数据记录;根据数据记录中的版本信息,将查询到的数据记录中最后插 入的数据记录作为查询结果返回。
6.如权利要求1所述的方法,其特征在于,还包括当获取到对数据库中的数据记录进行删除的请求后,根据所请求删除的数据记录在所 述数据库中新插入一对象标识相同的数据记录,在新插入的数据记录中添加版本信息,并 将该数据记录标记为删除。
7.如权利要求6所述的方法,其特征在于,还包括当获取到查询数据记录的请求后,根据所请求查询的数据记录的对象标识查询出具有 该对象标识的所有数据记录;根据数据记录中的版本信息,判断查询到的数据记录中最后 插入的数据记录被标记为删除时,返回表明未查找所请求查询的数据记录的查询结果。
8.如权利要求1-7任一项所述的数据处理方法,其特征在于,所述版本信息为序列号或时间戳;若所述版本信息为序列号,则在新插入的数据记录中添加版本信息,具体为在所述数据库中查询与所请求更新的数据记录的对象标识相同的所有数据记录,并根 据数据记录中版本信息字段的序列号确定出其中最后插入的数据记录;将该最后插入的数据记录的版本信息字段的序列号递增,将递增后的序列号作为所述 生成的数据记录的版本信息字段的序列号。
9.一种数据处理系统,其特征在于,包括获取模块,用于获取对数据库中的数据记录进行更新的请求;更新处理模块,用于当获取到对数据记录进行更新的请求后,根据所请求更新的数据 记录在所述数据库中新插入一对象标识相同的数据记录,并在新插入的数据记录中添加版 本信息,所述版本信息用于表明具有相同对象标识的数据记录的插入操作的时间顺序;复制处理模块,用于将所述数据库复制到另一数据库时,利用多个线程并行执行数据 库复制操作。
10.如权利要求9所述的数据处理系统,其特征在于,所述更新处理模块新插入一对象 标识相同的数据记录时,在所述数据库中查询与所请求更新的数据记录的对象标识相同的 所有数据记录,并根据数据记录中的版本信息确定出其中最后插入的数据记录;然后,根据 所述请求中携带的更新后的数据内容以及该最后插入的数据记录中的其他数据内容合并 生成一数据记录,并将生成的数据记录插入到所述数据库中。
11.如权利要求9所述的数据处理系统,其特征在于,还包括第一清除处理模块,用于在所述更新处理模块插入新的数据记录之前或之后,查询与 该新的数据记录中的对象标识相同的所有数据记录,根据版本信息保留查询到的数据记录 中最后插入的数据记录,而将其余的数据记录删除;或,按照版本信息对查询到的数据记录 进行排序,若查询到的数据记录的数量超过设定阈值,则从排序后的数据记录中最后插入 的数据记录开始保留该阈值所规定的数量的数据记录,而将其余数据记录删除。
12.如权利要求9所述的数据处理系统,其特征在于,还包括第二清除处理模块,用于当预先设定的时间或周期到达时,查询所述数据库中的数据 记录,若同一对象标识对应的数据记录有多条,则根据版本信息保留查询到的数据记录中 最后插入的数据记录,而将其余的数据记录删除;或,查询具有相同对象标识的数据记录, 并按照版本信息对查询到的数据记录进行排序;若查询到的数据记录的数量超过设定阈 值,则从排序后的数据记录中最后插入的数据记录开始保留该阈值所规定的数量的数据记 录,而将其余数据记录删除。
13.如权利要求9所述的数据处理系统,其特征在于,所述获取模块,进一步用于,获取 查询数据记录的请求;所述数据处理系统还包括查询处理模块,用于当获取到查询数据记录的请求后,根据所请求查询的数据记录中 的对象标识查询出具有该对象标识的所有数据记录;然后,根据数据记录中的版本信息,将 查询到的数据记录中最后插入的数据记录作为查询结果返回。
14.如权利要求9所述的系统,其特征在于,所述获取模块,进一步用于,获取删除数据 记录的请求;所述数据处理系统还包括删除处理模块,用于当获取到对数据库中的数据记录进行删除的请求后,根据所请求 删除的数据记录在所述数据库中新插入一对象标识相同的数据记录,在新插入的数据记录 中添加版本信息,并将该数据记录标记为删除。
15.如权利要求14所述的系统,其特征在于,所述获取模块,进一步用于,获取查询数 据记录的请求;所述数据处理系统还包括查询处理模块,用于当获取到查询数据记录的请求后,根据所请求查询的数据记录的 对象标识查询出具有该对象标识的所有数据记录;根据数据记录中的版本信息,判断查询 到的数据记录中最后插入的数据记录被标记为删除时,返回表明未查找所请求查询的数据 记录的查询结果。
全文摘要
本申请公开了一种数据处理方法及其系统,该方法包括当获取到对数据库中的数据记录进行更新的请求后,根据所请求更新的数据记录在所述数据库中新插入一对象标识相同的数据记录,并在新插入的数据记录中添加版本信息,所述版本信息用于表明具有相同对象标识的数据记录的插入操作的时间顺序;当将所述数据库复制到另一数据库时,利用多个线程并行执行数据库复制操作。采用上述数据处理方法及其系统,可在一定程度上保证数据一致性的前提下,提高数据库复制操作的效率。
文档编号G06F17/30GK102110121SQ20091026017
公开日2011年6月29日 申请日期2009年12月24日 优先权日2009年12月24日
发明者全鑫, 常国斌, 张宋景, 朱明君, 李翀, 覃健祥 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1