CN111506654A - 用于数据路由的数据分区方法 - Google Patents
用于数据路由的数据分区方法 Download PDFInfo
- Publication number
- CN111506654A CN111506654A CN202010306622.2A CN202010306622A CN111506654A CN 111506654 A CN111506654 A CN 111506654A CN 202010306622 A CN202010306622 A CN 202010306622A CN 111506654 A CN111506654 A CN 111506654A
- Authority
- CN
- China
- Prior art keywords
- data
- identifier
- sequence
- user
- partition
- 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.)
- Granted
Links
Images
Classifications
-
- 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/278—Data partitioning, e.g. horizontal or vertical partitioning
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种用于数据路由的数据分区方法,包括:利用用户服务号码生成相对应的用户唯一标识,用户唯一标识采用不同的分段序列分别用于标识对应的数据所在的数据库和数据分区;根据用户服务号码或用户唯一标识将对应的数据存储于对应的数据库和数据分区中;数据路由过程中根据路由值中携带的用户服务号码或用户唯一标识,计算得到对应的数据所在的数据库和数据分区。通过本发明的技术方案,不需转换即可计算得到对应的数据库和数据分区,加快了数据路由速度,进一步地同一地市的数据可以路由到不同的数据分区的数据实例,解决了数据库实例不均衡问题。
Description
技术领域
本发明涉及数据路由技术领域,尤其涉及一种用于数据路由的数据分区方法。
背景技术
常用的数据分区算法有如下几种:
1.按照范围分区,此分区字段一般是一个整数。
2.按照枚举值分区,每个枚举值都是一个独立的分区。
3.按照hash分区,对某一个字段做hash,然后按照hash出来的枚举值分区。
随着业务和技术的发展,单靠某一种分区或路由技术不能很好的满足业务的需要,下面举一个移动业务场景:
一般一个移动省份为一个独立的系统,而由于各地市人口和业务发展等因素,开展的业务量也不均匀,一般省会的经济比较好,业务开展也非常好,比如一个省份,总共有13个地市,而省会的业务量可以占到全省业务量的40%,其他12个地市才占用了60%的业务量,业务量发展非常不均衡。
如果按照地市进行分区,那么省份所在分区就会占到40%的的资源。由于一个省份的数据量非常大,假如按照地市把数据存放到两个独立的数据库中,那么,其中一个数据库中的省份地市,会占到本数据库存储量的40%*2=80%,会进一步凸显大地市对主机资源的需求。
在做数据库系统设计时,会为每个用户分配一个唯一的数字标识,代表此用户实例,一个服务号码对应一个用户标识。做表分区时,也以用户标识作为表的分区字段。
基于移动业务的特点,受理业务时,用户一般以服务号码(手机号码、宽带账号等)作为查询条件,此时,为了通过服务号码知道其所在的数据库,就需要把手机号码映射到用户标识上,确定所在的数据库。
怎么同时支持按照用户标识和服务号码的高效路由,并保证大地市数据的合理拆分就成了难点。
发明内容
针对上述问题中的至少之一,本发明提供了一种用于数据路由的数据分区方法,通过利用用户服务号码生成相对应的用户唯一标识,用以标识对应的数据所在的数据库和数据分区,从而在数据路由过程中根据路由值携带的用户唯一标识或用户服务号码,不需转换即可计算得到对应的数据库和数据分区,加快了数据路由速度,进一步地同一地市的数据可以路由到不同的数据分区的数据实例,解决了数据库实例不均衡问题。
为实现上述目的,本发明提供了一种用于数据路由的数据分区方法,包括:利用用户服务号码生成相对应的用户唯一标识,所述用户唯一标识采用不同的分段序列分别用于标识对应的数据所在的数据库和数据分区;根据所述用户服务号码或所述用户唯一标识将对应的数据存储于对应的所述数据库和所述数据分区中;数据路由过程中根据路由值中携带的所述用户服务号码或所述用户唯一标识,计算得到对应的数据所在的所述数据库和所述数据分区。
在上述技术方案中,优选地,所述用户唯一标识为分段序列,所述用户唯一标识包括省份标识序列、地市标识序列、分区标识序列和唯一序列值,所述省份标识序列和所述地市标识序列用于标识所述用户唯一标识对应数据所在的数据库,所述分区标识序列为所述用户服务号码的最后一位或利用所述用户服务号码进行hash处理生成的一位阿拉伯数字,用于标识所述用户唯一标识对应数据所在的数据分区,所述唯一序列值在所述省份标识序列、所述地市标识序列和所述分区标识序列相同时不重复。
在上述技术方案中,优选地,所述用户服务号码为数字时,以所述用户服务号码的最后一位作为所述分区标识序列;所述用户服务号码非数字时,对所述用户服务号码的最后一位或整体的所述用户服务号码进行hash处理并生成一位0-9的阿拉伯数字,作为所述分区标识序列。
在上述技术方案中,优选地,所述路由值中携带所述用户服务号码时,根据所述用户服务号码中用于标识对应数据所在数据库的号段确定对应的数据库,根据所述用户服务号码中用于标识对应数据所在数据分区的号段确定对应的数据分区;所述路由值中携带所述用户唯一标识时,根据所述用户唯一标识中的所述省份标识序列和所述地市标识序列确定对应数据所在的数据库,根据所述分区标识序列确定对应数据所在的数据分区。
在上述技术方案中,优选地,所述数据库分布于预设的地市,每个所述数据库划分有不同的数据分区,每个所述用户服务号码或所述用户唯一标识所对应的数据存储于对应的数据分区中。
在上述技术方案中,优选地,所述省份标识序列为两位数值,由两位数值的省份枚举值填充,所述地市标识序列为两位数值,由所在省份的两位数值的地市枚举值填充,所述分区标识序列为一位数值,所述唯一序列值为9-13位数值,在任意两个用户唯一标识的所述省份标识序列、所述地市标识序列和所述分区标识序列相同时所述唯一序列值不重复。
与现有技术相比,本发明的有益效果为:通过利用用户服务号码生成相对应的用户唯一标识,用以标识对应的数据所在的数据库和数据分区,从而在数据路由过程中根据路由值携带的用户唯一标识或用户服务号码,不需转换即可计算得到对应的数据库和数据分区,加快了数据路由速度,进一步地同一地市的数据可以路由到不同的数据分区的数据实例,解决了数据库实例不均衡问题。
附图说明
图1为本发明一种实施例公开的用于数据路由的数据分区方法的用户唯一标识的分段设计示意图;
图2为本发明一种实施例公开的用户唯一标识的设计原理示意图;
图3为本发明一种实施例公开的数据分区方法应用于路由的原理示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图对本发明做进一步的详细描述:
如图1和图2所示,根据本发明提供的一种用于数据路由的数据分区方法,包括:利用用户服务号码生成相对应的用户唯一标识,用户唯一标识采用不同的分段序列分别用于标识对应的数据所在的数据库和数据分区;根据用户服务号码或用户唯一标识将对应的数据存储于对应的数据库和数据分区中;数据路由过程中根据路由值中携带的用户服务号码或用户唯一标识,计算得到对应的数据所在的数据库和数据分区。
在该实施例中,利用用户服务号码生成相对应的用户唯一标识,用以标识对应的数据所在的数据库和数据分区,从而在数据路由过程中根据路由值携带的用户唯一标识或用户服务号码,不需转换即可计算得到对应的数据库和数据分区,加快了数据路由速度,进一步地同一地市的数据可以路由到不同的数据分区的数据实例,解决了数据库实例不均衡问题。
其中,用户服务号码与用户唯一标识一一映射,由于用户服务号码和用户唯一标识按照一定规则与数据库和数据路由之间的对应关系,按照预设的规则协同路由,从而加快按照用户服务号码的路由速度。
如图1所示,在上述实施例中,优选地,用户唯一标识为分段序列,用户唯一标识包括A段省份标识序列(A1-An)、B段地市标识序列(B1-Bn)、C段分区标识序列(C1-Cn)和D段唯一序列值(D1-Dn),A段省份标识序列和B段地市标识序列用于标识用户唯一标识对应数据所在的数据库,C段分区标识序列为用户服务号码的最后一位或利用用户服务号码进行hash处理生成的一位阿拉伯数字,用于标识用户唯一标识对应数据所在的数据分区,D段唯一序列值在A段省份标识序列、B段地市标识序列和C段分区标识序列相同时不重复。
优选地,A段省份标识序列为两位数值,由两位数值的省份枚举值填充,B段地市标识序列为两位数值,由所在省份的两位数值的地市枚举值填充,C段分区标识序列为一位数值,D段唯一序列值为9-13位数值,在任意两个用户唯一标识的A段省份标识序列、B段地市标识序列和C段分区标识序列相同时,D段唯一序列值不重复。
如图2所示,在上述实施例中,优选地,C段分区标识序列的设置方式为:
用户服务号码为数字时,以用户服务号码的最后一位作为分区标识序列;
用户服务号码非数字时,对用户服务号码的最后一位或整体的用户服务号码进行hash处理,生成一位0-9的阿拉伯数字,填充至C段分区标识序列。
在上述实施例中,优选地,路由值中携带用户服务号码时,根据用户服务号码中用于标识对应数据所在数据库的号段确定对应的数据库,根据用户服务号码中用于标识对应数据所在数据分区的号段确定对应的数据分区,具体地,如果用户服务号码为11位的手机号码,则第4位至第10位用于标识地市数据库,最后1位用于标识对应的数据分区。
路由值中携带用户唯一标识时,根据用户唯一标识中的省份标识序列和地市标识序列确定对应数据所在的数据库,根据分区标识序列确定对应数据所在的数据分区。
在上述实施例中,优选地,数据库分布于预设的地市,每个数据库划分有不同的数据分区,每个用户服务号码或用户唯一标识所对应的数据存储于对应的数据分区中。
如图3所示,在上述实施例中,路由使用的具体过程如下:
第一步:根据交易报文中携带的路由计算路由值,可以是用户唯一标识或者用户服务号码,根据路由值计算出对应数据所在数据库、数据分区;
第二步:服务框架根据数据所在数据分区操作对应的数据库实例。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种用于数据路由的数据分区方法,其特征在于,包括:
利用用户服务号码生成相对应的用户唯一标识,所述用户唯一标识采用不同的分段序列分别用于标识对应的数据所在的数据库和数据分区;
根据所述用户服务号码或所述用户唯一标识将对应的数据存储于对应的所述数据库和所述数据分区中;
数据路由过程中根据路由值中携带的所述用户服务号码或所述用户唯一标识,计算得到对应的数据所在的所述数据库和所述数据分区。
2.根据权利要求1所述的用于数据路由的数据分区方法,其特征在于,所述用户唯一标识为分段序列,所述用户唯一标识包括省份标识序列、地市标识序列、分区标识序列和唯一序列值,所述省份标识序列和所述地市标识序列用于标识所述用户唯一标识对应数据所在的数据库,所述分区标识序列为所述用户服务号码的最后一位或利用所述用户服务号码进行hash处理生成的一位阿拉伯数字,用于标识所述用户唯一标识对应数据所在的数据分区,所述唯一序列值在所述省份标识序列、所述地市标识序列和所述分区标识序列相同时不重复。
3.根据权利要求1所述的用于数据路由的数据分区方法,其特征在于:
所述用户服务号码为数字时,以所述用户服务号码的最后一位作为所述分区标识序列;
所述用户服务号码非数字时,对所述用户服务号码的最后一位或整体的所述用户服务号码进行hash处理并生成一位0-9的阿拉伯数字,作为所述分区标识序列。
4.根据权利要求1所述的用于数据路由的数据分区方法,其特征在于,所述路由值中携带所述用户服务号码时,根据所述用户服务号码中用于标识对应数据所在数据库的号段确定对应的数据库,根据所述用户服务号码中用于标识对应数据所在数据分区的号段确定对应的数据分区;
所述路由值中携带所述用户唯一标识时,根据所述用户唯一标识中的所述省份标识序列和所述地市标识序列确定对应数据所在的数据库,根据所述分区标识序列确定对应数据所在的数据分区。
5.根据权利要求4所述的用于数据路由的数据分区方法,其特征在于,所述数据库分布于预设的地市,每个所述数据库划分有不同的数据分区,每个所述用户服务号码或所述用户唯一标识所对应的数据存储于对应的数据分区中。
6.根据权利要求2所述的用于数据路由的数据分区方法,其特征在于,所述省份标识序列为两位数值,由两位数值的省份枚举值填充,所述地市标识序列为两位数值,由所在省份的两位数值的地市枚举值填充,所述分区标识序列为一位数值,所述唯一序列值为9-13位数值,在任意两个用户唯一标识的所述省份标识序列、所述地市标识序列和所述分区标识序列相同时所述唯一序列值不重复。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010306622.2A CN111506654B (zh) | 2020-04-17 | 2020-04-17 | 用于数据路由的数据分区方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010306622.2A CN111506654B (zh) | 2020-04-17 | 2020-04-17 | 用于数据路由的数据分区方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111506654A true CN111506654A (zh) | 2020-08-07 |
CN111506654B CN111506654B (zh) | 2023-05-05 |
Family
ID=71864156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010306622.2A Active CN111506654B (zh) | 2020-04-17 | 2020-04-17 | 用于数据路由的数据分区方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111506654B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838770A (zh) * | 2012-11-26 | 2014-06-04 | 中国移动通信集团北京有限公司 | 一种数据逻辑分区的方法和系统 |
US20160117357A1 (en) * | 2004-08-12 | 2016-04-28 | Oracle International Corporation | Adaptively routing transactions to servers |
US20160239530A1 (en) * | 2015-02-12 | 2016-08-18 | International Business Machines Corporation | Database identifier generation in transaction processing systems |
CN106537384A (zh) * | 2014-07-15 | 2017-03-22 | 微软技术许可有限责任公司 | 使用指示用户位置的数据的逆向ip数据库 |
CN106528579A (zh) * | 2015-09-15 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 一种基于分库分表结构数据库的查询方法、装置及系统 |
CN107085570A (zh) * | 2016-02-14 | 2017-08-22 | 华为技术有限公司 | 数据处理方法、应用服务器和路由器 |
CN107172312A (zh) * | 2017-06-05 | 2017-09-15 | 广东电网有限责任公司佛山供电局 | 一种多个地市的呼叫中心业务统一集中处理方法 |
CN108322222A (zh) * | 2018-01-16 | 2018-07-24 | 四川斐讯信息技术有限公司 | 一种生成及使用分布式唯一id的方法 |
CN109189856A (zh) * | 2018-08-15 | 2019-01-11 | 中国联合网络通信集团有限公司 | 分布式数据库服务管理方法、装置、服务器及存储介质 |
US20190392047A1 (en) * | 2018-06-25 | 2019-12-26 | Amazon Technologies, Inc. | Multi-table partitions in a key-value database |
-
2020
- 2020-04-17 CN CN202010306622.2A patent/CN111506654B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160117357A1 (en) * | 2004-08-12 | 2016-04-28 | Oracle International Corporation | Adaptively routing transactions to servers |
CN103838770A (zh) * | 2012-11-26 | 2014-06-04 | 中国移动通信集团北京有限公司 | 一种数据逻辑分区的方法和系统 |
CN106537384A (zh) * | 2014-07-15 | 2017-03-22 | 微软技术许可有限责任公司 | 使用指示用户位置的数据的逆向ip数据库 |
US20160239530A1 (en) * | 2015-02-12 | 2016-08-18 | International Business Machines Corporation | Database identifier generation in transaction processing systems |
CN106528579A (zh) * | 2015-09-15 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 一种基于分库分表结构数据库的查询方法、装置及系统 |
CN107085570A (zh) * | 2016-02-14 | 2017-08-22 | 华为技术有限公司 | 数据处理方法、应用服务器和路由器 |
CN107172312A (zh) * | 2017-06-05 | 2017-09-15 | 广东电网有限责任公司佛山供电局 | 一种多个地市的呼叫中心业务统一集中处理方法 |
CN108322222A (zh) * | 2018-01-16 | 2018-07-24 | 四川斐讯信息技术有限公司 | 一种生成及使用分布式唯一id的方法 |
US20190392047A1 (en) * | 2018-06-25 | 2019-12-26 | Amazon Technologies, Inc. | Multi-table partitions in a key-value database |
CN109189856A (zh) * | 2018-08-15 | 2019-01-11 | 中国联合网络通信集团有限公司 | 分布式数据库服务管理方法、装置、服务器及存储介质 |
Non-Patent Citations (1)
Title |
---|
欧阳凌云;: "基于大数据的集团共享服务中心建设的构想", 电脑知识与技术 * |
Also Published As
Publication number | Publication date |
---|---|
CN111506654B (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107832407B (zh) | 用于生成知识图谱的信息处理方法、装置和可读存储介质 | |
CN110807129B (zh) | 多层用户关系图集合的生成方法、装置及电子设备 | |
CN111367649B (zh) | 高精地图数据并行处理方法和装置 | |
CN111522968A (zh) | 知识图谱融合方法及装置 | |
CN111737315B (zh) | 地址模糊匹配方法及装置 | |
CN109684425A (zh) | 保单用户地址匹配方法及装置 | |
CN111666344A (zh) | 异构数据同步方法及装置 | |
CN111400301B (zh) | 一种数据查询方法、装置及设备 | |
CN114282011A (zh) | 知识图谱的构建方法和装置、图计算方法及装置 | |
CN113269558A (zh) | 分布式系统中交易处理的方法及装置 | |
CN114153986A (zh) | 一种知识图谱构建方法、装置、电子设备及存储介质 | |
CN112040413B (zh) | 用户轨迹计算方法、装置及电子设备 | |
CN108876592A (zh) | 一种信用风险预估方法和系统、存储介质 | |
CN111506654B (zh) | 用于数据路由的数据分区方法 | |
CN114723145B (zh) | 基于交易量确定智能柜台数量的方法及系统 | |
Alam et al. | Generating massive scale-free networks: Novel parallel algorithms using the preferential attachment model | |
CN113157695B (zh) | 数据处理方法、装置、可读介质及电子设备 | |
CN110689386A (zh) | 一种电子票据开具方法及系统 | |
CN111784239B (zh) | 派送网点的确定方法、装置、电子设备及存储介质 | |
CN114840388A (zh) | 数据监控方法、装置、电子设备及存储介质 | |
CN112364651A (zh) | 快递面单二段码生成方法、装置、设备及存储介质 | |
CN110321435B (zh) | 一种数据源划分方法、装置、设备和存储介质 | |
CN113656187A (zh) | 基于5g的公安大数据算力服务系统 | |
Li et al. | A sort-based interest matching algorithm with two exclusive judging conditions for region overlap | |
CN110990367A (zh) | 一种基于图团体聚类实现gps定位集群计算性能优化方法 |
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 |