CN114637736B - 一种数据库拆分方法和装置 - Google Patents
一种数据库拆分方法和装置 Download PDFInfo
- Publication number
- CN114637736B CN114637736B CN202210223803.8A CN202210223803A CN114637736B CN 114637736 B CN114637736 B CN 114637736B CN 202210223803 A CN202210223803 A CN 202210223803A CN 114637736 B CN114637736 B CN 114637736B
- Authority
- CN
- China
- Prior art keywords
- service
- database
- data
- information
- service database
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000004590 computer program Methods 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 241000282326 Felis catus Species 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据库拆分方法和装置、以及存储介质和电子设备,其中方法包括:按照业务数据库中存储的数据所涉及的业务类型,从所述业务数据库拆分出主业务数据库;确定对所述主业务数据库进行访问的多个服务,并获取每个服务的访问统计信息;基于所述访问统计信息,从多个服务中选择第一主服务和第二主服务,并基于第一主服务和第二主服务各自的访问统计信息,将所述主业务数据库中的数据划分为基础数据子集和信息数据子集;以及基于所述基础数据子集和信息数据子集,将所述主业务数据库拆分为基础业务数据库和信息业务数据库。
Description
技术领域
本发明涉及数据库技术领域,尤其是涉及一种数据库拆分方法和装置、以及计算机可读存储介质、电子设备和计算机程序产品。
背景技术
目前,数据服务型企业的业务主数据库的负载通常较高,导致数据访问延迟较高并且数据风险也在加剧提升。为了对业务主数据库继续调整,通常采用修改表结构或添加数据的手段。然而,由于修改表结构或添加数据会产生服务器抖动,因此数据库管理员DBA通常难以在服务器抖动的情况下进行数据维护。由于所有业务都访问业务主数据库,因此业务主数据库所在的服务器存在宕机风险。
现有技术中,通过分库和业务拆分的方式,将业务主数据库部署到多台服务器上以解决单台服务器的性能瓶颈。并且,解决单数据库压力大的方式通常是分库和分表,即先按业务拆成不同的数据库,根据负载来确定对拆分后的数据库进行继续拆分还是直接分表。
当业务场景为专业领域的核心信息数据表较多,并且数据表中的数据存在较强的专业知识,导致业务开发时无法将数据表进行抽象归类,无法直接按业务对数据库进行拆分。此外,当业务主数据库涉及多个数据服务,并且个别数据服务读取大量数据表的情况下,单纯为了基于业务来拆分数据库,对数据服务进行改造所涉及的工作量较大,成本较高。
发明内容
鉴于此,本发明提出了一种数据库拆分方法和装置、以及计算机可读存储介质、电子设备和计算机程序产品,对数据库拆分后的效果满足:每个服务(或数据服务器)只需变更关系型数据库管理系统MySQL实例地址,原实例的数据表在新实例都具有副本。其中,MySQL实例实际上可以是SQL数据库服务器引擎。每个SQL数据库服务器引擎实例存在一套不为其他实例共享的系统及用户数据库。在一台计算机上,可以安装多个SQL服务器,并且每个SQL服务器就可以理解为是一个实例。应当了解的是,本申请的技术方案可以适用于各种类型的数据库管理系统以及数据库,并且可以在每个服务器上安装一个或多个相同或不同的数据库。
根据本发明技术方案拆分出的不同的新实例(例如,新数据库),可以保证等分读/写流量(即,负载平衡)。拆分出的不同的新实例的数据与原实例(例如,原数据库)的数据保持实时性一致。本发明通过聚类思路,拆分出不同的新实例。对等均分流量来处理数据库中的数据表和与数据数据表相关联的数据服务或服务。当对原数据库中写入、修改或更新数据时,通过二进制日志binlog实时实现原数据库和拆分出的不同的数据库(实例)之间的数据一致性。
根据本公开实施例的一个方面,提供一种数据库拆分方法,所述方法包括:
按照业务数据库中存储的数据所涉及的业务类型,从所述业务数据库拆分出主业务数据库;
确定对所述主业务数据库进行访问的多个服务,并获取每个服务的访问统计信息;
基于所述访问统计信息,从多个服务中选择第一主服务和第二主服务,并基于第一主服务和第二主服务各自的访问统计信息,将所述主业务数据库中的数据划分为基础数据子集和信息数据子集;以及
基于所述基础数据子集和信息数据子集,将所述主业务数据库拆分为基础业务数据库和信息业务数据库。
优选地,所述业务类型包括:数据业务和运营业务;
其中,所述存储的数据为多个数据表,并且每个数据表涉及数据业务或运营业务。
优选地,所述按照业务数据库中存储的数据所涉及的业务类型,从所述业务数据库拆分出主业务数据库,包括:
确定所述业务数据库中存储的每个数据表所涉及的业务类型,并创建主业务数据库;
将所述业务数据库中业务类型为数据业务的数据表迁移到所述主业务数据库,使得从所述业务数据库拆分出主业务数据库。
优选地,还包括,所述按照业务数据库中存储的数据所涉及的业务类型,从所述业务数据库拆分出运营业务数据库,包括:
确定所述业务数据库中存储的每个数据表所涉及的业务类型,并创建运营业务数据库;
将所述业务数据库中业务类型为运营业务的数据表迁移到所述运营业务数据库,使得从所述业务数据库拆分出运营业务数据库。
优选地,所述每个服务的访问统计信息用于记录服务对所述主业务数据库中相关联的多个数据表中每个数据表的访问次数。
优选地,所述基于所述访问统计信息,从多个服务中选择第一主服务和第二主服务,包括:
基于所述访问统计信息,确定多个服务中每个服务相关联的数据表的数量和对相关联的数据表的总访问次数;
将相关联的数据表的数量小于或等于数量阈值的服务确定为第一类型的服务,并且将相关联的数据表的数量大于数量阈值的服务确定为第二类型的服务;
将第一类型的服务中,总访问次数最大的服务选择为第一主服务,并且将第二类型的服务中,总访问次数最大的服务选择为第二主服务。
优选地,所述基于第一主服务和第二主服务各自的访问统计信息,将所述主业务数据库中的数据划分为基础数据子集和信息数据子集,包括:
基于所述第一主服务的访问统计信息,确定所述第一主服务相关联的数据表,由所述第一主服务相关联的数据表构成基础数据子集;
基于所述第二主服务的访问统计信息,确定所述第一主服务相关联的数据表,由所述第二主服务相关联的数据表构成信息数据子集;
将与所述第一主服务和第二主服务均相关联的数据表,在所述基础数据子集和信息数据子集中进行冗余存储。
优选地,所述基于基础数据子集和信息数据子集,将所述主业务数据库拆分为基础业务数据库和信息业务数据库,包括:
将所述基础数据子集中的数据表确定为基础数据表,并且将所述信息数据子集中的数据表确定为信息数据表;
基于基础数据表构建基础业务数据库,并且基于信息数据表构建信息业务数据库,从而将所述主业务数据库拆分为基础业务数据库和信息业务数据库。
优选地,还包括,
将多个数据服务中除了第一主服务和第二主服务之外的每个服务确定为从服务;
获取每个从服务的访问统计信息,并基于访问统计信息将每个从服务与基础业务数据库或信息业务数据库进行关联;
其中与所述基础业务数据库相关联的从服务,在所述基础业务数据库中进行数据访问,且与所述信息业务数据库相关联的从服务,在所述信息业务数据库中进行数据访问。
优选地,所述基于访问统计信息将每个从服务与基础业务数据库或信息业务数据库进行关联,包括:
基于访问统计消息确定每个从服务对基础数据表的总访问次数和对信息数据表的总访问次数;
将基础数据表的总访问次数大于对信息数据表的总访问次数的从服务,确定为与基础业务数据库相关联;
将基础数据表的总访问次数小于或等于对信息数据表的总访问次数的从服务,确定为与信息业务数据库相关联。
优选地,还包括,
确定与所述基础业务数据库相关联的从服务所需要访问的信息业务数据库中的基础数据表,将所需要访问的信息业务数据库中的基础数据表在所述基础业务数据库进行冗余存储;
确定与所述信息业务数据库相关联的从服务所需要访问的基础业务数据库中的基础数据表,将所需要访问的基础业务数据库中的基础数据表在所述信息业务数据库进行冗余存储。
优选地,还包括,
将所述基础业务数据库的存储结构设置为主基础业务库和至少一个从基础业务库,以通过所述主基础业务库和至少一个从基础业务库,实现基础业务数据库的负载均衡;
将所述信息业务数据库的存储结构设置为主信息业务库和至少一个从信息业务库,以通过所述主信息业务库和至少一个从信息业务库,实现信息业务数据库的负载均衡。
根据本公开实施例的另一个方面,提供一种数据库拆分装置,所述装置包括:
第一拆分单元,用于按照业务数据库中存储的数据所涉及的业务类型,从所述业务数据库拆分出主业务数据库;
获取单元,用于确定对所述主业务数据库进行访问的多个服务,并获取每个服务的访问统计信息;
划分单元,用于基于所述访问统计信息,从多个服务中选择第一主服务和第二主服务,并基于第一主服务和第二主服务各自的访问统计信息,将所述主业务数据库中的数据划分为基础数据子集和信息数据子集;以及
第二拆分单元,用于基于所述基础数据子集和信息数据子集,将所述主业务数据库拆分为基础业务数据库和信息业务数据库。
优选地,所述业务类型包括:数据业务和运营业务;
其中,所述存储的数据为多个数据表,并且每个数据表涉及数据业务或运营业务。
优选地,第一拆分单元,包括:
创建子单元,用于确定所述业务数据库中存储的每个数据表所涉及的业务类型,并创建主业务数据库;
迁移子单元,用于将所述业务数据库中业务类型为数据业务的数据表迁移到所述主业务数据库,使得从所述业务数据库拆分出主业务数据库。
优选地,还包括第三拆分单元,用于按照业务数据库中存储的数据所涉及的业务类型,从所述业务数据库拆分出运营业务数据库,具体用于:确定所述业务数据库中存储的每个数据表所涉及的业务类型,并创建运营业务数据库;将所述业务数据库中业务类型为运营业务的数据表迁移到所述运营业务数据库,使得从所述业务数据库拆分出运营业务数据库。
优选地,所述每个服务的访问统计信息用于记录服务对所述主业务数据库中相关联的多个数据表中每个数据表的访问次数。
优选地,划分单元包括:
第一确定子单元,用于基于所述访问统计信息,确定多个服务中每个服务相关联的数据表的数量和对相关联的数据表的总访问次数;
第二确定子单元,用于将相关联的数据表的数量小于或等于数量阈值的服务确定为第一类型的服务,并且将相关联的数据表的数量大于数量阈值的服务确定为第二类型的服务;
选择子单元,用于将第一类型的服务中,总访问次数最大的服务选择为第一主服务,并且将第二类型的服务中,总访问次数最大的服务选择为第二主服务。
优选地,划分单元,还包括:
第三确定子单元,用于基于所述第一主服务的访问统计信息,确定所述第一主服务相关联的数据表,由所述第一主服务相关联的数据表构成基础数据子集;
第四确定子单元,用于基于所述第二主服务的访问统计信息,确定所述第一主服务相关联的数据表,由所述第二主服务相关联的数据表构成信息数据子集;
存储子单元,用于将与所述第一主服务和第二主服务均相关联的数据表,在所述基础数据子集和信息数据子集中进行冗余存储。
优选地,第二拆分单元,包括:
第五确定子单元,用于将所述基础数据子集中的数据表确定为基础数据表,并且将所述信息数据子集中的数据表确定为信息数据表;
构建子单元,用于基于基础数据表构建基础业务数据库,并且基于信息数据表构建信息业务数据库,从而将所述主业务数据库拆分为基础业务数据库和信息业务数据库。
优选地,第二拆分单元还用于将多个数据服务中除了第一主服务和第二主服务之外的每个服务确定为从服务;获取每个从服务的访问统计信息,并基于访问统计信息将每个从服务与基础业务数据库或信息业务数据库进行关联;其中与所述基础业务数据库相关联的从服务,在所述基础业务数据库中进行数据访问,且与所述信息业务数据库相关联的从服务,在所述信息业务数据库中进行数据访问。
优选地,第二拆分单元还用于基于访问统计消息确定每个从服务对基础数据表的总访问次数和对信息数据表的总访问次数;将基础数据表的总访问次数大于对信息数据表的总访问次数的从服务,确定为与基础业务数据库相关联;将基础数据表的总访问次数小于或等于对信息数据表的总访问次数的从服务,确定为与信息业务数据库相关联。
优选地,第二拆分单元还用于确定与所述基础业务数据库相关联的从服务所需要访问的信息业务数据库中的基础数据表,将所需要访问的信息业务数据库中的基础数据表在所述基础业务数据库进行冗余存储;确定与所述信息业务数据库相关联的从服务所需要访问的基础业务数据库中的基础数据表,将所需要访问的基础业务数据库中的基础数据表在所述信息业务数据库进行冗余存储。
优选地,还包括,负载均衡单元,用于将所述基础业务数据库的存储结构设置为主基础业务库和至少一个从基础业务库,以通过所述主基础业务库和至少一个从基础业务库,实现基础业务数据库的负载均衡;将所述信息业务数据库的存储结构设置为主信息业务库和至少一个从信息业务库,以通过所述主信息业务库和至少一个从信息业务库,实现信息业务数据库的负载均衡。
基于本公开实施例的再一方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于执行上述任一实施例所述的方法。
基于本公开实施例的再一方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述任一实施例所述的方法。
基于本公开实施例的再一方面,提供一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码在设备上运行时,所述设备中的处理器执行用于实现上述任一实施例所述的方法。
基于本公开上述实施例提供的一种数据库拆分方法和装置、以及计算机可读存储介质、电子设备和计算机程序产品,通过将数据资源的使用方式进行分类,实现数据库的多级拆分,从而使得针对数据库的访问流量进行均分。进一步地,通过适当地对部分数据表继续冗余存储,避免对数据库或服务的业务逻辑继续大范围改动。针对于经过拆分得到的数据库,通过设置不同处理能力(例如,每秒读写次数IOPS,Input/Output Operations PerSecond)的多个从库,满足业务高峰期的访问稳定性,并且也能在低峰期时通过剥离部分处理能力较低的从库来降低成本。据此,原实例无业务请求流量,并且新实例无网络抖动和线上告警,拆分后的多个数据库使得业务运行平稳并且改造时间大幅缩短,此外,拆分后的多个数据库解决了写流量无法拆分干净的情况下的数据一致性。
附图说明
通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本发明一示例性实施例提供的数据库拆分方法的流程示意图。
图2是本发明一示例性实施例提供的数据库拆分的示意图。
图3是本发明一示例性实施例提供的负载平衡方案的示意图。
图4是本发明一示例性实施例提供的数据库拆分装置的结构示意图。
图5是本发明一示例性实施例提供的电子设备的结构。
具体实施方式
下面,将参考附图详细地描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
本领域技术人员可以理解,本发明实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本发明实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本发明实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本发明中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本发明中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本发明对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本发明实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
示例性方法
本发明实施例提供的数据库拆分方法,首先按照业务数据库中存储的数据所涉及的业务类型为数据业务或运营业务,将所述业务数据库拆分为主业务数据库和运营业务数据库,以完成第一级数据库拆分。随后,确定对所述主业务数据库进行访问的多个服务,并获取每个服务的访问统计信息;基于所述访问统计信息,从多个服务中选择第一主服务和第二主服务,并基于第一主服务和第二主服务各自的访问统计信息,将所述主业务数据库中的数据划分为基础数据子集和信息数据子集;以及基于所述基础数据子集和信息数据子集,将所述主业务数据库拆分为基础业务数据库和信息业务数据库,以完成第二级数据库拆分。
图1是本发明一示例性实施例提供的数据库拆分方法的流程示意图。本实施例可应用在电子设备上,如图1所示,包括以下步骤:
步骤101,按照业务数据库中存储的数据所涉及的业务类型,从所述业务数据库拆分出主业务数据库。其中业务类型包括:数据业务和运营业务。其中数据业务可以指为数据服务提供查询、检索、写入、读取、增加、更新等操作等业务,即针对于数据服务提供数据内容的业务。运营业务可以指与运营相关联的所有业务。优选地,业务数据库中存储的数据为多个数据表,并且每个数据表涉及数据业务或运营业务。涉及数据业务的数据表被数据服务访问,而涉及运营业务的数据表通常由运营人员使用。数据业务例如是对信息中联系方式的增删改等。运营人员每天要配置热门搜索、热门公司、热门老板时会使用涉及运营业务的数据表。在最显眼的搜索框附近出现运营业务相关的内容。例如,运营人员使用涉及运营业务的数据表生成用于运营活动的各类数据资料,并用于运营活动的各类数据资料提供给用户。
在一个实施例中,按照业务数据库中存储的数据所涉及的业务类型,从所述业务数据库拆分出主业务数据库,包括:确定所述业务数据库中存储的每个数据表所涉及的业务类型,并创建主业务数据库;将所述业务数据库中业务类型为数据业务的数据表迁移到所述主业务数据库,使得从所述业务数据库拆分出主业务数据库,如图2所示。图2是本发明一示例性实施例提供的数据库拆分的示意图。本申请基于业务类型,将业务数据库拆分为主业务数据库和运营业务数据库。通过业务双写同步保持运营业务数据库中数据的实时更新,并且根据实时同步业务保持主业务数据库中数据的实时更新。本申请还基于服务的访问统计信息将主业务数据库拆分为,基础业务数据库和消息业务数据库。其中基础业务数据库存储少量的核心数据表,并且信息业务数据库中存储大量的非核心数据表。
业务数据库中存储了大量的数据表。例如,可以通过每个数据表的属性信息来确定数据表所涉及的业务类型。此外,可以通过数据表的访问者来确定数据表所涉及的业务类型。例如,当数据表的访问者为运营人员,则确定数据表所涉及的业务类型为运营业务。当数据表的访问者为数据服务,则确定数据表所涉及的业务类型为数据业务。创建主业务数据库例如是创建了数据库的新实例。随后,将所述业务数据库中业务类型为数据业务的数据表迁移或移动到所述主业务数据库,使得从所述业务数据库拆分出主业务数据库。
在一个实施例中,还包括,按照业务数据库中存储的数据所涉及的业务类型,从所述业务数据库拆分出运营业务数据库,包括:确定所述业务数据库中存储的每个数据表所涉及的业务类型,并创建运营业务数据库;将所述业务数据库中业务类型为运营业务的数据表迁移到所述运营业务数据库,使得从所述业务数据库拆分出运营业务数据库。即,通过分析,数据表可抽象为运营业务和数据业务这两种。所以,将运营类的数据表抽到运营平台这个MySQL实例中,数据业务的数据表原地不动或拆分到主业务数据库中。运营类的数据表经常由运营人员进行操作,从业务范围来看不属于数据业务。其次,这些运营类的数据表访问量集中并且访问频繁,会额外占用服务器连接数,影响数据业务的数据读取。为此,从所述业务数据库拆分出运营业务数据库,有利于主业务数据库的高效运行。
步骤102,确定对所述主业务数据库进行访问的多个服务,并获取每个服务的访问统计信息。对所述主业务数据库进行访问的多个服务是为用户提供各种不同功能的服务。每个服务可能会访问数据库中的相同或不同的一个或多个数据表。每个服务的访问统计信息用于记录服务对所述主业务数据库中相关联的多个数据表中每个数据表的访问次数。
具体实例中,确定连接业务数据库或主业务数据库的所有服务。例如,通过云SQL洞察功能(例如,查看数据表的操作日志)得到连接业务数据库或主业务数据库的所有业务服务器的IP列表。通过业务服务器IP确定是访问者哪些web服务。云服务记录业务服务器每次访问的数据库中实例。记录的内容包含IP地址和所执行的SQL语句。
优选地,查找具有数据操纵语言DML(Data Manipulation Language)语句的数据表。通过云SQL洞察功能,检索更新update语句、插入insert语句、删除delete语句,得到具有写操作的数据表。确定每个服务用到的数据表,即整理每个服务用到的主业务数据库中的哪些数据表,包括读操作和写操作。
步骤103,基于所述访问统计信息,从多个服务中选择第一主服务和第二主服务,并基于第一主服务和第二主服务各自的访问统计信息,将所述主业务数据库中的数据划分为基础数据子集和信息数据子集。
在一个实例中,基于所述访问统计信息,从多个服务中选择第一主服务和第二主服务,包括:基于所述访问统计信息,确定多个服务中每个服务相关联的数据表的数量和对相关联的数据表的总访问次数。将相关联的数据表的数量小于或等于数量阈值的服务确定为第一类型的服务,并且将相关联的数据表的数量大于数量阈值的服务确定为第二类型的服务。优选地,可以预先设置数量阈值或根据数据库运行状态动态调整数量阈值。将第一类型的服务中,总访问次数最大的服务选择为第一主服务,并且将第二类型的服务中,总访问次数最大的服务选择为第二主服务。其中,将服务要访问的每个数据表作为服务相关联的数据表,并且将服务访问或相关联的每个数据表的访问次数进行累加,以获得对相关联的数据表的总访问次数。
在一个实例中,所述基于第一主服务和第二主服务各自的访问统计信息,将所述主业务数据库中的数据划分为基础数据子集和信息数据子集,包括:基于所述第一主服务的访问统计信息,确定所述第一主服务相关联的数据表,由所述第一主服务相关联的数据表构成基础数据子集;基于所述第二主服务的访问统计信息,确定所述第一主服务相关联的数据表,由所述第二主服务相关联的数据表构成信息数据子集;将与所述第一主服务和第二主服务均相关联的数据表,在所述基础数据子集和信息数据子集中进行冗余存储。例如,第一主服务相关联的数据表包括:数据表A1、A2、……、An、B1、B2、……、Bn,第二主服务相关联的数据表包括:数据表C1、C2、……、Cn、B1、B2、……、Bn,那么数据表B1、B2、……、Bn是与所述第一主服务和第二主服务均相关联的数据表。在基础数据子集和信息数据子集中对数据表B1、B2、……、Bn进行冗余存储,即,基础数据子集和信息数据子集中均包括数据表B1、B2、……、Bn。
具体实例中,确定服务针对主业务数据库的读写流量包括:对于接入监控系统cat的服务,在事务处理Transaction中的SQL菜单下可以搜索得到主业务数据库使用的java类,通过统计预定时间段(例如,一个月)内这些类调用的总次数,可以获得每秒访问量或每秒查询率(qps,Query Per Second)。对于未接入监控系统cat的服务,通过web服务器server的访问日志来推测每秒访问量(qps)。
具体实例中,对每个服务进行分析,以将服务抽象成2个新实例。将所有服务二分到两个组(MySQL实例)内,得到每个组内有哪些服务。举例来说,挑选40个服务中最具代表性的2个服务。最具代表性的2个服务的相同点是流量大,不同点是涉及的表数量不同。服务A(信息业务):读取大量的非核心数据表;服务B(基础业务):读取少量的核心数据表。可以抽象为小而精(核心数据表)、大而全(非核心数据表)两个数据库,并且将这两个数据库放到不同的MySQL实例主机或服务器中。重叠的数据表会冗余存储而不会单独仅存储某个数据库中。服务A用到的数据表构成新MySQL实例A(例如,数据库A),而服务B用到的数据表构成新MySQL实例B(例如,数据库B),新MySQL实例A和新MySQL实例B中可能存在相同的数据表。由此可知,拆分的两个数据库库具体存储哪些表以这两个服务具体用到的数据表为准。剩余的38个服务根据自身用到哪些表就选择读取哪个数据库,不足的数据表可以在相关联的数据库中进行附加存储。按照服务所使用的数据表来拆分数据库最终能够实现两个数据库的访问流量尽量均等。
应当了解的是,每个服务只会访问两个数据库中的一个,即访问相关联的数据库,不会访问两个数据库中不相关联的数据库。如果相关联的数据库中没有所需要访问的数据表,就将这个数据表复制到相关联的数据库中。这是造成两个数据库可能存在一些相同的数据表的原因。38个服务中的一部分服务访问数据库A,即与数据库A相关联,另一部分服务访问数据库B,即与数据库B相关联。数据库A存储的数据库表类型丰富且数据表数量大,而数据库B存储的数据表只涉及查询关键信息(例如,公司和人员)时所使用的数据表(例如,少量的核心数据表)。为此,将38个服务中只涉及查公司和人员的服务分配给数据库B,将其他服务分配给数据库A。计算数据库A所有服务累计的总流量和数据库B中所有服务累计的总流量,当数据库A所有服务累计的总流量和数据库B中所有服务累计的总流量的差值大于或等于流量阈值时,将流量高的数据库中挪出一些服务分配给流量低的数据库库,从而尽可能实现两个数据库的流量均等。从业务实践来看,通常是将与数据库B相关联的部分服务分配给数据库A。
步骤104,基于所述基础数据子集和信息数据子集,将所述主业务数据库拆分为基础业务数据库和信息业务数据库,包括:将所述基础数据子集中的数据表确定为基础数据表,并且将所述信息数据子集中的数据表确定为信息数据表;基于基础数据表构建基础业务数据库,并且基于信息数据表构建信息业务数据库,从而将所述主业务数据库拆分为基础业务数据库和信息业务数据库。如上所述,基础数据子集中的数据表和信息数据子集中的数据表可能存在相同的数据表,即冗余存储。
在一个实施例中,还包括,将多个数据服务中除了第一主服务和第二主服务之外的每个服务确定为从服务;获取每个从服务的访问统计信息,并基于访问统计信息将每个从服务与基础业务数据库或信息业务数据库进行关联;其中与所述基础业务数据库相关联的从服务,在所述基础业务数据库中进行数据访问,且与所述信息业务数据库相关联的从服务,在所述信息业务数据库中进行数据访问。
在一个实施例中,所述基于访问统计信息将每个从服务与基础业务数据库或信息业务数据库进行关联,包括:基于访问统计消息确定每个从服务对基础数据表的总访问次数和对信息数据表的总访问次数;将基础数据表的总访问次数大于对信息数据表的总访问次数的从服务,确定为与基础业务数据库相关联;将基础数据表的总访问次数小于或等于对信息数据表的总访问次数的从服务,确定为与信息业务数据库相关联。例如,38个服务中的一部分服务访问信息业务数据库,即与信息业务数据库相关联,另一部分服务访问基础业务数据库,即与基础业务数据库相关联。信息业务数据库存储的数据库表类型丰富且数据表数量大,而基础业务数据库存储的数据表只涉及查询关键信息(例如,公司和人员)时所使用的数据表(例如,少量的核心数据表)。
在一个实施例中,还包括,确定与所述基础业务数据库相关联的从服务所需要访问的信息业务数据库中的基础数据表,将所需要访问的信息业务数据库中的基础数据表在所述基础业务数据库进行冗余存储;确定与所述信息业务数据库相关联的从服务所需要访问的基础业务数据库中的基础数据表,将所需要访问的基础业务数据库中的基础数据表在所述信息业务数据库进行冗余存储。例如,从服务A与基础业务数据库相关联,并且从服务A访问数据表A1、A2、……、An、B1。其中数据表A1、A2、……、An存储在基础业务数据库中,而数据表B1存储在信息业务数据库中。为此,在基础业务数据库中对数据表B1进行冗余存储。从服务B与信息业务数据库相关联,并且从服务B访问数据表C1、C2、……、Cn、D1。其中数据表C1、C2、……、Cn存储在信息业务数据库中,而数据表D1存储在基础业务数据库中。为此,在信息业务数据库中对数据表D1进行冗余存储。
在一个实施例中,还包括,将所述基础业务数据库的存储结构设置为主基础业务库和至少一个从基础业务库,以通过所述主基础业务库和至少一个从基础业务库,实现基础业务数据库的负载均衡;将所述信息业务数据库的存储结构设置为主信息业务库和至少一个从信息业务库,以通过所述主信息业务库和至少一个从信息业务库,实现信息业务数据库的负载均衡。
图3是本发明一示例性实施例提供的负载平衡方案的示意图。举例来说,为了实现负载均衡,本实施例申请额外的MySQL服务器资源。主库是基础业务数据库或信息业务数据库自身。通过对组内所有服务的每秒查询率QPS(Queries-per-second)做累加,计算需要的从数据库的数量。例如,当从数据库的数量为4时,从数据库采用2个高每秒的输入输出量(或读写次数)IOPS(Input/Output Per Second)的从数据库和2个低IOPS的从数据库的组合。四个从数据库相当于四个MySQL新实例,每个MySQL新实例各自申请读写分离地址。通过读写分离地址来实际控制将服务的访问请求分配给哪台MySQL新实例或MySQL新实例所在的服务器。如图3所示,本申请的四个从数据库中,两个从数据库的处理能力较强,IOPS为32000,并且两个从数据库的处理能力较弱,IOPS为14000。为了实现负载均衡,为基础业务数据库或信息业务数据库分别设置一个主库和多个从库,例如,一个主库和四个从库。当针对基础业务数据库或信息业务数据库的访问流量较大(访问流量大于或等于流量阈值)时,一个主库和多个从库提供访问服务。当针对基础业务数据库或信息业务数据库的访问流量较小(访问流量小于流量阈值)时,一个主库和多个从库中的选定从库提供访问服务。例如,这种情况下,停止IOPS为14000的两个从库提供访问服务,即停机。或者,在某些情况下,可以停止四个从库中任意数量或任意组合的从库提供访问服务。优选地,还包括进行写流量治理:原业务数据库实例的写流量来源分为大数据和后端,所以,为了拆分后的新实例能实现数据一致性:保留原业务数据库实例,建立从原业务数据库实例到两个新实例(即,基础业务数据库和消息业务数据库)的实时数据同步。后端的写请求,仍连接原业务数据库实例执行。
示例性装置
图4是本发明一示例性实施例提供的数据库拆分装置的结构示意图。如图4所示,装置包括:
第一拆分单元401,用于按照业务数据库中存储的数据所涉及的业务类型,从所述业务数据库拆分出主业务数据库。优选地,所述业务类型包括:数据业务和运营业务;其中,所述存储的数据为多个数据表,并且每个数据表涉及数据业务或运营业务。优选地,第一拆分单元401,包括:创建子单元,用于确定所述业务数据库中存储的每个数据表所涉及的业务类型,并创建主业务数据库;迁移子单元,用于将所述业务数据库中业务类型为数据业务的数据表迁移到所述主业务数据库,使得从所述业务数据库拆分出主业务数据库。
获取单元402,用于确定对所述主业务数据库进行访问的多个服务,并获取每个服务的访问统计信息。优选地,所述每个服务的访问统计信息用于记录服务对所述主业务数据库中相关联的多个数据表中每个数据表的访问次数。
划分单元403,用于基于所述访问统计信息,从多个服务中选择第一主服务和第二主服务,并基于第一主服务和第二主服务各自的访问统计信息,将所述主业务数据库中的数据划分为基础数据子集和信息数据子集。
划分单元403包括:第一确定子单元,用于基于所述访问统计信息,确定多个服务中每个服务相关联的数据表的数量和对相关联的数据表的总访问次数;第二确定子单元,用于将相关联的数据表的数量小于或等于数量阈值的服务确定为第一类型的服务,并且将相关联的数据表的数量大于数量阈值的服务确定为第二类型的服务;选择子单元,用于将第一类型的服务中,总访问次数最大的服务选择为第一主服务,并且将第二类型的服务中,总访问次数最大的服务选择为第二主服务。
优选地,划分单元403,还包括:第三确定子单元,用于基于所述第一主服务的访问统计信息,确定所述第一主服务相关联的数据表,由所述第一主服务相关联的数据表构成基础数据子集;第四确定子单元,用于基于所述第二主服务的访问统计信息,确定所述第一主服务相关联的数据表,由所述第二主服务相关联的数据表构成信息数据子集;存储子单元,用于将与所述第一主服务和第二主服务均相关联的数据表,在所述基础数据子集和信息数据子集中进行冗余存储。
第二拆分单元404,用于基于所述基础数据子集和信息数据子集,将所述主业务数据库拆分为基础业务数据库和信息业务数据库。
优选地,第二拆分单元404,包括:第五确定子单元,用于将所述基础数据子集中的数据表确定为基础数据表,并且将所述信息数据子集中的数据表确定为信息数据表;构建子单元,用于基于基础数据表构建基础业务数据库,并且基于信息数据表构建信息业务数据库,从而将所述主业务数据库拆分为基础业务数据库和信息业务数据库。
优选地,第二拆分单元404还用于将多个数据服务中除了第一主服务和第二主服务之外的每个服务确定为从服务;获取每个从服务的访问统计信息,并基于访问统计信息将每个从服务与基础业务数据库或信息业务数据库进行关联;其中与所述基础业务数据库相关联的从服务,在所述基础业务数据库中进行数据访问,且与所述信息业务数据库相关联的从服务,在所述信息业务数据库中进行数据访问。
优选地,第二拆分单元404还用于基于访问统计消息确定每个从服务对基础数据表的总访问次数和对信息数据表的总访问次数;将基础数据表的总访问次数大于对信息数据表的总访问次数的从服务,确定为与基础业务数据库相关联;将基础数据表的总访问次数小于或等于对信息数据表的总访问次数的从服务,确定为与信息业务数据库相关联。
优选地,第二拆分单元404还用于确定与所述基础业务数据库相关联的从服务所需要访问的信息业务数据库中的基础数据表,将所需要访问的信息业务数据库中的基础数据表在所述基础业务数据库进行冗余存储;确定与所述信息业务数据库相关联的从服务所需要访问的基础业务数据库中的基础数据表,将所需要访问的基础业务数据库中的基础数据表在所述信息业务数据库进行冗余存储。
第三拆分单元405,用于按照业务数据库中存储的数据所涉及的业务类型,从所述业务数据库拆分出运营业务数据库,具体用于:确定所述业务数据库中存储的每个数据表所涉及的业务类型,并创建运营业务数据库;将所述业务数据库中业务类型为运营业务的数据表迁移到所述运营业务数据库,使得从所述业务数据库拆分出运营业务数据库。
负载均衡单元406,用于将所述基础业务数据库的存储结构设置为主基础业务库和至少一个从基础业务库,以通过所述主基础业务库和至少一个从基础业务库,实现基础业务数据库的负载均衡;将所述信息业务数据库的存储结构设置为主信息业务库和至少一个从信息业务库,以通过所述主信息业务库和至少一个从信息业务库,实现信息业务数据库的负载均衡。
示例性电子设备
图5是本发明一示例性实施例提供的电子设备的结构。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。图5图示了根据本公开实施例的电子设备的框图。如图5所示,电子设备包括一个或多个处理器51和存储器52。
处理器51可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备中的其他组件以执行期望的功能。
存储器52可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器51可以运行所述程序指令,以实现上文所述的本公开的各个实施例的软件程序的数据库拆分方法以及/或者其他期望的功能。在一个示例中,电子设备还可以包括:输入装置53和输出装置54,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
此外,该输入装置53还可以包括例如键盘、鼠标等等。
该输出装置54可以向外部输出各种信息。该输出设备54可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图5中仅示出了该电子设备中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的数据库拆分方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的数据库拆分方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了示例和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (13)
1.一种数据库拆分方法,其特征在于,所述方法包括:
按照业务数据库中存储的数据所涉及的业务类型,从所述业务数据库拆分出主业务数据库;
确定对所述主业务数据库进行访问的多个服务,并获取每个服务的访问统计信息;所述每个服务的访问统计信息用于记录服务对所述主业务数据库中相关联的多个数据表中每个数据表的访问次数;
基于所述访问统计信息,从多个服务中选择第一主服务和第二主服务,包括:
基于所述访问统计信息,确定多个服务中每个服务相关联的数据表的数量和对相关联的数据表的总访问次数;
将相关联的数据表的数量小于或等于数量阈值的服务确定为第一类型的服务,并且将相关联的数据表的数量大于数量阈值的服务确定为第二类型的服务;
将第一类型的服务中,总访问次数最大的服务选择为第一主服务,并且将第二类型的服务中,总访问次数最大的服务选择为第二主服务;
并基于第一主服务和第二主服务各自的访问统计信息,将所述主业务数据库中的数据划分为基础数据子集和信息数据子集;以及
基于所述基础数据子集和信息数据子集,将所述主业务数据库拆分为基础业务数据库和信息业务数据库。
2.根据权利要求1所述的方法,其特征在于,所述业务类型包括:数据业务和运营业务;
其中,所述存储的数据为多个数据表,并且每个数据表涉及数据业务或运营业务。
3.根据权利要求2所述的方法,其特征在于,所述按照业务数据库中存储的数据所涉及的业务类型,从所述业务数据库拆分出主业务数据库,包括:
确定所述业务数据库中存储的每个数据表所涉及的业务类型,并创建主业务数据库;
将所述业务数据库中业务类型为数据业务的数据表迁移到所述主业务数据库,使得从所述业务数据库拆分出主业务数据库。
4.根据权利要求2所述的方法,其特征在于,还包括,按照业务数据库中存储的数据所涉及的业务类型,从所述业务数据库拆分出运营业务数据库,包括:
确定所述业务数据库中存储的每个数据表所涉及的业务类型,并创建运营业务数据库;
将所述业务数据库中业务类型为运营业务的数据表迁移到所述运营业务数据库,使得从所述业务数据库拆分出运营业务数据库。
5.根据权利要求1所述的方法,其特征在于,所述基于第一主服务和第二主服务各自的访问统计信息,将所述主业务数据库中的数据划分为基础数据子集和信息数据子集,包括:
基于所述第一主服务的访问统计信息,确定所述第一主服务相关联的数据表,由所述第一主服务相关联的数据表构成基础数据子集;
基于所述第二主服务的访问统计信息,确定所述第一主服务相关联的数据表,由所述第二主服务相关联的数据表构成信息数据子集;
将与所述第一主服务和第二主服务均相关联的数据表,在所述基础数据子集和信息数据子集中进行冗余存储。
6.根据权利要求1所述的方法,其特征在于,所述基于基础数据子集和信息数据子集,将所述主业务数据库拆分为基础业务数据库和信息业务数据库,包括:
将所述基础数据子集中的数据表确定为基础数据表,并且将所述信息数据子集中的数据表确定为信息数据表;
基于基础数据表构建基础业务数据库,并且基于信息数据表构建信息业务数据库,从而将所述主业务数据库拆分为基础业务数据库和信息业务数据库。
7.根据权利要求6所述的方法,其特征在于,还包括,
将多个数据服务中除了第一主服务和第二主服务之外的每个服务确定为从服务;
获取每个从服务的访问统计信息,并基于访问统计信息将每个从服务与基础业务数据库或信息业务数据库进行关联;
其中与所述基础业务数据库相关联的从服务,在所述基础业务数据库中进行数据访问,且与所述信息业务数据库相关联的从服务,在所述信息业务数据库中进行数据访问。
8.根据权利要求7所述的方法,其特征在于,所述基于访问统计信息将每个从服务与基础业务数据库或信息业务数据库进行关联,包括:
基于访问统计消息确定每个从服务对基础数据表的总访问次数和对信息数据表的总访问次数;
将基础数据表的总访问次数大于对信息数据表的总访问次数的从服务,确定为与基础业务数据库相关联;
将基础数据表的总访问次数小于或等于对信息数据表的总访问次数的从服务,确定为与信息业务数据库相关联。
9.根据权利要求8所述的方法,其特征在于,还包括,
确定与所述基础业务数据库相关联的从服务所需要访问的信息业务数据库中的基础数据表,将所需要访问的信息业务数据库中的基础数据表在所述基础业务数据库进行冗余存储;
确定与所述信息业务数据库相关联的从服务所需要访问的基础业务数据库中的基础数据表,将所需要访问的基础业务数据库中的基础数据表在所述信息业务数据库进行冗余存储。
10.根据权利要求1或8所述的方法,其特征在于,还包括,
将所述基础业务数据库的存储结构设置为主基础业务库和至少一个从基础业务库,以通过所述主基础业务库和至少一个从基础业务库,实现基础业务数据库的负载均衡;
将所述信息业务数据库的存储结构设置为主信息业务库和至少一个从信息业务库,以通过所述主信息业务库和至少一个从信息业务库,实现信息业务数据库的负载均衡。
11.一种数据库拆分装置,其特征在于,所述装置包括:
第一拆分单元,用于按照业务数据库中存储的数据所涉及的业务类型,从所述业务数据库拆分出主业务数据库;
获取单元,用于确定对所述主业务数据库进行访问的多个服务,并获取每个服务的访问统计信息;所述每个服务的访问统计信息用于记录服务对所述主业务数据库中相关联的多个数据表中每个数据表的访问次数;
划分单元,用于基于所述访问统计信息,从多个服务中选择第一主服务和第二主服务,包括:
基于所述访问统计信息,确定多个服务中每个服务相关联的数据表的数量和对相关联的数据表的总访问次数;
将相关联的数据表的数量小于或等于数量阈值的服务确定为第一类型的服务,并且将相关联的数据表的数量大于数量阈值的服务确定为第二类型的服务;
将第一类型的服务中,总访问次数最大的服务选择为第一主服务,并且将第二类型的服务中,总访问次数最大的服务选择为第二主服务;
并基于第一主服务和第二主服务各自的访问统计信息,将所述主业务数据库中的数据划分为基础数据子集和信息数据子集;以及
第二拆分单元,用于基于所述基础数据子集和信息数据子集,将所述主业务数据库拆分为基础业务数据库和信息业务数据库。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于执行权利要求1-10中任一项所述的方法。
13.一种电子设备,其特征在于,所述电子设备包括:处理器和存储器;其中,
所述存储器,用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210223803.8A CN114637736B (zh) | 2022-03-09 | 2022-03-09 | 一种数据库拆分方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210223803.8A CN114637736B (zh) | 2022-03-09 | 2022-03-09 | 一种数据库拆分方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114637736A CN114637736A (zh) | 2022-06-17 |
CN114637736B true CN114637736B (zh) | 2023-03-31 |
Family
ID=81947360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210223803.8A Active CN114637736B (zh) | 2022-03-09 | 2022-03-09 | 一种数据库拆分方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114637736B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110147407A (zh) * | 2017-09-29 | 2019-08-20 | 华为技术有限公司 | 一种数据处理方法、装置及数据库管理服务器 |
CN113535757A (zh) * | 2021-08-12 | 2021-10-22 | 厦门市易联众易惠科技有限公司 | 一种冷热数据的发现方法、装置、设备及可读存储介质 |
CN113760902A (zh) * | 2021-03-03 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 数据拆分方法、装置、设备、介质及程序产品 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107480254B (zh) * | 2017-08-14 | 2021-05-11 | 上海交通大学 | 适用于分布式内存数据库的在线负载均衡方法 |
CN108460070A (zh) * | 2017-12-21 | 2018-08-28 | 阿里巴巴集团控股有限公司 | 一种基于数据库的数据处理方法、装置及设备 |
CN109471717B (zh) * | 2018-10-11 | 2024-06-18 | 平安科技(深圳)有限公司 | 样本库拆分方法、装置、计算机设备及存储介质 |
CN112784136B (zh) * | 2019-11-05 | 2024-06-04 | 阿里巴巴集团控股有限公司 | 数据查询方法、装置及电子设备 |
US20210209077A1 (en) * | 2020-01-07 | 2021-07-08 | ALTR Solutions, Inc. | Communicating fine-grained application database access to a third-party agent |
CN111324604A (zh) * | 2020-01-19 | 2020-06-23 | 拉扎斯网络科技(上海)有限公司 | 数据库表的处理方法、装置、电子设备及存储介质 |
CN111382156A (zh) * | 2020-02-14 | 2020-07-07 | 石化盈科信息技术有限责任公司 | 一种数据采集方法、系统、装置、电子设备及存储介质 |
CN113312331A (zh) * | 2020-04-01 | 2021-08-27 | 阿里巴巴集团控股有限公司 | 数据迁移方法、装置、系统、电子设备及计算机可读介质 |
CN111752924A (zh) * | 2020-06-28 | 2020-10-09 | 平安科技(深圳)有限公司 | 一种数据库迁移方法、系统及存储介质 |
CN113568895A (zh) * | 2021-02-01 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 数据库的数据处理方法、装置、电子设备 |
CN112965957A (zh) * | 2021-03-22 | 2021-06-15 | 广州汇量信息科技有限公司 | 一种数据迁移方法、装置、设备及存储介质 |
-
2022
- 2022-03-09 CN CN202210223803.8A patent/CN114637736B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110147407A (zh) * | 2017-09-29 | 2019-08-20 | 华为技术有限公司 | 一种数据处理方法、装置及数据库管理服务器 |
CN113760902A (zh) * | 2021-03-03 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 数据拆分方法、装置、设备、介质及程序产品 |
CN113535757A (zh) * | 2021-08-12 | 2021-10-22 | 厦门市易联众易惠科技有限公司 | 一种冷热数据的发现方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114637736A (zh) | 2022-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11100103B2 (en) | Data sharing in multi-tenant database systems | |
JP6697392B2 (ja) | 半構造データスキーマのトランスペアレントディスカバリ | |
US7490265B2 (en) | Recovery segment identification in a computing infrastructure | |
US9996593B1 (en) | Parallel processing framework | |
US8312037B1 (en) | Dynamic tree determination for data processing | |
US10417265B2 (en) | High performance parallel indexing for forensics and electronic discovery | |
Yang et al. | Implementation of a big data accessing and processing platform for medical records in cloud | |
US11914591B2 (en) | Sharing materialized views in multiple tenant database systems | |
US10983873B1 (en) | Prioritizing electronic backup | |
US20190310985A1 (en) | Data arrangement management in a distributed data cluster environment of a shared pool of configurable computing resources | |
US11811839B2 (en) | Managed distribution of data stream contents | |
US8949432B2 (en) | Identity management | |
WO2022257709A1 (en) | Database optimization using record correlation and intermediate storage media | |
CN112433888B (zh) | 数据处理方法及装置、存储介质和电子设备 | |
CN114637736B (zh) | 一种数据库拆分方法和装置 | |
US11210352B2 (en) | Automatic check of search configuration changes | |
CN113760822A (zh) | 基于hdfs的分布式智慧校园文件管理系统优化方法及装置 | |
Singh | NoSQL: A new horizon in big data | |
US11914586B2 (en) | Automated partitioning of a distributed database system | |
US11733899B2 (en) | Information handling system storage application volume placement tool | |
Dory | Study and Comparison of Elastic Cloud Databases: Myth or Reality? | |
Chawla | Optimizing the Resource utilization of Enterprise Content management workloads through measured performance baselines and dynamic topology adaptation | |
Balusamy et al. | Cloud Database Systems: NoSQL, NewSQL, Hybrid | |
CN117349265A (zh) | 用于管理数据库数据的方法、装置及存储介质 | |
CN118394855A (zh) | 数据处理方法、装置、设备及存储介质 |
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 |