数据处理方法

文档序号:6499175阅读:292来源:国知局
数据处理方法
【专利摘要】本申请提供一种数据处理方法,其包括:获取待业务处理的包含业务数据的一项或多项数据中的一项数据,根据预定规则为所述一项数据生成交互号以及与所述交互号对应的编号,建立映射表对该交互号和该编号生成映射关系,在主数据库对应所述一项数据的该编号指示的分库和分表中的存储位置,存储所述一项数据、其交互号、其编号,发送所述一项数据的业务数据和该交互号以进行业务处理。本申请的方法改进分布式系统存储查找方式,能精确定位数据所在的库与表,避免对数据库全库表扫描,降低了数据库的开销,提升了系统处理数据的能力。
【专利说明】数据处理方法【技术领域】
[0001]本申请涉及分布式【技术领域】,尤其涉及分布式系统的多个系统之间交互的数据处理的方法。
【背景技术】
[0002]在两个(或多个)系统之间传递一项数据时,通常第一系统会根据第二系统的要求生成固定长度的交互号,并将该项数据存入第一系统的数据库中的一个分库及该分库中的一个分表,然后将包括该交互号的数据发送给第二系统,第二系统在处理完毕后,会将该交互号和数据返回给第一系统。而在分布式数据库的应用系统中,通常采用分库分表模式,第一系统无法确定该第二系统传回的交互号对应的数据存在于哪个分库、哪个分表(即不确定一项包含业务数据的数据信息所在的库表),必须逐个扫描所有的库表即数据库全表扫描遍历,以找到某项数据所在库表,效率低下,其无法精确定位数据所存储的库表,因而对系统性能,特别是数据库性能影响很大,导致诸如数据处理性能效率随之降低、应用系统的整体处理性能低、数据库开销增大等缺陷。即便利用单数据库模式,其扩展性差,业务数据量容易增长到单数据库表无法支撑的情况(数据库性能低)。

【发明内容】

[0003]本申请为克服上述缺陷,提供一种数据处理方法。主要目的在于解决分布式系统中,采用生成的交互号存储数据,以及相应地利用交互号、分库号、分表号存储、并在两个系统间发送和接收数据, 提升系统数据处理性能的问题。
[0004]根据本申请的一个方面,提供一种数据处理方法,包括:获取待业务处理的一项或多项数据中的一项数据,所述一项数据包括业务数据;根据预定规则为所述一项数据生成交互号以及与所述交互号对应的编号;建立映射表,在映射表中对所述一项数据生成所述交互号以及与所述交互号对应的所述编号的映射关系;在主数据库对应所述一项数据的所述编号指示的分库和分表中的存储位置,存储所述一项数据、所述一项数据的所述交互号以及所述编号;发送所述一项数据的所述业务数据以及对应的所述交互号,以进行业务处理。
[0005]进一步的,预定规则包括:第一预定规则和第二预定规则;其中,根据第一预定规则为所述一项数据生成交互号;根据第二预定规则为所述一项数据生成与所述交互号对应的编号。
[0006]进一步的,还包括:所述一项数据的所述业务数据处理完毕后形成更新后的业务数据,接收返回的所述一项数据的所述更新后的业务数据以及对应的所述交互号;根据所述一项数据的所述交互号及所述映射关系,查找映射表中所述交互号对应的所述编号,以确定所述一项数据在主数据库的分库和分表中存储的位置;根据映射表中查找到的所述编号,在主数据库对应所述编号的分库和分表中的存储位置,找到所述一项数据,并由所述更新后的业务数据更新存储的所述一项数据中的所述业务数据。[0007]进一步的,所述编号为主ID,所述主ID包括分库号和分表号,所述主ID用于在主数据库中标识所述一项数据,所述分库号和分表号用于确定所述一项数据在主数据库的所述分库和分表中存储的位置;在映射表中对所述一项数据生成所述交互号以及与交互号对应的所述编号的映射关系,包括:将所述交互号与所述主ID对应存储以生成映射关系,所述映射关系用于根据所述交互号或所述主ID能快速查找对应的所述主ID或对应的所述交互号。
[0008]进一步的,根据第二预定规则为所述一项数据生成与交互号对应的编号包括:根据第二预定规则为所述一项数据生成所述分库号和分表号,所述分库号和分表号写入主ID中,由所述分库号和分表号指示主数据库中的分库和分表中的存储位置。
[0009]进一步的,所述第一预定规则还包括:每获取一项数据均为其生成的交互号,并且,是在上一次获取的一项数据生成的交互号上加I;当获取的一项数据生成的交互号为预先限定的最大值时,下一次获取的一项数据的所述交互号为预先确定的交互号。
[0010]根据本发明的另一个方面,提供一种数据处理方法,包括:获取待业务处理的一项或多项数据中的一项数据,所述一项数据包括业务数据;根据预定规则为所述一项数据生成数据编号、以及与所述数据编号对应的位置编号;根据所述数据编号和所述位置编号,生成所述一项数据的交互号,所述交互号包括所述数据编号和所述位置编号;在主数据库对应所述一项数据的所述位置编号指示的分库和分表中的存储位置,存储所述一项数据以及所述一项数据的所述交互号;发送所述一项数据的所述业务数据以及对应的所述交互号,以进行业务处理。
[0011]进一步的,所述预定规则包括:第三预定规则和第四预定规则;其中,根据第三预定规则为所述一项数据生成数据编号;根据第四预定规则为所述一项数据生成与所述数据编号对应的位置编号。
[0012]进一步的,还包括:所述一项数据的所述业务数据处理完毕后形成更新后的业务数据,接收返回的所述一项数据的所述更新后的业务数据以及对应的所述交互号;根据所述一项数据的所述交互号中的所述位置编号,确定所述一项数据在主数据库的分库和分表中存储的位置;在主数据库对应所述位置编号的分库和分表中的存储位置,找到所述一项数据,并由所述更新后的业务数据更新存储的所述一项数据中的所述业务数据。
[0013]进一步的,所述数据编号用于在主数据库中标识所述一项数据;所述位置编号包括分库号和分表号,所述分库号和分表号用于确定所述一项数据在主数据库的分库和分表中存储的位置;所述交互号包括所述数据编号以及所述分库号和分表号;在主数据库对应所述位置编号的分库和分表中的存储位置,找到所述一项数据,包括:根据返回的所述交互号中的所述数据编号确定主数据库中存在所述一项数据,并根据所述交互号中的所述分库号和分表号,找到主数据库中对应所述分库号和分表号指不的分库和分表中的所述一项数据的存储位置,从而找到所述一项数据。
[0014]进一步的,根据第四预定规则为所述一项数据生成与数据编号对应的位置编号,包括:根据第四预定规则为所述一项数据生成所述分库号和分表号,由所述分库号和分表号指示主数据库中的分库和分表中的存储位置。
[0015]进一步的,所述第三预定规则还包括:每获取一项数据为其生成的数据编号,是在上一次获取的一项数据生成的数据编号上加I;当获取的一项数据生成的数据编号为预先限定的最大值时,下一次获取的一项数据的所述数据编号为预先确定的数据编号。
[0016]与现有技术相比,根据本申请的技术方案,本申请可以让应用程序精确定位交互号以及其对应的数据所在的库与表,避免对数据库全库表扫描,有效提升了应用的处理性能,降低了数据库的开销,在其他相同条件下提升了系统处理数据的能力。
【专利附图】

【附图说明】
[0017]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0018]图1是根据本申请的方案的实施例1的工作示意图;
[0019]图2是根据本申请的方案的实施例2的工作示意图;
[0020]图3是根据本申请的方案的实施例3的工作示意图;
[0021]图4是根据本申请的方案的实施例4的工作示意图。
【具体实施方式】
[0022]为使本申请的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本申请作进一步地详细说明。
[0023]实施例1提供一种数据处理方法。参考图1,图1是本申请的方案实施例1的示意图,即改进了系统之间传递的数据的处理:在第一系统中组织数据的存储,并将获得并存储后的数据传递给负责业务处理的第二系统进行处理,如下面步骤a至e ;将完成业务处理后的数据再返回第一系统更新存储数据的过程,如下面步骤f至i。定位数据迅速,提升了整体系统的性能。
[0024]a,获取待业务处理的一项或多项数据中的一项数据101,所述一项数据包括业务数据102,例如,获取了“2012.10.01,张三,123.45”这一项数据,其中包含“ 123.45”这项业
务数据。
[0025]b,根据预定规则为所述一项数据生成交互号105以及与所述交互号105对应的编号107,依上例,如:“2012.10.01,张三,123.45”这一项数据可以通过预定规则生成一个交互号为“ 123456789”,生成一个编号“ 13579”。
[0026]优选的,预定规则包括第一预定规则104和第二预定规则106。根据第一预定规则104生成交互号105,根据第二预定规则106生成编号107。依上例,根据第一预定规则生成交互号“ 123456789”,根据第二预定规则生成编号“ 13579”。
[0027]优选地,第一预定规则104还包括:每获取一项数据均为其生成交互号,并且,是在上一次获取的一项数据生成的交互号上加I ;当获取的一项数据生成的交互号为预先限定的最大值时,下一次获取的一项数据的所述交互号为预先确定的交互号。如获取的上一项需要处理的数据交互号123456787,则下一项获取的要处理的数据交互号加1,为123456788。
[0028]c,建立映射表108,在映射表108中对所述一项数据101生成所述交互号105以及与所述交互号对应的所述编号107的映射关系;依上例:生成的一则映射为“123456789 ;13579”。
[0029]d,在主数据库对应所述一项数据的所述编号107指示的分库和分表中的存储位置109,存储所述一项数据101、所述一项数据的所述交互号105以及所述编号107等;依上例,编号“13579”指示了主数据库对应的分库和分表中的存储位置;则将“2012.10.01,张
H,123.45 ; 123456789 ; 13579” 都存储于该位置。
[0030]e,发送所述一项数据的所述业务数据102以及对应的所述交互号105,以进行业务处理110,依上例,发送上述业务数据和交互号“123.45 ; 123456789”进行业务处理。
[0031]优选的,本方法还包括以下数据接收及更新步骤:
[0032]f,所述一项数据的所述业务数据处理完毕后形成更新后的新业务数据111,接收返回的所述一项数据的所述更新后的新业务数据111以及对应的所述交互号105 ;依上例,上述业务数据处理完毕后,形成新的业务数据“ 133.45”,接收返回的业务数据和交互号“133.45 ; 123456789”。
[0033]g,根据映射表108中查找到所述编号107,依上例,以交互号123456789在映射表找到映射“123456789 ;13579”,在此,可以找到编号“ 13579”,由于映射表查找,则查找速度会加快。
[0034]h,在主数据库对应所述编号107的分库和分表中的存储位置109,查找所述一项数据101,由此,搜索范围缩小,在数据库(分库、分表)中的扫描速度会加快。依上例,在主数据库对应编号“13579”的分库和分表中的存储位置,查找到该数据“2012.10.01,张三,123.45”。
[0035]i,由所述更新后的新业务数据来更新存储的所述一项数据中的所述业务数据。依上例,由更新后的业务数据“133.45”替换“123.45”,则该项数据为“2012.10.01,张三,133.45”。
[0036]实施例2,提供一种数据处理方法。参考图2,图2是本申请实施例2的示意图。同实施例1类似,改进系统间数据处理方法,提升整体系统处理性能(参见实施例1的具体说明)。其进一步对实施例1进行优化。
[0037]a,获取待业务处理的一项或多项数据中的一项数据201,所述一项数据包括业务数据202,例如,获取了“2012.10.01,张三,123.45”这一项数据,其中包含“ 123.45”这项业
务数据。
[0038]b,根据预定规则203为所述一项数据生成交互号205以及与所述交互号对应的编号207。同实施例1 一样,预定规则可以有多种多样的。这里,例如,预定规则203包括第一预定规则204和第二预定规则206,根据第一预定规则204生成交互号205,根据第二预定规则206为生成编号207。所述编号207例如,为主ID220,所述主ID220包括分库号221和分表号222,所述主ID220能用于在主数据库中标识所述一项数据201,所述分库号221和分表号222用于确定所述一项数据201在主数据库的所述分库和分表中的存储位置209,如,确定分库、确定分表等位置(基础定位)。依上例,对上述数据以第一预定规则生成交互号“123456789”;根据第二预定规则生成编号如主ID “246813579”,而进一步的,例如,生成主ID为“246813579”,其中,“13”为生成的分库号,“579”为生成的分表号,主ID “246813579”用于在主数据库中标识所述该项数据,所述分库号“13”和分表号“579”用于确定所述一项数据在主数据库的所述分库和分表中存储的位置。
[0039]生成编号207 (如主ID)的过程,优选的,根据第二预定规则206为所述一项数据201生成与交互号205对应的编号207,还包括:根据第二预定规则为所述一项数据生成所述分库号221和分表号222,依据预定规则由所述分库号221和分表号222构成主ID220的组成部分,并由所述分库号221和分表号222指示主数据库中的分库和分表中的存储位置209。依上例,以第二预定规则生成分库号“13”和分表号“579”,将分库号“13”和分表号“579”写入主ID中,形成“246813579”,所述分库号“ 13”和分表号“579”指示主数据库中的分库和分表中的存储位置。
[0040]依据第二规则生成分库号221和分表号222包括但不限于以下方式:1、根据某些分布较为均匀的号码来生成,比如张三这个用户本身的ID号码的尾号为13579,则将13作为分库号,将579作为分表号。2、使用散列性较好的随机数生成,以保证数据能够较为均匀地分布在各库表当中。比如分库号是采用0-99之间的随机数,分表号是采用0-999之间的随机数。
[0041]优选的,所述第一预定规则205还包括:每获取一项数据均为其生成交互号,并且,是在上一次获取的一项数据生成的交互号上加I ;当获取的一项数据生成的交互号为预先限定的最大值时,下一次获取的一项数据的所述交互号为预先确定的交互号。依上例,上一项数据的交互号为123456788,则本项数据位上一项数据的交互号加1,为123456789。交互号预先设定的最大值为999999999,若一项数据的交互号为999999999,则下一项数据为预先设定确定的交互号000000001。
[0042]c,建立映射表208,在映射表208中对所述一项数据201生成所述交互号205以及与所述交互号205对应的所述主ID220的映射关系。包括,将所述交互号205与所述主ID220对应存储以生成映射关系。所述映射关系用于根据所述交互号205或所述主ID220能快速查找对应的所述主ID220或对应的所述交互号205。依上例:依据上述生成的一则映射为“123456789 ;246813579”;依据交互号“ 123456789” 可以找到主 ID “246813579”,依据主ID “246813579”可以找到交互号“123456789”。
[0043]d,在主数据库对应所述一项数据的所述分库号221和分表号222指示的分库和分表中的存储位置209,存储所述一项数据201、所述一项数据的所述交互号205以及所述编号207。依上例,分库号“13”和分表号“579”指示了主数据库对应的分库和分表中的存储位置,如 13 号分库中的 579 号表;则将“2012.10.01,张三,123.45 ;123456789 ;246813579”
存储于该位置。
[0044]e,发送所述一项数据的所述业务数据202以及对应的所述交互号205,以进行业务处理210。依上例,发送上述业务数据和交互号“123.45 ; 123456789”进行业务处理。
[0045]优选的,本方法包括以下数据接收及更新步骤:
[0046]f,所述一项数据的所述业务数据处理完毕后形成更新后的新业务数据211,接收返回的所述一项数据的所述更新后的新业务数据211以及对应的所述交互号205 ;依上例,上述业务数据处理完毕后,形成新的业务数据“ 133.45”,接收返回的业务数据和交互号“133.45 ; 123456789”。
[0047]g,根据映射表中查找到的所述主ID220,依上例,以交互号123456789在映射表找到映射“123456789 ;246813579”,即找到了主ID“246813579”。映射表查找速度快,有主ID查找则定位更容易更准确即查找速度也会更快。
[0048]h,在主数据库对应所述主ID220中的分库号221和分表号222指不的分库和分表中的存储位置209,找到所述一项数据。依上例,在主数据库对应编号“246813579”中的分库号“ 13”和分表号“579”指示主数据库中的分库和分表中的存储位置,并且,由于根据主ID快速识别其标志的数据项能确定该数据确实在主数据库中,能避免对不存在的数据而花费扫描库表的资源而造成资源浪费、影响处理效率和性能,进而在对应的上述存储位置(13,579指定的位置),结合其主ID标识,更快找到该数据“2012.10.01,张三,123.45”。
[0049]i,由所述更新后的新业务数据211更新存储的所述一项数据中的所述业务数据202。依上例,由更新后的业务数据“133.45”替代“123.45”,则该项数据为“2012.10.01,张三,133.45”。
[0050]实时例3,提供一种数据处理方法。参考图3,图3是本申请实施例3的示意图。同实施例1类似,改进系统间数据处理方法,提升整体系统处理性能(参见实施例1的具体说明)。
[0051]a,获取待业务处理的一项或多项数据中的一项数据301,所述一项数据包括业务数据302。例如,获取了 “2012.10.01,张三,123.45”这一项数据,其中包含“ 123.45”这项业务数据。
[0052]b,根据预定规则303为所述一项数据生成数据编号305、以及与所述数据编号305对应的位置编号307。依上例,依据预定规则生成数据编号“2468”和位置编号“13579”。
[0053]同实施例1、2—样,预定规则可以有多种多样的。这里,例如,优选的,所述预定规则303包括:第三预定规则304和第四预定规则306 ;其中,根据第三预定规则304为所述一项数据生成数据编号305 ;根据第四预定规则306为所述一项数据生成与所述数据编号305对应的位置编号307。依上例,根据第三预定规则为上述数据生成数据编号305为“2468”,根据第四预定规则为上述数据生成与所述数据编号“2468”对应的位置编号307为“13579”。
[0054]C,根据所述数据编号305和所述位置编号307,生成所述一项数据的交互号308。所述交互号308包括所述数据编号305和所述位置编号307。依上例,根据所述数据编号“ 2468 ”和所述位置编号“ 13579 ”,生成所述一项数据的交互号“ 246813579 ”,所述交互号包括所述数据编号“2468”和所述位置编号“ 13579”。
[0055]d,在主数据库对应所述一项数据的所述位置编号307指示的分库和分表中的存储位置309,存储所述一项数据301以及所述一项数据的所述交互号308。依上例,在主数据库对应该项数据的所述位置编号“13579”指示的分库和分表中的存储位置,存储所述一项数据以及所述一项数据的所述交互号,“2012.10.01,张三,123.45 ;246813579”。
[0056]e,发送所述一项数据301的所述业务数据302以及对应的所述交互号308,以进行业务处理310,依上例,发送所述一项数据的所述业务数据以及对应的所述交互号,“123.45 ;246813579”,以进行业务处理。
[0057]优选的,本方法还包括以下步骤:
[0058]f,所述一项数据的所述业务数据处理完毕后形成更新后的新业务数据311,接收返回的所述一项数据的所述更新后的业务数据311以及对应的所述交互号308。依上例,所述数据的所述业务数据处理完毕后形成更新后的业务数据“133.45”接收返回的所述一项数据的所述更新后的业务数据以及对应的所述交互号“133.45 ;246813579”。
[0059]g,根据所述一项数据的所述交互号308中的该数据编号305确定主数据库中存在所述一项数据。根据所述位置编号307,确定所述一项数据在主数据库的分库和分表中存储的位置309。依上例,根据所述数据的交互号“246813579”中的所述位置编号“13579”,快速确定所述数据在主数据库的分库和分表中存储的位置。
[0060]h,在主数据库对应所述位置编号307的分库和分表中的存储位置309,找到所述一项数据301。依上例,在主数据库对应所述位置编号“13579”的分库和分表中的存储位置,快速找到数据编号为“2468”的所述一项数据“2012.10.01,张三,123.45”。
[0061]i,由所述更新后的新业务数据311更新存储的所述一项数据中的所述业务数据302,依上例,由所述更新后的业务数据“133.45”更新存储的所述一项数据中的所述业务数据 “ 123.45”,则该项数据为 “2012.10.01,张三,13345”。
[0062]实时例4,提供一种数据处理方法。参考图4,图4是本申请实施例4的示意图。同实施例1、3类似,改进系统间数据处理方法,提升整体系统处理性能(参见实施例1的具体说明)。其进一步对实施例3进行优化。
[0063]a,获取待业务处理的一项或多项数据中的一项数据401,所述一项数据包括业务数据402。例如,获取了 “2012.10.01,张三,123.45”这一项数据,其中包含“123.45”这项业务数据。
[0064]b,根据预定规则403为所述一项数据生成数据编号405、以及与所述数据编号对应的位置编号407。同实施例1、2、3—样,预定规则可以有多种多样的。这里,例如,所述预定规则包括:第三预定规则404和第四预定规则406。其中,根据第三预定规则404为所述一项数据生成数据编号405,所述数据编号用于在主数据库中标识所述一项数据;根据第四预定规则为所述一项数据生成与所述数据编号405对应的位置编号407,所述位置编号包括分库号421和分表号422,所述分库号421和分表号422用于确定所述一项数据在主数据库的分库和分表中存储的位置409。依上例,根据第三预定规则为所述数据生成数据编号405为“2468”,数据编号“2468”用于在主数据库中标识所述一项数据(如:该项数据为2468号数据),根据第四预定规则生成位置编号407为“13579”,所述位置编号包括分库号421为“13”和分表号422为“579”,所述分库号“13”和分表号“579”用于确定所述一项数据在主数据库的分库和分表中存储的位置。
[0065]优选的,根据第四预定规则406为所述一项数据生成与数据编号对应的位置编号407,例如:根据第四预定规则406为所述一项数据生成所述分库号421和分表号422,根据所述分库号和所述分表号生成位置编号。所述分库号424和分表号422指示主数据库中的分库和分表中的存储位置409。依上例,根据第四预定规则生成分库号“13”和分表号“579”,由所述分库号“13”和分表号“579”指示主数据库中的分库和分表中的存储位置,如指示主数据库的13号分库中的579号表即为存储位置,由此生成位置编号,最简单的方式如生成的位置编号为“13579”。
[0066]依据第四预定规则406生成分库号421和分表号422包括但不限于以下方式:1、根据某些分布较为均匀的号码来生成,比如张三这个用户本身的ID号码的尾号为13579,则将13作为分库号,将579作为分表号。2、使用散列性较好的随机数生成,以保证数据能够较为均匀地分布在各库表当中。比如分库号是采用0-99之间的随机数,分表号是采用0-999之间的随机数。
[0067]优选的,所述第三预定规则404还包括:每获取一项数据为其生成的数据编号405,是在上一次获取的一项数据生成的数据编号上加I ;当获取的一项数据生成的数据编号为预先限定的最大值时,下一次获取的一项数据的所述数据编号为预先确定的数据编号。依上例,上一项数据的数据编号为2467,则本项数据的数据编号为上一项数据的的数据编号加1,为2468。数据编号预先设定的最大值为9999,若一项数据的数据编号为9999,则下一项数据为预先设定确定的数据编号0000。
[0068]C,根据所述数据编号405和所述位置编号407,生成所述一项数据的交互号408,所述交互号408包括所述数据编号405(标识所述一项数据,能确定该项数据是否存在主数据库中,如实施例2所述能更有效的查找提升系统性能)和所述位置编号407,进一步的,所述交互号408还包括所述数据编号405以及所述分库号421和分表号422。依上例,根据所述数据编号“2468”和所述位置编号“13579”,生成所述一项数据的交互号“246813579”(此处假定交互号生成即为9位表示),所述交互号包括所述数据编号“2468”和所述位置编号“ 13579” ;即也包括分库号“13”和分表号“579”。
[0069]d,在主数据库对应所述一项数据的所述分库号421和分表号422指示的分库和分表中的存储位置409,存储所述一项数据401以及所述一项数据的所述交互号408。依上例,在主数据库对应该项数据的所述位置编号“13579”指示的分库和分表中的存储位置(如13号分库的579号表),存储所述一项数据以及所述一项数据的所述交互号,“2012.10.01,张三,123.45 ;246813579”。
[0070]e,发送所述一项数据的所述业务数据402以及对应的所述交互号408,以进行业务处理410,依上例,发送所述一项数据的所述业务数据以及对应的所述交互号,“123.45 ;246813579”,以进行业务处理。
[0071]优选的,本方法包括以下数据接收及更新步骤:
[0072]f,所述一项数据的所述业务数据处理完毕后形成更新后的新业务数据411,接收返回的所述一项数据的所述更新后的新业务数据411以及对应的所述交互号408。依上例,所述数据的所述业务数据处理完毕后形成更新后的业务数据“133.45”,接收返回的所述一项数据的所述更新后的业务数据以及对应的所述交互号“133.45 ;246813579”。
[0073]g,根据返回的所述交互号408中的所述数据编号405确定主数据库中存在所述一项数据,并根据所述交互号中的所述分库号421和分表号422,找到主数据库中对应所述分库号421和分表号422指示的分库和分表中的所述一项数据的存储位置409。依上例,根据返回的所述交互号“246813579”中的所述数据编号“2468”确定主数据库中存在所述一项数据,并根据所述交互号中的所述分库号“ 13”和分表号“579”,找到主数据库中对应所述分库和分表中的所述一项数据的存储位置409。
[0074]h,在主数据库对应所述位置编号407的分库和分表中的存储位置409,找到所述一项数据。依上例,在主数据库对应所述位置编号“13579”的分库和分表中的存储位置(如13 号库的 579 表),找到所述数据 “2012.10.01,张三,123.45 ;246813579”。
[0075]i,由所述更新后的新业务数据411更新存储的所述一项数据中的所述业务数据402。依上例,由所述更新后的业务数据“133.45”更新存储的所述一项数据中的所述业务数据 “123.45”,则该项数据为 “2012.10.01,张三,133.45 ;246813579”。
[0076]上述四个实施例中,实施例1与实施例2 —般用于交互号位数较少、交互号无法包含所述编号(包括分库号、分表号)的情况,如实施例1通过映射交互号和编号、实施例2通过映射交互号和主ID (具有分库号、分表号的编号)的方式,实现快速定位数据、提高数据处理效率;实时例3与实施例4用于交互号位数较多、交互号可以包含所述数据编号、位置编号(包括分库号、分表号)的情况,如实施例3通过生成具有数据编号和位置编号的交互号、实施例4通过生成具有数据编号和具有分库号、分表号的位置编号的交互号,实现快速定位数据、提高数据处理效率。
[0077]本说明书中的各个实施例一般采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0078]本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块或单元。一般地,程序模块或单元可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。一般来说,程序模块或单元可以由软件、硬件或两者的结合来实现。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块或单元可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0079]最后,还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0080]本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0081]本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其主要思想;同时,对于本领域的一般技术人员,依据本申请的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
【权利要求】
1.一种数据处理方法,其特征在于,包括: 获取待业务处理的一项或多项数据中的一项数据,所述一项数据包括业务数据; 根据预定规则为所述一项数据生成交互号以及与所述交互号对应的编号; 建立映射表,在映射表中对所述一项数据生成所述交互号以及与所述交互号对应的所述编号的映射关系; 在主数据库对应所述一项数据的所述编号指示的分库和分表中的存储位置,存储所述一项数据、所述一项数据的所述交互号以及所述编号; 发送所述一项数据的所述业务数据以及对应的所述交互号,以进行业务处理。
2.如权利要求1所述的方法,其特征在于,所述预定规则包括: 第一预定规则和第二预定规则;其中, 根据第一预定规则为所述一项数据生成交互号; 根据第二预定规则为所述一项数据生成与所述交互号对应的编号。
3.如权利要求1或2所述的方法,其特征在于,还包括: 所述一项数据的所 述业务数据处理完毕后形成更新后的业务数据,接收返回的所述一项数据的所述更新后的业务数据以及对应的所述交互号; 根据所述一项数据的所述交互号及所述映射关系,查找映射表中所述交互号对应的所述编号,以确定所述一项数据在主数据库的分库和分表中存储的位置; 根据映射表中查找到的所述编号,在主数据库对应所述编号的分库和分表中的存储位置,找到所述一项数据,并由所述更新后的业务数据更新存储的所述一项数据中的所述业务数据。
4.如权利要求3所述的方法,其特征在于,生成的所述编号还包括主ID,所述主ID包括分库号和分表号,所述主ID用于在主数据库中标识所述一项数据,所述分库号和分表号用于确定所述一项数据在主数据库的所述分库和分表中存储的位置; 在映射表中对所述一项数据生成所述交互号以及与交互号对应的所述编号的映射关系,包括:将所述交互号与所述主ID对应存储以生成映射关系,所述映射关系用于根据所述交互号或所述主ID能快速查找对应的所述主ID或对应的所述交互号。
5.如权利要求4所述的方法,其特征在于,根据第二预定规则为所述一项数据生成与交互号对应的编号包括: 根据第二预定规则为所述一项数据生成所述分库号和分表号,所述分库号和分表号写入主ID中,由所述分库号和分表号指示主数据库中的分库和分表中的存储位置。
6.如权利要求2所述的方法,其特征在于,所述第一预定规则还包括: 每获取一项数据均为其生成的交互号,并且,是在上一次获取的一项数据生成的交互号上加I ; 当获取的一项数据生成的交互号为预先限定的最大值时,下一次获取的一项数据的所述交互号为预先确定的交互号。
7.一种数据处理方法,其特征在于,包括: 获取待业务处理的一项或多项数据中的一项数据,所述一项数据包括业务数据; 根据预定规则为所述一项数据生成数据编号、以及与所述数据编号对应的位置编号; 根据所述数据编号和所述位置编号,生成所述一项数据的交互号,所述交互号包括所述数据编号和所述位置编号; 在主数据库对应所述一项数据的所述位置编号指示的分库和分表中的存储位置,存储所述一项数据以及所述一项数据的所述交互号; 发送所述一项数据的所述业务数据以及对应的所述交互号,以进行业务处理。
8.如权利要求7所述的方法,其特征在于,所述预定规则包括: 第三预定规则和第四预定规则;其中, 根据第三预定规则为所述一项数据生成数据编号; 根据第四预定规则为所述一项数据生成与所述数据编号对应的位置编号。
9.如权利要求7或8所述的方法,其特征在于,还包括: 所述一项数据的所述业务数据处理完毕后形成更新后的业务数据,接收返回的所述一项数据的所述更新后的业务数据以及对应的所述交互号; 根据所述一项数据的所述交互号中的所述位置编号,确定所述一项数据在主数据库的分库和分表中存储的位置; 在主数据库对应所述位置编号的分库和分表中的存储位置,找到所述一项数据,并由所述更新后的业务数据更新存储的所述一项数据中的所述业务数据。
10.如权利要求9所述的方法,其特征在于, 所述数据编号用于在主数据库中标识所述一项数据; 所述位置编号包括分库号和分表号,所述分库号和分表号用于确定所述一项数据在主数据库的分库和分表中存储的位置; 所述交互号包括所述数据编号以及所述分库号和分表号; 在主数据库对应所述位置编号的分库和分表中的存储位置,找到所述一项数据,包括: 根据返回的所述交互号中的所述数据编号确定主数据库中存在所述一项数据,并根据所述交互号中的所述分库号和分表号,找到主数据库中对应所述分库号和分表号指不的分库和分表中的所述一项数据的存储位置,从而找到所述一项数据。
11.如权利要求10所述的方法,其特征在于,根据第四预定规则为所述一项数据生成与数据编号对应的位置编号,包括: 根据第四预定规则为所述一项数据生成所述分库号和分表号,由所述分库号和分表号指示主数据库中的分库和分表中的存储位置。
12.如权利要求8所述的方法,其特征在于,所述第三预定规则还包括: 每获取一项数据为其生成的数据编号,是在上一次获取的一项数据生成的数据编号上加I ; 当获取的一项数据生成的数据编号为预先限定的最大值时,下一次获取的一项数据的所述数据编号为预先确定的数据编号。
【文档编号】G06F17/30GK103942209SQ201310020329
【公开日】2014年7月23日 申请日期:2013年1月18日 优先权日:2013年1月18日
【发明者】滕国凯 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1