CN111625602A - 一种基于客户id的分库方法和装置 - Google Patents
一种基于客户id的分库方法和装置 Download PDFInfo
- Publication number
- CN111625602A CN111625602A CN202010466359.3A CN202010466359A CN111625602A CN 111625602 A CN111625602 A CN 111625602A CN 202010466359 A CN202010466359 A CN 202010466359A CN 111625602 A CN111625602 A CN 111625602A
- Authority
- CN
- China
- Prior art keywords
- client
- database
- order
- segmentation
- script
- 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.)
- Pending
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
Abstract
本发明公开了一种基于客户ID的分库方法和装置,涉及电信运营领域。该方法包括:在原受理的实例表模型中的客户ID中添加切分字段,当数据库再次受理客户ID的订单时,数据库根据切分字段执行建表脚本,将订单信息划分到客户ID对应数据库中,提供更加直观方便的数据库切分方案,从而简化数据库迁移后的服务开发难度,并且更便于维护人员日常运维。
Description
技术领域
本发明涉及电信运营领域,尤其涉及一种基于客户ID的分库方法和装置。
背景技术
现有电信运营商的销售中心大多还是基于oracle库,使用分布式数据库的大多用订单编码或用户标识分库。在使用阿里DRDS数据库时,基于订单编码或用户标识分库时,会导致一个服务内事务不一致的问题,
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种基于客户ID的分库方法和装置。
本发明解决上述技术问题的技术方案如下:
一种基于客户ID的分库方法,包括:
S1,在原受理的实例表模型中的客户ID中添加切分字段;
S2,当数据库再次受理所述客户ID的订单时,数据库根据所述切分字段执行建表脚本,将订单信息划分到所述客户ID对应数据库中。
本发明的有益效果是:本方案通过在原受理的实例表模型中的客户ID中添加切分字段,当数据库再次受理客户ID的订单时,数据库根据切分字段执行建表脚本,将订单信息划分到所述客户ID对应数据库中,提供更加直观方便的数据库切分方案,从而简化数据库迁移后的服务开发难度,并且更便于维护人员日常运维。
进一步地,所述S1之前还包括:
受理原业务订单;
对所述原业务订单的预设数据模型进行梳理,所述预设数据模型包括实例表模型。
采用上述进一步方案的有益效果是:本方案对受理原业务订单,并对原业务订单的数据模型进行梳理,通过对原业务订单的预设数据模型进行梳理,将数据模型区分为参数配置表、数据小表及实例表,方便后续在区分出的实例表中添加切分字段。
进一步地,所述S1之前还包括:在所述建表脚本中写入根据所述客户ID的切分字段进行数据库切分,并将所述建表脚本部署到所述数据库中。
采用上述进一步方案的有益效果是:本方案在建表脚本中写入根据客户ID的切分字段进行数据库切分,并将建表脚本部署到所述数据库中,在业务受理过程中通过以客户ID为中心,通过客户ID的切分字段进行数据库切分,每次受理提交都是同一个客户的业务,能够直接提交做到事务一致。如群组业务提交生成一个客户订单,多个服务订单的情况,也能保证提交事务保持一致。
进一步地,还包括:在包括所述客户ID的索引表中,新增订单编码时,数据库根据所述订单编码将订单信息划分到对应数据库。
采用上述进一步方案的有益效果是:本方案在新增订单编码时,数据库根据订单编码将订单信息划分到对应数据库,从而以客户视角进行受理单查询和用户信息查询时,有更好的分页和排序处理,并且能够充分利用数据库的优势,如按客户id查询订单列表或用户列表并分页展示。
进一步地,所述数据库包括DRDS、mycat或分布式内存库。
采用上述进一步方案的有益效果是:通过参用DRDS、mycat或分布式内存库等标准的分布式关系型数据库,采用切分字段,以提供更加直观方便的数据库切分方案。
本发明解决上述技术问题的另一种技术方案如下:
一种基于客户ID的分库装置,包括:字段添加模块和第一分库模块;
所述字段添加模块用于在原受理的实例表模型中的客户ID中添加切分字段;
所述第一分库模块用于当数据库再次受理所述客户ID的订单时,数据库根据所述切分字段执行建表脚本,将订单信息划分到所述客户ID对应数据库中。
本发明的有益效果是:本方案通过在原受理的实例表模型中的客户ID中添加切分字段,当数据库再次受理客户ID的订单时,数据库根据切分字段执行建表脚本,将订单信息划分到所述客户ID对应数据库中,提供更加直观方便的数据库切分方案,从而简化数据库迁移后的服务开发难度,并且更便于维护人员日常运维。
进一步地,还包括:原订单梳理模块,用于受理原业务订单;对所述原业务订单的预设数据模型进行梳理,所述预设数据模型包括实例表模型。
采用上述进一步方案的有益效果是:本方案对受理原业务订单,并对原业务订单的数据模型进行梳理,通过对原业务订单的预设数据模型进行梳理,将数据模型区分为参数配置表、数据小表及实例表,方便后续在区分出的实例表中添加切分字段。
进一步地,还包括脚本部署模块,用于在所述建表脚本中写入根据所述客户ID的切分字段进行数据库切分,并将所述建表脚本部署到所述数据库中。
采用上述进一步方案的有益效果是:本方案在建表脚本中写入根据客户ID的切分字段进行数据库切分,并将建表脚本部署到所述数据库中,在业务受理过程中通过以客户ID为中心,通过客户ID的切分字段进行数据库切分,每次受理提交都是同一个客户的业务,能够直接提交做到事务一致。如群组业务提交生成一个客户订单,多个服务订单的情况,也能保证提交事务保持一致。
进一步地,还包括:第二分库模块,用于在包括所述客户ID的索引表中,新增订单编码时,数据库根据所述订单编码将订单信息划分到对应数据库。
采用上述进一步方案的有益效果是:本方案在新增订单编码时,数据库根据订单编码将订单信息划分到对应数据库,从而以客户视角进行受理单查询和用户信息查询时,有更好的分页和排序处理,并且能够充分利用数据库的优势,如按客户id查询订单列表或用户列表并分页展示。
进一步地,所述数据库包括DRDS、mycat或分布式内存库。
采用上述进一步方案的有益效果是:通过参用DRDS、mycat或分布式内存库等标准的分布式关系型数据库,采用切分字段,以提供更加直观方便的数据库切分方案。
本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。
附图说明
图1为本发明的实施例提供的基于客户ID的分库方法的流程示意图;
图2为本发明的实施例提供的基于客户ID的分库装置的结构框图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实施例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,为本发明实施例提供的一种基于客户ID的分库方法,该方法包括:S1,在原受理的实例表模型中的客户ID中添加切分字段;
S2,当数据库再次受理客户ID的订单时,数据库根据切分字段执行建表脚本,将订单信息划分到客户ID对应数据库中。
需要说明的是编写分库的建表脚本表示在建表脚本写入按照客户ID切分,并部署到分布式关系型数据库中,数据库按照建表脚本执行,就可以实现数据库切分,其中将建表脚本部署到数据中是常规部署,类似oracle部署,属于公知内容。
本方案通过在原受理的实例表模型中的客户ID中添加切分字段,当数据库再次受理客户ID的订单时,数据库根据切分字段执行建表脚本,将订单信息划分到客户ID对应数据库中,提供更加直观方便的数据库切分方案,从而简化数据库迁移后的服务开发难度,并且更便于维护人员日常运维,例如日常运维需要涉及同一客户的多表资料关联也可以通过本方案进行。
优选地,在上述任意实施例中,S1之前还包括:
受理原业务订单;
对原业务订单的预设数据模型进行梳理,预设数据模型包括实例表模型。其中预设数据模型用于保存订单数据表,预设数据模型包括内容如表1所示:
表1
本方案对受理原业务订单,并对原业务订单的数据模型进行梳理,通过对原业务订单的预设数据模型进行梳理,将数据模型区分为参数配置表、数据小表及实例表,方便后续在区分出的实例表中添加切分字段。
优选地,在上述任意实施例中,S1之前还包括:在建表脚本中写入根据客户ID的切分字段进行数据库切分,并将建表脚本部署到数据库中。
需要说明的是,在某实施例中,客户的提交一个订单,根据订单中的客户ID的切分字段进行切分,将该客户的订单信息划分到存储该客户的物理库中,后续该客户的所有订单信息均划分到该物理库中保存。
需要说明的是,在原受理的数据模型中全部添加客户ID的切分字段,如果是已经存在的就无需再添加。
本方案在建表脚本中写入根据客户ID的切分字段进行数据库切分,并将建表脚本部署到数据库中,在业务受理过程中通过以客户ID为中心,通过客户ID的切分字段进行数据库切分,每次受理提交都是同一个客户的业务,能够直接提交做到服务内事务一致。如群组业务提交生成一个客户订单,多个服务订单的情况,也能保证提交事务保持一致。如果一个用户的不同订单信息在不同库中,导致不一致,DRDS数据库就会报错。
优选地,在上述任意实施例中,还包括:在包括客户ID的索引表中,新增订单编码时,数据库根据订单编码将订单信息划分到对应数据库。
需要说明的是,在某一实施例中,查询时,先根据查询条件查询出客户编码,然后将客户编码并入查询条件带入SQL中进行查询。
本方案在新增订单编码时,数据库根据订单编码将订单信息划分到对应数据库,从而以客户视角进行受理单查询和用户信息查询时,有更好的分页和排序处理,并且能够充分利用数据库的优势,如按客户id查询订单列表或用户列表并分页展示。
优选地,在上述任意实施例中,数据库包括DRDS、mycat或分布式内存库。
通过参用DRDS、mycat或分布式内存库等标准的分布式关系型数据库,采用切分字段,以提供更加直观方便的数据库切分方案。
在某一实施例中,如图2所示,一种基于客户ID的分库装置,该装置包括:字段添加模块11和第一分库模块12;
字段添加模块11用于在原受理的实例表模型中的客户ID中添加切分字段;
第一分库模块12用于当数据库再次受理客户ID的订单时,数据库根据切分字段执行建表脚本,将订单信息划分到客户ID对应数据库中。
本方案通过在原受理的实例表模型中的客户ID中添加切分字段,当数据库再次受理客户ID的订单时,数据库根据切分字段执行建表脚本,将订单信息划分到客户ID对应数据库中,提供更加直观方便的数据库切分方案,从而简化数据库迁移后的服务开发难度,并且更便于维护人员日常运维。
优选地,在上述任意实施例中,还包括:原订单梳理模块,用于受理原业务订单;对原业务订单的预设数据模型进行梳理,预设数据模型包括实例表模型。
本方案对受理原业务订单,并对原业务订单的数据模型进行梳理,通过对原业务订单的预设数据模型进行梳理,将数据模型区分为参数配置表、数据小表及实例表,方便后续在区分出的实例表中添加切分字段。
优选地,在上述任意实施例中,还包括脚本部署模块,用于在建表脚本中写入根据客户ID的切分字段进行数据库切分,并将建表脚本部署到数据库中。
本方案在建表脚本中写入根据客户ID的切分字段进行数据库切分,并将建表脚本部署到数据库中,在业务受理过程中通过以客户ID为中心,通过客户ID的切分字段进行数据库切分,每次受理提交都是同一个客户的业务,能够直接提交做到事务一致。如群组业务提交生成一个客户订单,多个服务订单的情况,也能保证提交事务保持一致。
优选地,在上述任意实施例中,还包括:第二分库模块,用于在包括客户ID的索引表中,新增订单编码时,数据库根据订单编码将订单信息划分到对应数据库。
本方案在新增订单编码时,数据库根据订单编码将订单信息划分到对应数据库,从而以客户视角进行受理单查询和用户信息查询时,有更好的分页和排序处理,并且能够充分利用数据库的优势,如按客户id查询订单列表或用户列表并分页展示。
优选地,在上述任意实施例中,数据库包括DRDS、mycat或分布式内存库。
通过参用DRDS、mycat或分布式内存库等标准的分布式关系型数据库,采用切分字段,以提供更加直观方便的数据库切分方案。
可以理解,在一些实施例中,可以包含如上述各实施例中的部分或全部可选实施方式。
需要说明的是,上述各实施例是与在先方法实施例对应的产品实施例,对于产品实施例中各可选实施方式的说明可以参考上述各方法实施例中的对应说明,在此不再赘述。
读者应理解,在本说明书的描述中,参考术语″一个实施例″、″一些实施例″、″示例″、″具体示例″、或″一些示例″等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的方法实施例仅仅是示意性的,例如,步骤的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个步骤可以结合或者可以集成到另一个步骤,或一些特征可以忽略,或不执行。
上述方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种基于客户ID的分库方法,其特征在于,包括:
S1,在原受理的实例表模型中的客户ID中添加切分字段;
S2,当数据库再次受理所述客户ID的订单时,数据库根据所述切分字段执行建表脚本,将订单信息划分到所述客户ID对应数据库中。
2.根据权利要求1所述的一种基于客户ID的分库方法,其特征在于,所述S1之前还包括:
受理原业务订单;
对所述原业务订单的预设数据模型进行梳理,所述预设数据模型包括实例表模型。
3.根据权利要求1或2所述的一种基于客户ID的分库方法,其特征在于,所述S1之前还包括:在所述建表脚本中写入根据所述客户ID的切分字段进行数据库切分,并将所述建表脚本部署到所述数据库中。
4.根据权利要求3所述的一种基于客户ID的分库方法,其特征在于,还包括:在包括所述客户ID的索引表中,新增订单编码时,数据库根据所述订单编码将订单信息划分到对应数据库。
5.根据权利要求1或2所述的一种基于客户ID的分库方法,其特征在于,所述数据库包括DRDS、mycat或分布式内存库。
6.一种基于客户ID的分库装置,其特征在于,包括:字段添加模块和第一分库模块;
所述字段添加模块用于在原受理的实例表模型中的客户ID中添加切分字段;
所述第一分库模块用于当数据库再次受理所述客户ID的订单时,数据库根据所述切分字段执行建表脚本,将订单信息划分到所述客户ID对应数据库中。
7.根据权利要求6所述的一种基于客户ID的分库装置,其特征在于,还包括:原订单梳理模块,用于受理原业务订单;对所述原业务订单的预设数据模型进行梳理,所述预设数据模型包括实例表模型。
8.根据权利要求6或7所述的一种基于客户ID的分库装置,其特征在于,还包括脚本部署模块,用于在所述建表脚本中写入根据所述客户ID的切分字段进行数据库切分,并将所述建表脚本部署到所述数据库中。
9.根据权利要求8所述的一种基于客户ID的分库装置,其特征在于,还包括:第二分库模块,用于在包括所述客户ID的索引表中,新增订单编码时,数据库根据所述订单编码将订单信息划分到对应数据库。
10.根据权利要求6或7所述的一种基于客户ID的分库装置,其特征在于,所述数据库包括DRDS、mycat或分布式内存库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010466359.3A CN111625602A (zh) | 2020-05-26 | 2020-05-26 | 一种基于客户id的分库方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010466359.3A CN111625602A (zh) | 2020-05-26 | 2020-05-26 | 一种基于客户id的分库方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111625602A true CN111625602A (zh) | 2020-09-04 |
Family
ID=72259339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010466359.3A Pending CN111625602A (zh) | 2020-05-26 | 2020-05-26 | 一种基于客户id的分库方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111625602A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101546403A (zh) * | 2008-03-27 | 2009-09-30 | 天津德智科技有限公司 | 一种在线服务系统和一种提供在线服务的方法 |
US20150348172A1 (en) * | 2014-05-30 | 2015-12-03 | Wal-Mart Stores, Inc. | Smart Order Management And Database Sharding |
CN106372994A (zh) * | 2016-08-31 | 2017-02-01 | 北京炎黄新星网络科技有限公司 | 一种处理订单的方法和系统 |
CN107515899A (zh) * | 2017-07-24 | 2017-12-26 | 北京国电通网络技术有限公司 | 数据库联合分片方法、装置以及存储介质 |
CN108009883A (zh) * | 2017-11-30 | 2018-05-08 | 泰康保险集团股份有限公司 | 用于订单处理的方法及装置 |
CN109815228A (zh) * | 2018-12-14 | 2019-05-28 | 深圳壹账通智能科技有限公司 | 数据库表的创建方法、装置、计算机设备及可读存储介质 |
-
2020
- 2020-05-26 CN CN202010466359.3A patent/CN111625602A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101546403A (zh) * | 2008-03-27 | 2009-09-30 | 天津德智科技有限公司 | 一种在线服务系统和一种提供在线服务的方法 |
US20150348172A1 (en) * | 2014-05-30 | 2015-12-03 | Wal-Mart Stores, Inc. | Smart Order Management And Database Sharding |
CN106372994A (zh) * | 2016-08-31 | 2017-02-01 | 北京炎黄新星网络科技有限公司 | 一种处理订单的方法和系统 |
CN107515899A (zh) * | 2017-07-24 | 2017-12-26 | 北京国电通网络技术有限公司 | 数据库联合分片方法、装置以及存储介质 |
CN108009883A (zh) * | 2017-11-30 | 2018-05-08 | 泰康保险集团股份有限公司 | 用于订单处理的方法及装置 |
CN109815228A (zh) * | 2018-12-14 | 2019-05-28 | 深圳壹账通智能科技有限公司 | 数据库表的创建方法、装置、计算机设备及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
李晶: "Web应用的参数化研究与数据库HVC设计", 《信息与电脑(理论版)》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9251212B2 (en) | Profiling in a massive parallel processing environment | |
US10489372B2 (en) | Data storage methods, query methods, and apparatuses thereof | |
US7761455B2 (en) | Loading data from a vertical database table into a horizontal database table | |
US7356541B1 (en) | Processing business data using user-configured keys | |
CN101405728B (zh) | 具有动态加载能力的关系数据库架构 | |
US6772137B1 (en) | Centralized maintenance and management of objects in a reporting system | |
CN111767303A (zh) | 一种数据查询方法、装置、服务器及可读存储介质 | |
CN1307705A (zh) | 具有多数据源能力的数据恢复方法和装置 | |
CN111506559A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN111831755B (zh) | 一种跨数据库数据同步方法、系统、介质及设备 | |
CN111563098A (zh) | 结构化与非结构化数据查询方法、设备、存储介质及装置 | |
US7653663B1 (en) | Guaranteeing the authenticity of the data stored in the archive storage | |
CN105095436A (zh) | 数据源数据自动建模方法 | |
US20090132607A1 (en) | Techniques for log file processing | |
US7805462B2 (en) | Portfolio management methods, systems, and computer programs | |
US8145626B2 (en) | Method and system for data processing using multidimensional filtering | |
CN116719822B (zh) | 一种海量结构化数据的存储方法及系统 | |
US8229946B1 (en) | Business rules application parallel processing system | |
WO2023197865A1 (zh) | 一种信息存储方法及装置 | |
CN111625602A (zh) | 一种基于客户id的分库方法和装置 | |
US7363290B1 (en) | Item capture research system | |
CN1211745C (zh) | 校验参照完整性中涉及的表空间的方法 | |
US10311022B2 (en) | CDBMS (cloud database management system) distributed logical unit repository | |
US9183317B1 (en) | System and method for exporting report results from a reporting system | |
US7546304B1 (en) | Configuring keys for use in processing business data |
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 |