CN103942209B - 数据处理方法 - Google Patents

数据处理方法 Download PDF

Info

Publication number
CN103942209B
CN103942209B CN201310020329.XA CN201310020329A CN103942209B CN 103942209 B CN103942209 B CN 103942209B CN 201310020329 A CN201310020329 A CN 201310020329A CN 103942209 B CN103942209 B CN 103942209B
Authority
CN
China
Prior art keywords
data
item data
interaction
point
defined rule
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
CN201310020329.XA
Other languages
English (en)
Other versions
CN103942209A (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.)
Advanced New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201310020329.XA priority Critical patent/CN103942209B/zh
Publication of CN103942209A publication Critical patent/CN103942209A/zh
Application granted granted Critical
Publication of CN103942209B publication Critical patent/CN103942209B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请提供一种数据处理方法,其包括:获取待业务处理的包含业务数据的一项或多项数据中的一项数据,根据预定规则为所述一项数据生成交互号以及与所述交互号对应的编号,建立映射表对该交互号和该编号生成映射关系,在主数据库对应所述一项数据的该编号指示的分库和分表中的存储位置,存储所述一项数据、其交互号、其编号,发送所述一项数据的业务数据和该交互号以进行业务处理。本申请的方法改进分布式***存储查找方式,能精确定位数据所在的库与表,避免对数据库全库表扫描,降低了数据库的开销,提升了***处理数据的能力。

Description

数据处理方法
技术领域
本申请涉及分布式技术领域,尤其涉及分布式***的多个***之间交互的数据处理的方法。
背景技术
在两个(或多个)***之间传递一项数据时,通常第一***会根据第二***的要求生成固定长度的交互号,并将该项数据存入第一***的数据库中的一个分库及该分库中的一个分表,然后将包括该交互号的数据发送给第二***,第二***在处理完毕后,会将该交互号和数据返回给第一***。而在分布式数据库的应用***中,通常采用分库分表模式,第一***无法确定该第二***传回的交互号对应的数据存在于哪个分库、哪个分表(即不确定一项包含业务数据的数据信息所在的库表),必须逐个扫描所有的库表即数据库全表扫描遍历,以找到某项数据所在库表,效率低下,其无法精确定位数据所存储的库表,因而对***性能,特别是数据库性能影响很大,导致诸如数据处理性能效率随之降低、应用***的整体处理性能低、数据库开销增大等缺陷。即便利用单数据库模式,其扩展性差,业务数据量容易增长到单数据库表无法支撑的情况(数据库性能低)。
发明内容
本申请为克服上述缺陷,提供一种数据处理方法。主要目的在于解决分布式***中,采用生成的交互号存储数据,以及相应地利用交互号、分库号、分表号存储、并在两个***间发送和接收数据,提升***数据处理性能的问题。
根据本申请的一个方面,提供一种数据处理方法,包括:获取待业务处理的一项或多项数据中的一项数据,所述一项数据包括业务数据;根据预定规则为所述一项数据生成交互号以及与所述交互号对应的编号;建立映射表,在映射表中对所述一项数据生成所述交互号以及与所述交互号对应的所述编号的映射关系;在主数据库对应所述一项数据的所述编号指示的分库和分表中的存储位置,存储所述一项数据、所述一项数据的所述交互号以及所述编号;发送所述一项数据的所述业务数据以及对应的所述交互号,以进行业务处理。
进一步的,预定规则包括:第一预定规则和第二预定规则;其中,根据第一预定规则为所述一项数据生成交互号;根据第二预定规则为所述一项数据生成与所述交互号对应的编号。
进一步的,还包括:所述一项数据的所述业务数据处理完毕后形成更新后的业务数据,接收返回的所述一项数据的所述更新后的业务数据以及对应的所述交互号;根据所述一项数据的所述交互号及所述映射关系,查找映射表中所述交互号对应的所述编号,以确定所述一项数据在主数据库的分库和分表中存储的位置;根据映射表中查找到的所述编号,在主数据库对应所述编号的分库和分表中的存储位置,找到所述一项数据,并由所述更新后的业务数据更新存储的所述一项数据中的所述业务数据。
进一步的,所述编号为主ID,所述主ID包括分库号和分表号,所述主ID用于在主数据库中标识所述一项数据,所述分库号和分表号用于确定所述一项数据在主数据库的所述分库和分表中存储的位置;在映射表中对所述一项数据生成所述交互号以及与交互号对应的所述编号的映射关系,包括:将所述交互号与所述主ID对应存储以生成映射关系,所述映射关系用于根据所述交互号或所述主ID能快速查找对应的所述主ID或对应的所述交互号。
进一步的,根据第二预定规则为所述一项数据生成与交互号对应的编号包括:根据第二预定规则为所述一项数据生成所述分库号和分表号,所述分库号和分表号写入主ID中,由所述分库号和分表号指示主数据库中的分库和分表中的存储位置。
进一步的,所述第一预定规则还包括:每获取一项数据均为其生成的交互号,并且,是在上一次获取的一项数据生成的交互号上加1;当获取的一项数据生成的交互号为预先限定的最大值时,下一次获取的一项数据的所述交互号为预先确定的交互号。
根据本发明的另一个方面,提供一种数据处理方法,包括:获取待业务处理的一项或多项数据中的一项数据,所述一项数据包括业务数据;根据预定规则为所述一项数据生成数据编号、以及与所述数据编号对应的位置编号;根据所述数据编号和所述位置编号,生成所述一项数据的交互号,所述交互号包括所述数据编号和所述位置编号;在主数据库对应所述一项数据的所述位置编号指示的分库和分表中的存储位置,存储所述一项数据以及所述一项数据的所述交互号;发送所述一项数据的所述业务数据以及对应的所述交互号,以进行业务处理。
进一步的,所述预定规则包括:第三预定规则和第四预定规则;其中,根据第三预定规则为所述一项数据生成数据编号;根据第四预定规则为所述一项数据生成与所述数据编号对应的位置编号。
进一步的,还包括:所述一项数据的所述业务数据处理完毕后形成更新后的业务数据,接收返回的所述一项数据的所述更新后的业务数据以及对应的所述交互号;根据所述一项数据的所述交互号中的所述位置编号,确定所述一项数据在主数据库的分库和分表中存储的位置;在主数据库对应所述位置编号的分库和分表中的存储位置,找到所述一项数据,并由所述更新后的业务数据更新存储的所述一项数据中的所述业务数据。
进一步的,所述数据编号用于在主数据库中标识所述一项数据;所述位置编号包括分库号和分表号,所述分库号和分表号用于确定所述一项数据在主数据库的分库和分表中存储的位置;所述交互号包括所述数据编号以及所述分库号和分表号;在主数据库对应所述位置编号的分库和分表中的存储位置,找到所述一项数据,包括:根据返回的所述交互号中的所述数据编号确定主数据库中存在所述一项数据,并根据所述交互号中的所述分库号和分表号,找到主数据库中对应所述分库号和分表号指示的分库和分表中的所述一项数据的存储位置,从而找到所述一项数据。
进一步的,根据第四预定规则为所述一项数据生成与数据编号对应的位置编号,包括:根据第四预定规则为所述一项数据生成所述分库号和分表号,由所述分库号和分表号指示主数据库中的分库和分表中的存储位置。
进一步的,所述第三预定规则还包括:每获取一项数据为其生成的数据编号,是在上一次获取的一项数据生成的数据编号上加1;当获取的一项数据生成的数据编号为预先限定的最大值时,下一次获取的一项数据的所述数据编号为预先确定的数据编号。
与现有技术相比,根据本申请的技术方案,本申请可以让应用程序精确定位交互号以及其对应的数据所在的库与表,避免对数据库全库表扫描,有效提升了应用的处理性能,降低了数据库的开销,在其他相同条件下提升了***处理数据的能力。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请的方案的实施例1的工作示意图;
图2是根据本申请的方案的实施例2的工作示意图;
图3是根据本申请的方案的实施例3的工作示意图;
图4是根据本申请的方案的实施例4的工作示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本申请作进一步地详细说明。
实施例1提供一种数据处理方法。参考图1,图1是本申请的方案实施例1的示意图,即改进了***之间传递的数据的处理:在第一***中组织数据的存储,并将获得并存储后的数据传递给负责业务处理的第二***进行处理,如下面步骤a至e;将完成业务处理后的数据再返回第一***更新存储数据的过程,如下面步骤f至i。定位数据迅速,提升了整体***的性能。
a,获取待业务处理的一项或多项数据中的一项数据101,所述一项数据包括业务数据102,例如,获取了“2012.10.01,张三,123.45”这一项数据,其中包含“123.45”这项业务数据。
b,根据预定规则为所述一项数据生成交互号105以及与所述交互号105对应的编号107,依上例,如:“2012.10.01,张三,123.45”这一项数据可以通过预定规则生成一个交互号为“123456789”,生成一个编号“13579”。
优选的,预定规则包括第一预定规则104和第二预定规则106。根据第一预定规则104生成交互号105,根据第二预定规则106生成编号107。依上例,根据第一预定规则生成交互号“123456789”,根据第二预定规则生成编号“13579”。
优选地,第一预定规则104还包括:每获取一项数据均为其生成交互号,并且,是在上一次获取的一项数据生成的交互号上加1;当获取的一项数据生成的交互号为预先限定的最大值时,下一次获取的一项数据的所述交互号为预先确定的交互号。如获取的上一项需要处理的数据交互号123456787,则下一项获取的要处理的数据交互号加1,为123456788。
c,建立映射表108,在映射表108中对所述一项数据101生成所述交互号105以及与所述交互号对应的所述编号107的映射关系;依上例:生成的一则映射为“123456789;13579”。
d,在主数据库对应所述一项数据的所述编号107指示的分库和分表中的存储位置109,存储所述一项数据101、所述一项数据的所述交互号105以及所述编号107等;依上例,编号“13579”指示了主数据库对应的分库和分表中的存储位置;则将“2012.10.01,张三,123.45;123456789;13579”都存储于该位置。
e,发送所述一项数据的所述业务数据102以及对应的所述交互号105,以进行业务处理110,依上例,发送上述业务数据和交互号“123.45;123456789”进行业务处理。
优选的,本方法还包括以下数据接收及更新步骤:
f,所述一项数据的所述业务数据处理完毕后形成更新后的新业务数据111,接收返回的所述一项数据的所述更新后的新业务数据111以及对应的所述交互号105;依上例,上述业务数据处理完毕后,形成新的业务数据“133.45”,接收返回的业务数据和交互号“133.45;123456789”。
g,根据映射表108中查找到所述编号107,依上例,以交互号123456789在映射表找到映射“123456789;13579”,在此,可以找到编号“13579”,由于映射表查找,则查找速度会加快。
h,在主数据库对应所述编号107的分库和分表中的存储位置109,查找所述一项数据101,由此,搜索范围缩小,在数据库(分库、分表)中的扫描速度会加快。依上例,在主数据库对应编号“13579”的分库和分表中的存储位置,查找到该数据“2012.10.01,张三,123.45”。
i,由所述更新后的新业务数据来更新存储的所述一项数据中的所述业务数据。依上例,由更新后的业务数据“133.45”替换“123.45”,则该项数据为“2012.10.01,张三,133.45”。
实施例2,提供一种数据处理方法。参考图2,图2是本申请实施例2的示意图。同实施例1类似,改进***间数据处理方法,提升整体***处理性能(参见实施例1的具体说明)。其进一步对实施例1进行优化。
a,获取待业务处理的一项或多项数据中的一项数据201,所述一项数据包括业务数据202,例如,获取了“2012.10.01,张三,123.45”这一项数据,其中包含“123.45”这项业务数据。
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”用于确定所述一项数据在主数据库的所述分库和分表中存储的位置。
生成编号207(如主ID)的过程,优选的,根据第二预定规则206为所述一项数据201生成与交互号205对应的编号207,还包括:根据第二预定规则为所述一项数据生成所述分库号221和分表号222,依据预定规则由所述分库号221和分表号222构成主ID220的组成部分,并由所述分库号221和分表号222指示主数据库中的分库和分表中的存储位置209。依上例,以第二预定规则生成分库号“13”和分表号“579”,将分库号“13”和分表号“579”写入主ID中,形成“246813579”,所述分库号“13”和分表号“579”指示主数据库中的分库和分表中的存储位置。
依据第二规则生成分库号221和分表号222包括但不限于以下方式:1、根据某些分布较为均匀的号码来生成,比如张三这个用户本身的ID号码的尾号为13579,则将13作为分库号,将579作为分表号。2、使用散列性较好的随机数生成,以保证数据能够较为均匀地分布在各库表当中。比如分库号是采用0-99之间的随机数,分表号是采用0-999之间的随机数。
优选的,所述第一预定规则205还包括:每获取一项数据均为其生成交互号,并且,是在上一次获取的一项数据生成的交互号上加1;当获取的一项数据生成的交互号为预先限定的最大值时,下一次获取的一项数据的所述交互号为预先确定的交互号。依上例,上一项数据的交互号为123456788,则本项数据位上一项数据的交互号加1,为123456789。交互号预先设定的最大值为999999999,若一项数据的交互号为999999999,则下一项数据为预先设定确定的交互号000000001。
c,建立映射表208,在映射表208中对所述一项数据201生成所述交互号205以及与所述交互号205对应的所述主ID220的映射关系。包括,将所述交互号205与所述主ID220对应存储以生成映射关系。所述映射关系用于根据所述交互号205或所述主ID220能快速查找对应的所述主ID220或对应的所述交互号205。依上例:依据上述生成的一则映射为“123456789;246813579”;依据交互号“123456789”可以找到主ID“246813579”,依据主ID“246813579”可以找到交互号“123456789”。
d,在主数据库对应所述一项数据的所述分库号221和分表号222指示的分库和分表中的存储位置209,存储所述一项数据201、所述一项数据的所述交互号205以及所述编号207。依上例,分库号“13”和分表号“579”指示了主数据库对应的分库和分表中的存储位置,如13号分库中的579号表;则将“2012.10.01,张三,123.45;123456789;246813579”存储于该位置。
e,发送所述一项数据的所述业务数据202以及对应的所述交互号205,以进行业务处理210。依上例,发送上述业务数据和交互号“123.45;123456789”进行业务处理。
优选的,本方法包括以下数据接收及更新步骤:
f,所述一项数据的所述业务数据处理完毕后形成更新后的新业务数据211,接收返回的所述一项数据的所述更新后的新业务数据211以及对应的所述交互号205;依上例,上述业务数据处理完毕后,形成新的业务数据“133.45”,接收返回的业务数据和交互号“133.45;123456789”。
g,根据映射表中查找到的所述主ID220,依上例,以交互号123456789在映射表找到映射“123456789;246813579”,即找到了主ID“246813579”。映射表查找速度快,有主ID查找则定位更容易更准确即查找速度也会更快。
h,在主数据库对应所述主ID220中的分库号221和分表号222指示的分库和分表中的存储位置209,找到所述一项数据。依上例,在主数据库对应编号“246813579”中的分库号“13”和分表号“579”指示主数据库中的分库和分表中的存储位置,并且,由于根据主ID快速识别其标志的数据项能确定该数据确实在主数据库中,能避免对不存在的数据而花费扫描库表的资源而造成资源浪费、影响处理效率和性能,进而在对应的上述存储位置(13、579指定的位置),结合其主ID标识,更快找到该数据“2012.10.01,张三,123.45”。
i,由所述更新后的新业务数据211更新存储的所述一项数据中的所述业务数据202。依上例,由更新后的业务数据“133.45”替代“123.45”,则该项数据为“2012.10.01,张三,133.45”。
实时例3,提供一种数据处理方法。参考图3,图3是本申请实施例3的示意图。同实施例1类似,改进***间数据处理方法,提升整体***处理性能(参见实施例1的具体说明)。
a,获取待业务处理的一项或多项数据中的一项数据301,所述一项数据包括业务数据302。例如,获取了“2012.10.01,张三,123.45”这一项数据,其中包含“123.45”这项业务数据。
b,根据预定规则303为所述一项数据生成数据编号305、以及与所述数据编号305对应的位置编号307。依上例,依据预定规则生成数据编号“2468”和位置编号“13579”。
同实施例1、2一样,预定规则可以有多种多样的。这里,例如,优选的,所述预定规则303包括:第三预定规则304和第四预定规则306;其中,根据第三预定规则304为所述一项数据生成数据编号305;根据第四预定规则306为所述一项数据生成与所述数据编号305对应的位置编号307。依上例,根据第三预定规则为上述数据生成数据编号305为“2468”,根据第四预定规则为上述数据生成与所述数据编号“2468”对应的位置编号307为“13579”。
c,根据所述数据编号305和所述位置编号307,生成所述一项数据的交互号308。所述交互号308包括所述数据编号305和所述位置编号307。依上例,根据所述数据编号“2468”和所述位置编号“13579”,生成所述一项数据的交互号“246813579”,所述交互号包括所述数据编号“2468”和所述位置编号“13579”。
d,在主数据库对应所述一项数据的所述位置编号307指示的分库和分表中的存储位置309,存储所述一项数据301以及所述一项数据的所述交互号308。依上例,在主数据库对应该项数据的所述位置编号“13579”指示的分库和分表中的存储位置,存储所述一项数据以及所述一项数据的所述交互号,“2012.10.01,张三,123.45;246813579”。
e,发送所述一项数据301的所述业务数据302以及对应的所述交互号308,以进行业务处理310,依上例,发送所述一项数据的所述业务数据以及对应的所述交互号,“123.45;246813579”,以进行业务处理。
优选的,本方法还包括以下步骤:
f,所述一项数据的所述业务数据处理完毕后形成更新后的新业务数据311,接收返回的所述一项数据的所述更新后的业务数据311以及对应的所述交互号308。依上例,所述数据的所述业务数据处理完毕后形成更新后的业务数据“133.45”接收返回的所述一项数据的所述更新后的业务数据以及对应的所述交互号“133.45;246813579”。
g,根据所述一项数据的所述交互号308中的该数据编号305确定主数据库中存在所述一项数据。根据所述位置编号307,确定所述一项数据在主数据库的分库和分表中存储的位置309。依上例,根据所述数据的交互号“246813579”中的所述位置编号“13579”,快速确定所述数据在主数据库的分库和分表中存储的位置。
h,在主数据库对应所述位置编号307的分库和分表中的存储位置309,找到所述一项数据301。依上例,在主数据库对应所述位置编号“13579”的分库和分表中的存储位置,快速找到数据编号为“2468”的所述一项数据“2012.10.01,张三,123.45”。
i,由所述更新后的新业务数据311更新存储的所述一项数据中的所述业务数据302,依上例,由所述更新后的业务数据“133.45”更新存储的所述一项数据中的所述业务数据“123.45”,则该项数据为“2012.10.01,张三,13345”。
实时例4,提供一种数据处理方法。参考图4,图4是本申请实施例4的示意图。同实施例1、3类似,改进***间数据处理方法,提升整体***处理性能(参见实施例1的具体说明)。其进一步对实施例3进行优化。
a,获取待业务处理的一项或多项数据中的一项数据401,所述一项数据包括业务数据402。例如,获取了“2012.10.01,张三,123.45”这一项数据,其中包含“123.45”这项业务数据。
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”用于确定所述一项数据在主数据库的分库和分表中存储的位置。
优选的,根据第四预定规则406为所述一项数据生成与数据编号对应的位置编号407,例如:根据第四预定规则406为所述一项数据生成所述分库号421和分表号422,根据所述分库号和所述分表号生成位置编号。所述分库号424和分表号422指示主数据库中的分库和分表中的存储位置409。依上例,根据第四预定规则生成分库号“13”和分表号“579”,由所述分库号“13”和分表号“579”指示主数据库中的分库和分表中的存储位置,如指示主数据库的13号分库中的579号表即为存储位置,由此生成位置编号,最简单的方式如生成的位置编号为“13579”。
依据第四预定规则406生成分库号421和分表号422包括但不限于以下方式:1、根据某些分布较为均匀的号码来生成,比如张三这个用户本身的ID号码的尾号为13579,则将13作为分库号,将579作为分表号。2、使用散列性较好的随机数生成,以保证数据能够较为均匀地分布在各库表当中。比如分库号是采用0-99之间的随机数,分表号是采用0-999之间的随机数。
优选的,所述第三预定规则404还包括:每获取一项数据为其生成的数据编号405,是在上一次获取的一项数据生成的数据编号上加1;当获取的一项数据生成的数据编号为预先限定的最大值时,下一次获取的一项数据的所述数据编号为预先确定的数据编号。依上例,上一项数据的数据编号为2467,则本项数据的数据编号为上一项数据的的数据编号加1,为2468。数据编号预先设定的最大值为9999,若一项数据的数据编号为9999,则下一项数据为预先设定确定的数据编号0000。
c,根据所述数据编号405和所述位置编号407,生成所述一项数据的交互号408,所述交互号408包括所述数据编号405(标识所述一项数据,能确定该项数据是否存在主数据库中,如实施例2所述能更有效的查找提升***性能)和所述位置编号407,进一步的,所述交互号408还包括所述数据编号405以及所述分库号421和分表号422。依上例,根据所述数据编号“2468”和所述位置编号“13579”,生成所述一项数据的交互号“246813579”(此处假定交互号生成即为9位表示),所述交互号包括所述数据编号“2468”和所述位置编号“13579”;即也包括分库号“13”和分表号“579”。
d,在主数据库对应所述一项数据的所述分库号421和分表号422指示的分库和分表中的存储位置409,存储所述一项数据401以及所述一项数据的所述交互号408。依上例,在主数据库对应该项数据的所述位置编号“13579”指示的分库和分表中的存储位置(如13号分库的579号表),存储所述一项数据以及所述一项数据的所述交互号,“2012.10.01,张三,123.45;246813579”。
e,发送所述一项数据的所述业务数据402以及对应的所述交互号408,以进行业务处理410,依上例,发送所述一项数据的所述业务数据以及对应的所述交互号,“123.45;246813579”,以进行业务处理。
优选的,本方法包括以下数据接收及更新步骤:
f,所述一项数据的所述业务数据处理完毕后形成更新后的新业务数据411,接收返回的所述一项数据的所述更新后的新业务数据411以及对应的所述交互号408。依上例,所述数据的所述业务数据处理完毕后形成更新后的业务数据“133.45”,接收返回的所述一项数据的所述更新后的业务数据以及对应的所述交互号“133.45;246813579”。
g,根据返回的所述交互号408中的所述数据编号405确定主数据库中存在所述一项数据,并根据所述交互号中的所述分库号421和分表号422,找到主数据库中对应所述分库号421和分表号422指示的分库和分表中的所述一项数据的存储位置409。依上例,根据返回的所述交互号“246813579”中的所述数据编号“2468”确定主数据库中存在所述一项数据,并根据所述交互号中的所述分库号“13”和分表号“579”,找到主数据库中对应所述分库和分表中的所述一项数据的存储位置409。
h,在主数据库对应所述位置编号407的分库和分表中的存储位置409,找到所述一项数据。依上例,在主数据库对应所述位置编号“13579”的分库和分表中的存储位置(如13号库的579表),找到所述数据“2012.10.01,张三,123.45;246813579”。
i,由所述更新后的新业务数据411更新存储的所述一项数据中的所述业务数据402。依上例,由所述更新后的业务数据“133.45”更新存储的所述一项数据中的所述业务数据“123.45”,则该项数据为“2012.10.01,张三,133.45;246813579”。
上述四个实施例中,实施例1与实施例2一般用于交互号位数较少、交互号无法包含所述编号(包括分库号、分表号)的情况,如实施例1通过映射交互号和编号、实施例2通过映射交互号和主ID(具有分库号、分表号的编号)的方式,实现快速定位数据、提高数据处理效率;实时例3与实施例4用于交互号位数较多、交互号可以包含所述数据编号、位置编号(包括分库号、分表号)的情况,如实施例3通过生成具有数据编号和位置编号的交互号、实施例4通过生成具有数据编号和具有分库号、分表号的位置编号的交互号,实现快速定位数据、提高数据处理效率。
本说明书中的各个实施例一般采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块或单元。一般地,程序模块或单元可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。一般来说,程序模块或单元可以由软件、硬件或两者的结合来实现。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块或单元可以位于包括存储设备在内的本地和远程计算机存储介质中。
最后,还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其主要思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种数据处理方法,其特征在于,包括:
获取待业务处理的一项或多项数据中的一项数据,所述一项数据包括业务数据;
根据预定规则为所述一项数据生成交互号以及与所述交互号对应的编号;
建立映射表,在映射表中对所述一项数据生成所述交互号以及与所述交互号对应的所述编号的映射关系;
在主数据库对应所述一项数据的所述编号指示的分库和分表中的存储位置,存储所述一项数据、所述一项数据的所述交互号以及所述编号;
发送所述一项数据的所述业务数据以及对应的所述交互号,以进行业务处理,并接收返回的所述一项数据的更新后的业务数据以及对应的所述交互号;
根据所述一项数据的所述交互号及所述映射关系,查找映射表中所述交互号对应的所述编号,以确定所述一项数据在主数据库的分库和分表中存储的位置;
根据映射表中查找到的所述编号,在主数据库对应所述编号的分库和分表中的存储位置,找到所述一项数据,并由所述更新后的业务数据更新存储的所述一项数据中的所述业务数据。
2.如权利要求1所述的方法,其特征在于,所述预定规则包括:
第一预定规则和第二预定规则;其中,
根据第一预定规则为所述一项数据生成交互号;
根据第二预定规则为所述一项数据生成与所述交互号对应的编号。
3.如权利要求1所述的方法,其特征在于,生成的所述编号还包括主ID,所述主ID包括分库号和分表号,所述主ID用于在主数据库中标识所述一项数据,所述分库号和分表号用于确定所述一项数据在主数据库的所述分库和分表中存储的位置;
在映射表中对所述一项数据生成所述交互号以及与交互号对应的所述编号的映射关系,包括:将所述交互号与所述主ID对应存储以生成映射关系,所述映射关系用于根据所述交互号或所述主ID能快速查找对应的所述主ID或对应的所述交互号。
4.如权利要求2所述的方法,其特征在于,根据第二预定规则为所述一项数据生成与交互号对应的编号包括:
根据第二预定规则为所述一项数据生成所述分库号和分表号,由所述分库号和分表号指示主数据库中的分库和分表中的存储位置。
5.如权利要求2所述的方法,其特征在于,所述第一预定规则还包括:
每获取一项数据均为其生成的交互号,并且,是在上一次获取的一项数据生成的交互号上加1;
当获取的一项数据生成的交互号为预先限定的最大值时,下一次获取的一项数据的所述交互号为预先确定的交互号。
6.一种数据处理方法,其特征在于,包括:
获取待业务处理的一项或多项数据中的一项数据,所述一项数据包括业务数据;
根据预定规则为所述一项数据生成数据编号、以及与所述数据编号对应的位置编号;
根据所述数据编号和所述位置编号,生成所述一项数据的交互号,所述交互号包括所述数据编号和所述位置编号;
在主数据库对应所述一项数据的所述位置编号指示的分库和分表中的存储位置,存储所述一项数据以及所述一项数据的所述交互号;
发送所述一项数据的所述业务数据以及对应的所述交互号,以进行业务处理,并接收返回的所述一项数据的更新后的业务数据以及对应的所述交互号;
根据所述一项数据的所述交互号中的所述位置编号,确定所述一项数据在主数据库的分库和分表中存储的位置;
在主数据库对应所述位置编号的分库和分表中的存储位置,找到所述一项数据,并由所述更新后的业务数据更新存储的所述一项数据中的所述业务数据。
7.如权利要求6所述的方法,其特征在于,所述预定规则包括:
第三预定规则和第四预定规则;其中,
根据第三预定规则为所述一项数据生成数据编号;
根据第四预定规则为所述一项数据生成与所述数据编号对应的位置编号。
8.如权利要求6所述的方法,其特征在于,
所述数据编号用于在主数据库中标识所述一项数据;
所述位置编号包括分库号和分表号,所述分库号和分表号用于确定所述一项数据在主数据库的分库和分表中存储的位置;
所述交互号包括所述数据编号以及所述分库号和分表号;
在主数据库对应所述位置编号的分库和分表中的存储位置,找到所述一项数据,包括:
根据返回的所述交互号中的所述数据编号确定主数据库中存在所述一项数据,并根据所述交互号中的所述分库号和分表号,找到主数据库中对应所述分库号和分表号指示的分库和分表中的所述一项数据的存储位置,从而找到所述一项数据。
9.如权利要求7所述的方法,其特征在于,根据第四预定规则为所述一项数据生成与数据编号对应的位置编号,包括:
根据第四预定规则为所述一项数据生成所述分库号和分表号,由所述分库号和分表号指示主数据库中的分库和分表中的存储位置。
10.如权利要求7所述的方法,其特征在于,所述第三预定规则还包括:
每获取一项数据为其生成的数据编号,是在上一次获取的一项数据生成的数据编号上加1;
当获取的一项数据生成的数据编号为预先限定的最大值时,下一次获取的一项数据的所述数据编号为预先确定的数据编号。
CN201310020329.XA 2013-01-18 2013-01-18 数据处理方法 Active CN103942209B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310020329.XA CN103942209B (zh) 2013-01-18 2013-01-18 数据处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310020329.XA CN103942209B (zh) 2013-01-18 2013-01-18 数据处理方法

Publications (2)

Publication Number Publication Date
CN103942209A CN103942209A (zh) 2014-07-23
CN103942209B true CN103942209B (zh) 2017-09-19

Family

ID=51189879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310020329.XA Active CN103942209B (zh) 2013-01-18 2013-01-18 数据处理方法

Country Status (1)

Country Link
CN (1) CN103942209B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104317749B (zh) * 2014-10-31 2017-12-05 小米科技有限责任公司 信息写入方法和装置
CN105138638A (zh) * 2015-08-24 2015-12-09 浪潮通用软件有限公司 一种基于应用层的数据库分布方法
CN106844397B (zh) * 2015-12-07 2020-05-12 阿里巴巴集团控股有限公司 基于分库分表的任务传输方法、装置及***
CN107193827B (zh) * 2016-03-14 2020-07-17 阿里巴巴集团控股有限公司 分库分表的幂等控制方法和装置
CN107451765B (zh) * 2016-05-30 2020-12-25 菜鸟智能物流控股有限公司 一种异步物流数据处理方法及装置、物流管理方法及装置
CN107766459B (zh) * 2017-09-27 2021-03-02 天翼商业保理有限公司 一种分表方法及其***
CN108108436B (zh) * 2017-12-20 2020-07-31 东软集团股份有限公司 数据存储方法、装置、存储介质及电子设备
CN110597801B (zh) * 2018-05-23 2021-09-17 杭州海康威视数字技术股份有限公司 一种数据库***及其建立方法和装置
CN110659319A (zh) * 2019-08-30 2020-01-07 阿里巴巴集团控股有限公司 对数据写入请求进行流量均衡的方法和***
CN114153387B (zh) * 2021-11-17 2023-08-15 苏州浪潮智能科技有限公司 一种ai平台的多用户存储对接方法和ai平台

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102053982A (zh) * 2009-11-02 2011-05-11 阿里巴巴集团控股有限公司 一种数据库信息管理方法和设备
CN102096685A (zh) * 2009-12-11 2011-06-15 阿里巴巴集团控股有限公司 分布式数据同步到数据仓库的方法及装置
CN102567399A (zh) * 2010-12-31 2012-07-11 北京新媒传信科技有限公司 一种访问数据库的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102053982A (zh) * 2009-11-02 2011-05-11 阿里巴巴集团控股有限公司 一种数据库信息管理方法和设备
CN102096685A (zh) * 2009-12-11 2011-06-15 阿里巴巴集团控股有限公司 分布式数据同步到数据仓库的方法及装置
CN102567399A (zh) * 2010-12-31 2012-07-11 北京新媒传信科技有限公司 一种访问数据库的方法和装置

Also Published As

Publication number Publication date
CN103942209A (zh) 2014-07-23

Similar Documents

Publication Publication Date Title
CN103942209B (zh) 数据处理方法
US11853389B2 (en) Methods and apparatus for sorting data
US10079879B2 (en) Weighted rendezvous hashing
JP2020533254A (ja) 貨物を仕分けるための方法および装置
US20200043080A1 (en) Order processing method and device, server, and storage medium
CN106210161A (zh) 一种短链接生成方法及***
TW201627882A (zh) 先決式資料庫系統及其資料搬移方法
US8881173B2 (en) Event processing system, distribution controller, event processing method, distribution control method, and program storage medium
CN107333248B (zh) 一种短信实时发送方法和***
CN106570097A (zh) 序列生成方法及装置
US10965597B2 (en) Virtual network function load balancer
CN108345643A (zh) 一种数据处理方法及装置
JP2017509043A (ja) グラフデータクエリ方法および装置
CN108200112A (zh) 分布式存储方法及***
CN113128743B (zh) 一种拣货路径规划方法和装置
US10838875B2 (en) System and method for managing memory for large keys and values
CN109783258A (zh) 一种消息处理方法、装置及服务器
CN108563697A (zh) 一种数据处理方法、装置和存储介质
CN113128821A (zh) 确定任务的方法和装置
US10262081B2 (en) Method and apparatus for improved database searching
CN106446050A (zh) 一种针对数据库的变化数据进行订阅的方法及***
US9132957B1 (en) Processing of misplaced items to resolve inventory defects
CN104050210A (zh) 提供和接收表示三维表面的部分的物理特征的信息的方法
US10372690B2 (en) Dynamic joining of database tables
CN105931054A (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20191203

Address after: P.O. Box 31119, grand exhibition hall, hibiscus street, 802 West Bay Road, Grand Cayman, Cayman Islands

Patentee after: Innovative advanced technology Co., Ltd

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Co., Ltd.

TR01 Transfer of patent right