CN115687359A - 数据表分区方法及装置、存储介质、计算机设备 - Google Patents
数据表分区方法及装置、存储介质、计算机设备 Download PDFInfo
- Publication number
- CN115687359A CN115687359A CN202211427639.9A CN202211427639A CN115687359A CN 115687359 A CN115687359 A CN 115687359A CN 202211427639 A CN202211427639 A CN 202211427639A CN 115687359 A CN115687359 A CN 115687359A
- Authority
- CN
- China
- Prior art keywords
- partition
- data
- target
- service data
- data table
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据表分区方法及装置、存储介质、计算机设备,涉及一种数据库技术领域及金融领域,主要目的在于解决数据表分区时间及资源成本较高的问题。主要包括响应于目标业务数据的数据表分区请求,从数据库中确定出所述目标业务数据所在的第一数据表;基于所述目标业务数据属性信息、所述预设业务数据分区属性、所述预设分区参数创建第二数据表,所述第二数据表包括目标表分区及至少一个非目标表分区;对所述第一数据表与所述第二数据表中的目标表分区进行分区交换处理,并将所述分区交换处理后的第二数据表的第二表名更新为所述第一数据表的第一表名,得到所述目标业务数据的目标分区数据表。主要用于将非分区表转换为分区表。
Description
技术领域
本发明涉及一种数据库技术领域及金融领域,特别是涉及一种数据表分区方法及装置、存储介质、计算机设备。
背景技术
随着数据库技术的发展,越来越多的数据库被应用在各行各业,特别是电商行业、金融行业、医疗服务行业等,每天都会产生大量的业务数据需要存储至数据库中的不同业务数据表中,且随着新增业务数据的不断注入,数据表的空间占用越来越大,数据表访问的性能也会出现瓶颈,如何缩减数据库空间占用,提高访问性能成为亟待解决的问题。
将数据表进行分区划分实现数据的分区存储,能够有效的对数据进行归档、对存储空间进行释放,从而解决上述问题,但现有的数据表分区方法,通常需要在离线的状态下对数据表进行分区,表分区过程中正常业务无法对数据表内容进行访问,影响业务的正常运行,造成表分区的时间成本及资源成本较高。
发明内容
有鉴于此,本发明提供一种数据表分区方法及装置、存储介质、计算机设备,主要目的在于解决现有表分区过程影响业务数据访问,时间及资源成本较高的问题。
依据本发明一个方面,提供了一种数据表分区方法,包括:
响应于目标业务数据的数据表分区请求,从数据库中确定出所述目标业务数据所在的第一数据表,所述数据表分区请求携带有预设业务数据分区属性、预设分区参数、目标业务数据属性信息;
基于所述目标业务数据属性信息、所述预设业务数据分区属性、所述预设分区参数创建第二数据表,所述第二数据表包括目标表分区及至少一个非目标表分区;
对所述第一数据表与所述第二数据表中的目标表分区进行分区交换处理,并将所述分区交换处理后的第二数据表的第二表名更新为所述第一数据表的第一表名,得到所述目标业务数据的目标分区数据表。
进一步地,所述将所述分区交换处理后的第二数据表的第二表名更新为所述第一数据表的第一表名,得到所述目标业务数据的目标分区数据表之后,所述方法还包括:
对所述数据交换后的所述第一数据表进行删除处理;
当接收到新增业务数据请求时,基于新增业务数据的第一属性信息,将所述新增业务数据存储至对应的所述非目标表分区中。
进一步地,所述基于新增业务数据的属性信息,将所述新增业务数据存储至对应的所述非目标表分区中之后,所述方法还包括:
响应于预设业务数据清理条件的触发,获取目标清理业务数据的第二属性信息;
根据所述第二属性信息从所述目标分区数据表中确定出至少一个目标清理表分区;
对所述目标清理表分区进行物理删除,以释放所述目标清理表分区的存储空间。
进一步地,所述基于所述目标业务数据的数据属性、所述预设业务数据分区属性、所述预设分区参数创建第二数据表,包括:
基于所述目标业务数据的目标属性、所述预设业务数据分区属性确定第一表分区约束信息,所述目标属性为与所述预设业务数据分区属性对应的业务数据属性;
基于所述预设业务数据分区属性、所述预设分区参数确定至少一个第二表分区约束信息;
基于所述第一表分区约束信息创建目标表分区,并基于所述第二表分区约束信息创建非目表分区,得到第二数据表。
进一步地,所述从数据库中确定出所述目标业务数据所在的第一数据表之后,所述方法还包括:
基于预设业务数据分区属性、及所述第一数据表的索引信息配置复合索引主键;
将所述第一数据表的索引主键更新为所述复合索引主键。
进一步地,所述基于所述预设业务数据分区属性及所述预设分区参数创建第二数据表之前,所述方法还包括:
对所述第一数据表中的业务数据进行数据有效性检测、分区属性检测、索引扩展属性检测;
若所述数据有效性检测、所述分区属性检测、所述索引扩展属性检测的检测结果均为通过,则获取所述第一数据表的查询频次高于预设查询频次阈值的查询语句、业务数据的数据量,以用于所述分区交换之后的查询语句处理及数据量检测;
若所述数据有效性检测、所述分区属性检测、所述索引扩展属性检测的任一检测结果为未通过,则生成用于提示数据表分区异常的预警信息。
进一步地,所述方法还包括:
在得到所述目标业务数据的目标分区数据表之后,对所述目标分区数据表中的业务数据进行数据有效性检测;
基于所述分区交换的所述数据量对所述目标分区数据表中的业务数据进行数据量检测;
若所述数据有效性检测、所述数据量检测的检测结果均为通过,则基于所述预设业务数据分区属性对所述查询语句进行固化处理。
依据本发明另一个方面,提供了一种数据表分区装置,包括:
确定模块,用于响应于目标业务数据的数据表分区请求,从数据库中确定出所述目标业务数据所在的第一数据表,所述数据表分区请求携带有预设业务数据分区属性、预设分区参数、目标业务数据属性信息;
创建模块,用于基于所述目标业务数据属性信息、所述预设业务数据分区属性、所述预设分区参数创建第二数据表,所述第二数据表包括目标表分区及至少一个非目标表分区;
交换模块,用于对所述第一数据表与所述第二数据表中的目标表分区进行分区交换处理,并将所述分区交换处理后的第二数据表的第二表名更新为所述第一数据表的第一表名,得到所述目标业务数据的目标分区数据表。
进一步地,所述装置还包括:
第一删除模块,用于对所述数据交换后的所述第一数据表进行删除处理;
存储模块,用于更新模块当接收到新增业务数据请求时,基于新增业务数据的第一属性信息,将所述新增业务数据存储至对应的所述非目标表分区中。
进一步地,所述装置还包括:
第一获取模块,用于响应于预设业务数据清理条件的触发,获取目标清理业务数据的第二属性信息;
所述确定模块,还用于根据所述第二属性信息从所述目标分区数据表中确定出至少一个目标清理表分区;
第二删除模块,用于对所述目标清理表分区进行物理删除,以释放所述目标清理表分区的存储空间。
进一步地,所述创建模块,包括:
第一确定单元,用于基于所述目标业务数据的目标属性、所述预设业务数据分区属性确定第一表分区约束信息,所述目标属性为与所述预设业务数据分区属性对应的业务数据属性;
第二确定单元,用于基于所述预设业务数据分区属性、所述预设分区参数确定至少一个第二表分区约束信息;
创建单元,用于基于所述第一表分区约束信息创建目标表分区,并基于所述第二表分区约束信息创建非目表分区,得到第二数据表。
进一步地,所述装置还包括:
配置模块,用于基于预设业务数据分区属性、及所述第一数据表的索引信息配置复合索引主键;
更新模块,用于将所述第一数据表的索引主键更新为所述复合索引主键。
进一步地,所述装置还包括:
第一检测模块,用于对所述第一数据表中的业务数据进行数据有效性检测、分区属性检测、索引扩展属性检测;
第二获取模块,用于若所述数据有效性检测、所述分区属性检测、所述索引扩展属性检测的检测结果均为通过,则获取所述第一数据表的查询频次高于预设查询频次阈值的查询语句、业务数据的数据量,以用于所述分区交换之后的查询语句处理及数据量检测;
生成模块,用于若所述数据有效性检测、所述分区属性检测、所述索引扩展属性检测的任一检测结果为未通过,则生成用于提示数据表分区异常的预警信息。
进一步地,所述装置还包括:
第二检测模块,用于在得到所述目标业务数据的目标分区数据表之后,对所述目标分区数据表中的业务数据进行数据有效性检测;
第三检测模块,用于基于所述分区交换的所述数据量对所述目标分区数据表中的业务数据进行数据量检测;
固化模块,用于若所述数据有效性检测、所述数据量检测的检测结果均为通过,则基于所述预设业务数据分区属性对所述查询语句进行固化处理。
根据本发明的又一方面,提供了一种存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述数据表分区方法对应的操作。
根据本发明的再一方面,提供了一种计算机设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述数据表分区方法对应的操作。
借由上述技术方案,本发明实施例提供的技术方案至少具有下列优点:
本发明提供了一种数据表分区方法及装置、存储介质、计算机设备,本发明实施例通过响应于目标业务数据的数据表分区请求,从数据库中确定出所述目标业务数据所在的第一数据表,所述数据表分区请求携带有预设业务数据分区属性、预设分区参数、目标业务数据属性信息;基于所述目标业务数据属性信息、所述预设业务数据分区属性、所述预设分区参数创建第二数据表,所述第二数据表包括目标表分区及至少一个非目标表分区;对所述第一数据表与所述第二数据表中的目标表分区进行分区交换处理,并将所述分区交换处理后的第二数据表的第二表名更新为所述第一数据表的第一表名,得到所述目标业务数据的目标分区数据表,通过数据交换将原有数据表中的数据交换到分区表中,不需要占用双倍的存储空间,且能够在不影响正常业务数据访问的情况下,实现对数据表的分区,大大降低了表分区对正常业务运行的影响,从而有效降低表分区的时间及资源成本。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种数据表分区方法流程图;
图2示出了本发明实施例提供的另一种数据表分区方法流程图;
图3示出了本发明实施例提供的又一种数据表分区方法流程图;
图4示出了本发明实施例提供的一数据表分区装置组成框图;
图5示出了本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
针对现有的数据表分区方法,通常需要在离线的状态下对数据表进行分区,表分区过程中正常业务无法对数据表内容进行访问,影响业务的正常运行,造成表分区的时间成本及资源成本较高的技术问题。本发明实施例提供了一种数据表分区方法,如图1所示,该方法包括:
101、响应于目标业务数据的数据表分区请求,从数据库中确定出所述目标业务数据所在的第一数据表。
本发明实施例中,数据库为Oracle关系数据库。数据表分区请求携带有预设业务数据分区属性、预设分区参数、目标业务数据属性信息。目标业务数据为金融科技企业内部的业务数据。该目标业务数据存储于金融业务数据库中的数据表中。当接收到需要对该目标业务数据所在数据表进行分区的请求时,根据目标业务数据属性信息从数据库中查找到用于存储目标业务数据的第一数据表,该第一数据表为非分区表。其中,目标业务数据属性信息可以为目标业务数据的数据上传ID、数据所对应的业务类型、数据所对应的金融客户属性等信息,本发明实施例不做具体限定。
需要说明的是,预设业务数据分区属性约束了表分区的属性依据,为基于目标业务数据的业务归档需求及业务定期清理需求设定的,可以为时间属性、客户属性、项目属性等。针对数据量较大,更新频率较高的业务数据,可以将预设业务数据分区属性配置为时间属性,即将数据表按照时间属性进行分区。预设分区参数约束了表分区的分区规则,也为基于目标业务数据的业务归档需求及业务定期清理需求设定的。针对数据量较大,更新频率较高的业务,可以将预设分区参数配置为一个自然日,数据量一般的业务数据,可以将预设分区参数配置为一个月。例如,当分区属性为时间属性时,预设分区参数可以为一个月、七天、一个自然日,即每个表分区中存储有不同月份产生的业务数据、不同周产生的业务数据、不同自然日产生的业务数据。对于预设业务数据分区属性、预设分区参数的设定可以根据具体应用需求自定义,本发明实施例不做具体限定。基于目标业务数据的属性特征配置不同的表分区方式,从而使分区后的数据表更好的满足业务需求,保证业务数据访问性能。
102、基于所述目标业务数据属性信息、所述预设业务数据分区属性、所述预设分区参数创建第二数据表。
本发明实施例中,第二数据表为新建的空白数据表,包括目标表分区及至少一个非目标表分区。其中,目标表分区用于存储第一数据表中已有的目标业务数据。非目标表分区用于存储后续新增的业务数据,可以为一个、两个或多个。目标表分区的约束信息为基于目标业务数据属性信息、预设业务数据分区属性确定的。例如,预设业务数据分区属性为时间属性,目标业务数据均是在2022年5月前产生的数据,则目标表分区的约束信息为创建时间小于20220430。而非目标表分区的约束信息为基于预设业务数据分区属性及预设分区参数确定的。例如,预设业务数据分区属性为时间属性,预设分区参数为1个月,则非目标表分区可以包括5月表分区、6月表分区……12月表分区等。通过创建包括目标表分区及非目标表分区的分区数据表,能够将原有非分区数据表中的业务数据迁移到分区数据表中,不影响正常业务的数据访问,且当新增业务数据注入时,能够进行有效的分区归档,从而在实现了数据表分区的同时,保证业务数据的正常访问。
103、对所述第一数据表与所述第二数据表中的目标表分区进行分区交换处理,并将所述分区交换处理后的第二数据表的第二表名更新为所述第一数据表的第一表名,得到所述目标业务数据的目标分区数据表。
本发明实施例中,为了将目标业务数据存储至分区数据表中,将第一数据表中的目标业务数据交换至第二数据表中的目标表分区中,同时,将第二数据表中的目标表分区中的空数据交换至第一数据表中。交换后的第二数据表中的目标表分区中存储有全部的目标业务数据,而交换后的第一数据表为不包含业务数据的空表。分区交换处理后,为了保证业务数据的正常访问,对分区交换处理后的第一数据表的表名,即第一表名,进行重命名,并将分区交换处理后的第二数据表的表名即第二表名重命名为第一表名,以使业务数据访问过程还能基于原有表名查找到目标业务数据。其中,第一表名的重命名可以为随机表名,例如,第一数据表的第一表名为T1,重命名为T1_OLD,本发明实施例不做具体限定。
需要说明的是,由于对数据表进行重命名仅需要秒级完成,可以支持在线进行数据表分区,业务基本对目标业务数据从第一数据表转到第二数据表的表分区无感知,因此,可以实现在不影响业务数据访问的前提下,完成目标业务数据从非分区数据表到分区数据表的转换,实现数据表分区,大大减少了业务的等待时间,从而有效降低表分区对业务的影响,降低表分区的时间及资源成本。此外,通过分区交换的方式,将目标业务数据与空数据进行交换,不需要两倍的数据存储空间,对存储空间的要求较低,使得表分区方法适用于各种存储空间条件的数据库,从而提升表分区的适用性。
在一个本发明实施例中,为了进一步说明及限定,如图2所示,步骤103所述将所述分区交换处理后的第二数据表的第二表名更新为所述第一数据表的第一表名,得到所述目标业务数据的目标分区数据表之后,所述方法还包括:
201、对所述数据交换后的所述第一数据表进行删除处理。
202、当接收到新增业务数据请求时,基于新增业务数据的第一属性信息,将所述新增业务数据存储至对应的所述非目标表分区中。
本发明实施例中,当完成分区交换后,第一数据表中的业务数据完全交换至第二数据表的目标表分区中,而第一数据表为空白表,且第一数据表的原表名也转换给了第二数据表,因此,可以对第一数据表进行删除,后续业务数据的访问的数据表均由第一数据表转为目标分区数据表。当有新增业务数据存入时,则根据新增业务数据的属性及目标分区数据表中不同表分区对属性的约束信息,将新增业务数据存储至对应非目标表分区中。例如,表的划分属性为时间,新增业务数据的生成时间为20220801,非目标表分区包括对应202207的第一表分区、对应202208的第二表分区、对应202209的第三表分区,则将新增业务数据存储至第二表分区中。在得到目标分区数据表后,后续的业务数据访问、***均基于目标分区数据表的不同表分区进行,从而达到对业务数据进行归档的效果。
在一个本发明实施例中,为了进一步说明及限定,如图3所示,步骤202所述基于新增业务数据的属性信息,将所述新增业务数据存储至对应的所述非目标表分区中之后,所述方法还包括:
301、响应于预设业务数据清理条件的触发,获取目标清理业务数据的第二属性信息;
302、根据所述第二属性信息从所述目标分区数据表中确定出至少一个目标清理表分区;
303、对所述目标清理表分区进行物理删除,以释放所述目标清理表分区的存储空间。
本发明实施例中,预设业务数据清理条件可以为预设业务数据量阈值、也可以为预设清理时间,例如,预设业务数据量阈值为1T、预设清理时间为每月1日零时。第二属性信息为待清理业务数据的共有属性信息,例如,第二属性信息为:时间属性202101-202106,则当业务数据的数据量达到预设业务数据量阈值,或当前时间满足预设清理时间时,对目标分区数据表中对应202101-202106的表分区执行drop命令,例如,alter table table_namedrop partition partition_name,以删除对应表分区,释放存储空间。
需要说明的是,若业务数据存储于非分区表中,则在业务正常运行过程中,不能够对业务数据执行drop命令,仅能执行delete命令,但通过delete命令删除业务数据,由于删除前后使用的块block数量未发生变化,内存空间并未得到真正的释放。通过对数据表进行分区,使不同业务数据存储至不同表分区中,当需要对部分表分区中的无效业务数据进行清理时,可以在业务进行的同时,对对应的表分区进行drop物理删除。从而在保证业务正常进行的同时,对数据库空间进行有效释放。
在一个本发明实施例中,为了进一步说明及限定,步骤102所述基于所述目标业务数据属性信息、所述预设业务数据分区属性、所述预设分区参数创建第二数据表,包括:
基于所述预设业务数据分区属性从所述目标业务数据属性信息中提取目标属性信息,并基于所述目标属性信息配置第一表分区约束信息。
基于所述预设业务数据分区属性、所述预设分区参数为至少一个第二表分区配置第二表分区约束信息。
基于所述第一表分区约束信息创建目标表分区,并基于所述第二表分区约束信息创建非目表分区,得到第二数据表。
本发明实施例中,表分区约束信息为对应表分区的属性范围进行约束的信息,例如,某表分区中仅存储对应A客户的业务数据、或某表分区中仅存储20220801~20220831期间产生的业务数据。目标属性信息为目标业务数据属性信息中与预设业务数据分区属性一致的属性信息。例如,目标业务数据属性信息包括时间属性、客户属性、项目属性,预设业务数据分区属性为时间属性,则提取目标业务数据属性信息中的全部时间属性信息。创建的第二数据表用于存储第一数据表中的已有业务数据、以及后续全部新增业务数据。第一数据表中的已有业务数据需要作为一个表分区的内容,转移到第二数据表中。因此,先从目标业务数据属性信息中包括的多个属性信息中提取出与预设业务数据分区属性一致的目标属性信息,进而根据目标属性信息配置第一表分区约束信息。例如,全部业务数据的目标属性信息分布在:时间20210305~20220820之间,则将20110820之前,配置为目标表分区的第一表分区约束信息。后续新增业务数据根据第二表分区约束信息存储在非目标表分区中。表的具体分区方式可以根据预设业务数据分区属性及预设分区参数配置,例如,按照时间属性分区,每7天做一个表分区。通过创建包括目标表分区、及非目标表分区的第二数据表,满足了对数据表进行分区的要求,同时,实现了对已有业务数据的单独归档,保障业务数据正常访问。
在一个本发明实施例中,为了进一步说明及限定,步骤101所述从数据库中确定出所述目标业务数据所在的第一数据表之后,所述方法还包括:
基于预设业务数据分区属性、及所述第一数据表的索引信息配置复合索引主键。
将所述第一数据表的索引主键更新为所述复合索引主键。
本发明实施例中,索引信息为用于访问第一数据表的原有主键的信息,如ID。复合索引主键为包含原有主键及预设业务数据分区属性的联合主键,如ID+create time。将第一数据表的索引主键改造为包含分区属性信息的联合主键,使第一数据表中业务数据的索引访问方式转换为适用于分区表的索引访问方式,当第一数据表中业务数据交换至第二数据表的一个表分区时,业务数据的访问不受业务数据迁移的影响,从而保证表分区过程业务的正常进行。
在一个本发明实施例中,为了进一步说明及限定,步骤102所述基于所述预设业务数据分区属性及所述预设分区参数创建第二数据表之前,所述方法还包括:
对所述第一数据表中的业务数据进行数据有效性检测、分区属性检测、索引扩展属性检测。
若所述数据有效性检测、所述分区属性检测、所述索引扩展属性检测的检测结果均为通过,则获取所述第一数据表的查询频次高于预设查询频次阈值的查询语句、业务数据的数据量,以用于所述分区交换之后的查询语句处理及数据量检测。
若所述数据有效性检测、所述分区属性检测、所述索引扩展属性检测的任一检测结果为未通过,则生成用于提示数据表分区异常的预警信息。
本发明实施例中,数据有效性检测即检查第一数据表中的业务数据是否为有效数据,例如索引是否失效、是否包含Null值等。同时,也防止转换至第二数据表中后,无法分辨是转换造成的业务数据时效还是原本也业务数据的问题。分区属性检测即检测分区属性所对应的字段是否为空,例如,分区属性为时间,则检查create_time是否含Null,若为空,则变更索引主键后,无法正确访问该业务数据。索引扩展属性检测也为针对扩展主键的性能进行的检查,即确认当前业务数据可否支持将主键扩展为联合主键,以保证对主键扩展不影响现有业务字段属性。当上述检测均为通过,则表明当前业务数据支持表分区改造。为了保证表分区前后,表的SQL性能不发生改变,获取查找频次较高的SQL语句,具体需要多高频次的SQL语句可以通过设定预设查询频次阈值来限制,预设查询频次阈值可以根据应用需求自定义,本发明实施例不做具体限定。为了便于分区交换后检验是否存储数据丢失的情况,还需要获取第一数据表中全部业务数据的数据量,即业务数据的数据量。
在一个本发明实施例中,为了进一步说明及限定,所述方法还包括:
在得到所述目标业务数据的目标分区数据表之后,对所述目标分区数据表中的业务数据进行数据有效性检测;
基于所述分区交换的所述数据量对所述目标分区数据表中的业务数据进行数据量检测;
若所述数据有效性检测、所述数据量检测的检测结果均为通过,则基于所述预设业务数据分区属性对所述查询语句进行固化处理。
本发明实施例中,在完成分区交换之后,还需要对业务数据进行有效性检测,同时,确认分区交换前后有效业务数据的数据量是否相同,总业务数据量是否相同,以确保交分区换后业务数据的可用性、完整性。并在确认分区交换后业务数据完整、有效后,对SQL语句进行固化处理,即将查询语句固化为基于预设业务数据分区属性+ID的索引进行查询的语句,以确保业务数据的正常访问。
本发明提供了一种数据表分区方法,本发明实施例通过响应于目标业务数据的数据表分区请求,从数据库中确定出所述目标业务数据所在的第一数据表,所述数据表分区请求携带有预设业务数据分区属性、预设分区参数、目标业务数据属性信息;基于所述目标业务数据属性信息、所述预设业务数据分区属性、所述预设分区参数创建第二数据表,所述第二数据表包括目标表分区及至少一个非目标表分区;对所述第一数据表与所述第二数据表中的目标表分区进行分区交换处理,并将所述分区交换处理后的第二数据表的第二表名更新为所述第一数据表的第一表名,得到所述目标业务数据的目标分区数据表,通过数据交换将原有数据表中的数据交换到分区表中,不需要占用双倍的存储空间,且能够在不影响正常业务数据访问的情况下,实现对数据表的分区,大大降低了表分区对正常业务运行的影响,从而有效降低表分区的时间及资源成本。
进一步的,作为对上述图1所示方法的实现,本发明实施例提供了一种数据表分区装置,如图4所示,该装置包括:
确定模块41,用于响应于目标业务数据的数据表分区请求,从数据库中确定出所述目标业务数据所在的第一数据表,所述数据表分区请求携带有预设业务数据分区属性、预设分区参数、目标业务数据属性信息;
创建模块42,用于基于所述目标业务数据属性信息、所述预设业务数据分区属性、所述预设分区参数创建第二数据表,所述第二数据表包括目标表分区及至少一个非目标表分区;
交换模块43,用于对所述第一数据表与所述第二数据表中的目标表分区进行分区交换处理,并将所述分区交换处理后的第二数据表的第二表名更新为所述第一数据表的第一表名,得到所述目标业务数据的目标分区数据表。
进一步地,所述装置还包括:
第一删除模块,用于对所述数据交换后的所述第一数据表进行删除处理;
存储模块,用于更新模块当接收到新增业务数据请求时,基于新增业务数据的第一属性信息,将所述新增业务数据存储至对应的所述非目标表分区中。
进一步地,所述装置还包括:
第一获取模块,用于响应于预设业务数据清理条件的触发,获取目标清理业务数据的第二属性信息;
所述确定模块41,还用于根据所述第二属性信息从所述目标分区数据表中确定出至少一个目标清理表分区;
第二删除模块,用于对所述目标清理表分区进行物理删除,以释放所述目标清理表分区的存储空间。
进一步地,所述创建模块42,包括:
第一确定单元,用于基于所述目标业务数据的目标属性、所述预设业务数据分区属性确定第一表分区约束信息,所述目标属性为与所述预设业务数据分区属性对应的业务数据属性;
第二确定单元,用于基于所述预设业务数据分区属性、所述预设分区参数确定至少一个第二表分区约束信息;
创建单元,用于基于所述第一表分区约束信息创建目标表分区,并基于所述第二表分区约束信息创建非目表分区,得到第二数据表。
进一步地,所述装置还包括:
配置模块,用于基于预设业务数据分区属性、及所述第一数据表的索引信息配置复合索引主键;
更新模块,用于将所述第一数据表的索引主键更新为所述复合索引主键。
进一步地,所述装置还包括:
第一检测模块,用于对所述第一数据表中的业务数据进行数据有效性检测、分区属性检测、索引扩展属性检测;
第二获取模块,用于若所述数据有效性检测、所述分区属性检测、所述索引扩展属性检测的检测结果均为通过,则获取所述第一数据表的查询频次高于预设查询频次阈值的查询语句、业务数据的数据量,以用于所述分区交换之后的查询语句处理及数据量检测;
生成模块,用于若所述数据有效性检测、所述分区属性检测、所述索引扩展属性检测的任一检测结果为未通过,则生成用于提示数据表分区异常的预警信息。
进一步地,所述装置还包括:
所述装置还包括:
第二检测模块,用于在得到所述目标业务数据的目标分区数据表之后,对所述目标分区数据表中的业务数据进行数据有效性检测;
第三检测模块,用于基于所述分区交换的所述数据量对所述目标分区数据表中的业务数据进行数据量检测;
固化模块,用于若所述数据有效性检测、所述数据量检测的检测结果均为通过,则基于所述预设业务数据分区属性对所述查询语句进行固化处理。
本发明提供了一种数据表分区装置,本发明实施例通过响应于目标业务数据的数据表分区请求,从数据库中确定出所述目标业务数据所在的第一数据表,所述数据表分区请求携带有预设业务数据分区属性、预设分区参数、目标业务数据属性信息;基于所述目标业务数据属性信息、所述预设业务数据分区属性、所述预设分区参数创建第二数据表,所述第二数据表包括目标表分区及至少一个非目标表分区;对所述第一数据表与所述第二数据表中的目标表分区进行分区交换处理,并将所述分区交换处理后的第二数据表的第二表名更新为所述第一数据表的第一表名,得到所述目标业务数据的目标分区数据表,通过数据交换将原有数据表中的数据交换到分区表中,不需要占用双倍的存储空间,且能够在不影响正常业务数据访问的情况下,实现对数据表的分区,大大降低了表分区对正常业务运行的影响,从而有效降低表分区的时间及资源成本。
根据本发明一个实施例提供了一种存储介质,所述存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的数据表分区方法。
图5示出了根据本发明一个实施例提供的一种计算机设备的结构示意图,本发明具体实施例并不对计算机设备的具体实现做限定。
如图5所示,该计算机设备可以包括:处理器(processor)502、通信接口(Commun icat i ons I nterface)504、存储器(memory)506、以及通信总线508。
其中:处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器502,用于执行程序510,具体可以执行上述数据表分区方法实施例中的相关步骤。
具体地,程序510可以包括程序码,该程序码包括计算机操作指令。
处理器502可能是中央处理器CPU,或者是特定集成电路AS I C(App l i cat ion Spec i f i c I ntegrated Ci rcu it),或者是被配置成实施本发明实施例的一个或多个集成电路。计算机设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个AS I C。
存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-vo l at i l e memory),例如至少一个磁盘存储器。
程序510具体可以用于使得处理器502执行以下操作:
响应于目标业务数据的数据表分区请求,从数据库中确定出所述目标业务数据所在的第一数据表,所述数据表分区请求携带有预设业务数据分区属性、预设分区参数、目标业务数据属性信息;
基于所述目标业务数据属性信息、所述预设业务数据分区属性、所述预设分区参数创建第二数据表,所述第二数据表包括目标表分区及至少一个非目标表分区;
对所述第一数据表与所述第二数据表中的目标表分区进行分区交换处理,并将所述分区交换处理后的第二数据表的第二表名更新为所述第一数据表的第一表名,得到所述目标业务数据的目标分区数据表。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (10)
1.一种数据表分区方法,其特征在于,包括:
响应于目标业务数据的数据表分区请求,从数据库中确定出所述目标业务数据所在的第一数据表,所述数据表分区请求携带有预设业务数据分区属性、预设分区参数、目标业务数据属性信息;
基于所述目标业务数据属性信息、所述预设业务数据分区属性、所述预设分区参数创建第二数据表,所述第二数据表包括目标表分区及至少一个非目标表分区;
对所述第一数据表与所述第二数据表中的目标表分区进行分区交换处理,并将所述分区交换处理后的第二数据表的第二表名更新为所述第一数据表的第一表名,得到所述目标业务数据的目标分区数据表。
2.根据权利要求1所述的方法,其特征在于,所述将所述分区交换处理后的第二数据表的第二表名更新为所述第一数据表的第一表名,得到所述目标业务数据的目标分区数据表之后,所述方法还包括:
对所述数据交换后的所述第一数据表进行删除处理;
当接收到新增业务数据请求时,基于新增业务数据的第一属性信息,将所述新增业务数据存储至对应的所述非目标表分区中。
3.根据权利要求2所述的方法,其特征在于,所述基于新增业务数据的属性信息,将所述新增业务数据存储至对应的所述非目标表分区中之后,所述方法还包括:
响应于预设业务数据清理条件的触发,获取目标清理业务数据的第二属性信息;
根据所述第二属性信息从所述目标分区数据表中确定出至少一个目标清理表分区;
对所述目标清理表分区进行物理删除,以释放所述目标清理表分区的存储空间。
4.根据权利要求1所述的方法,其特征在于,所述基于所述目标业务数据的数据属性、所述预设业务数据分区属性、所述预设分区参数创建第二数据表,包括:
基于所述预设业务数据分区属性从所述目标业务数据属性信息中提取目标属性信息,并基于所述目标属性信息配置第一表分区约束信息;
基于所述预设业务数据分区属性、所述预设分区参数为至少一个第二表分区配置第二表分区约束信息;
基于所述第一表分区约束信息创建目标表分区,并基于所述第二表分区约束信息创建非目表分区,得到第二数据表。
5.根据权利要求1所述的方法,其特征在于,所述从数据库中确定出所述目标业务数据所在的第一数据表之后,所述方法还包括:
基于预设业务数据分区属性、及所述第一数据表的索引信息配置复合索引主键;
将所述第一数据表的索引主键更新为所述复合索引主键。
6.根据权利要求1所述的方法,其特征在于,所述基于所述预设业务数据分区属性及所述预设分区参数创建第二数据表之前,所述方法还包括:
对所述第一数据表中的业务数据进行数据有效性检测、分区属性检测、索引扩展属性检测;
若所述数据有效性检测、所述分区属性检测、所述索引扩展属性检测的检测结果均为通过,则获取所述第一数据表的查询频次高于预设查询频次阈值的查询语句、业务数据的数据量,以用于所述分区交换之后的查询语句处理及数据量检测;
若所述数据有效性检测、所述分区属性检测、所述索引扩展属性检测的任一检测结果为未通过,则生成用于提示数据表分区异常的预警信息。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在得到所述目标业务数据的目标分区数据表之后,对所述目标分区数据表中的业务数据进行数据有效性检测;
基于所述分区交换的所述数据量对所述目标分区数据表中的业务数据进行数据量检测;
若所述数据有效性检测、所述数据量检测的检测结果均为通过,则基于所述预设业务数据分区属性对所述查询语句进行固化处理。
8.一种数据表分区装置,其特征在于,包括:
确定模块,用于响应于目标业务数据的数据表分区请求,从数据库中确定出所述目标业务数据所在的第一数据表,所述数据表分区请求携带有预设业务数据分区属性、预设分区参数、目标业务数据属性信息;
创建模块,用于基于所述目标业务数据属性信息、所述预设业务数据分区属性、所述预设分区参数创建第二数据表,所述第二数据表包括目标表分区及至少一个非目标表分区;
交换模块,用于对所述第一数据表与所述第二数据表中的目标表分区进行分区交换处理,并将所述分区交换处理后的第二数据表的第二表名更新为所述第一数据表的第一表名,得到所述目标业务数据的目标分区数据表。
9.一种存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-7中任一项所述的数据表分区方法对应的操作。
10.一种计算机设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的数据表分区方法对应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211427639.9A CN115687359A (zh) | 2022-11-15 | 2022-11-15 | 数据表分区方法及装置、存储介质、计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211427639.9A CN115687359A (zh) | 2022-11-15 | 2022-11-15 | 数据表分区方法及装置、存储介质、计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115687359A true CN115687359A (zh) | 2023-02-03 |
Family
ID=85051121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211427639.9A Pending CN115687359A (zh) | 2022-11-15 | 2022-11-15 | 数据表分区方法及装置、存储介质、计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115687359A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116701382A (zh) * | 2023-08-03 | 2023-09-05 | 成都数默科技有限公司 | 基于clickhouse数据库的自动高效数据回滚方法 |
-
2022
- 2022-11-15 CN CN202211427639.9A patent/CN115687359A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116701382A (zh) * | 2023-08-03 | 2023-09-05 | 成都数默科技有限公司 | 基于clickhouse数据库的自动高效数据回滚方法 |
CN116701382B (zh) * | 2023-08-03 | 2023-10-20 | 成都数默科技有限公司 | 基于clickhouse数据库的自动高效数据回滚方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110799960B (zh) | 数据库租户迁移的***和方法 | |
US10296498B2 (en) | Coordinated hash table indexes to facilitate reducing database reconfiguration time | |
CN109684307B (zh) | 一种数据存储方法、装置、设备及存储介质 | |
US11442961B2 (en) | Active transaction list synchronization method and apparatus | |
US9576012B2 (en) | Hierarchical tablespace space management | |
US6826604B2 (en) | Input/output device information management system for multi-computer system | |
US20160212206A1 (en) | Deterministic database system and data transferring method thereof | |
US20110060724A1 (en) | Distributed database recovery | |
US20200364185A1 (en) | Method for data replication in a data analysis system | |
CN110399333B (zh) | 删除快照的方法、设备和计算机程序产品 | |
CN107665219B (zh) | 一种日志管理方法及装置 | |
CN104423982A (zh) | 请求的处理方法和处理设备 | |
US11061889B2 (en) | Systems and methods of managing manifest refresh in a database | |
CN108694230B (zh) | 数据库中的唯一标识符的管理 | |
US20230281179A1 (en) | Load Balancing For A Storage System | |
CN115687359A (zh) | 数据表分区方法及装置、存储介质、计算机设备 | |
CN109710698A (zh) | 一种数据汇聚方法、装置、电子设备及介质 | |
CN110851437A (zh) | 一种存储方法、装置及设备 | |
JP2013033439A (ja) | データベースの管理方法 | |
CN113778975A (zh) | 基于分布式数据库的数据处理方法及装置 | |
US10353920B2 (en) | Efficient mirror data re-sync | |
KR20210058613A (ko) | 단일 파일의 병렬 읽기/쓰기를 위한 락킹 방법 및 이를 구현하는 컴퓨팅 장치 | |
JPH07306795A (ja) | 二重系計算機のデータベース等価処理装置 | |
CN117708092A (zh) | 一种数据库管理方法及电子设备 | |
CN115757452A (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 |