CN113886360B - 数据表分区方法、装置、计算机可读介质及电子设备 - Google Patents
数据表分区方法、装置、计算机可读介质及电子设备 Download PDFInfo
- Publication number
- CN113886360B CN113886360B CN202111152116.3A CN202111152116A CN113886360B CN 113886360 B CN113886360 B CN 113886360B CN 202111152116 A CN202111152116 A CN 202111152116A CN 113886360 B CN113886360 B CN 113886360B
- Authority
- CN
- China
- Prior art keywords
- data table
- response time
- time
- weight value
- partitioned
- 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 95
- 238000000638 solvent extraction Methods 0.000 title claims abstract description 94
- 230000004044 response Effects 0.000 claims abstract description 278
- 238000005192 partition Methods 0.000 claims abstract description 56
- 238000012549 training Methods 0.000 claims description 63
- 238000012360 testing method Methods 0.000 claims description 38
- 238000004364 calculation method Methods 0.000 claims description 36
- 238000012545 processing Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 14
- 238000010801 machine learning Methods 0.000 claims description 10
- 230000002123 temporal effect Effects 0.000 claims description 10
- 238000012937 correction Methods 0.000 claims description 8
- 238000002790 cross-validation Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 claims description 4
- 238000013527 convolutional neural network Methods 0.000 claims description 3
- 230000000717 retained effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000003780 insertion Methods 0.000 description 5
- 230000037431 insertion Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000003442 weekly effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000002354 daily effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
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
-
- 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
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)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请属于数据库管理技术领域,具体涉及一种数据表分区方法、装置、计算机可读介质以及电子设备。本申请通过获取数据表的当前响应时间和特征参数,将数据表的特征参数输入预训练的时间预测模型中,得到数据表分区后的预测响应时间,然后计算当前响应时间与预测响应时间之间的响应时间差,若响应时间差大于预设的时间阈值,则对数据表进行分区;本申请可以自动判断数据表是否应该分区,因此,可以准确对数据表分区进行合理规划,从而提高数据表的响应时间,同时避免了不该分区的数据表分区,提高了系统的性能,提高了数据库的可维护性、可靠性和稳定性。
Description
技术领域
本申请属于数据库管理技术领域,具体涉及一种数据表分区方法、数据表分区装置、计算机可读介质以及电子设备。
背景技术
近年来,随着互联网的高速发展,企业应用越来越复杂,数据库中的数据表越来越宽,数据量越来越大,且数据增速也越来越快。数据库中几T容量的数据表数不胜数。
而目前对于数据表的分区判断一般通过人工根据经验来判断,或者根据简单的预设条件进行分区操作,利用这两种方法都将导致数据表分区判断不准确,使得很多不该分区的数据表分区,导致数据字典过大,影响系统性能;而对于应该进行分区而未分区的数据表,对数据表的增删改操作响应时间会越来越慢,备份恢复耗时长,一定程度上对数据库带来了可扩展性、可维护性、可靠性和稳定性方面的压力。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本申请的目的在于提供一种数据表分区方法、数据表分区装置、计算机可读介质以及电子设备,至少在一定程度上克服相关技术中数据表的分区判断不准确,导致对数据表的增删改操作响应时间变慢,影响数据库的稳定性和可靠性的技术问题。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供一种数据表分区方法,包括如下步骤:
获取数据表的当前响应时间和特征参数,所述当前响应时间包括结构化查询语言对所述数据表进行增删改所需的时间;
将所述数据表的特征参数输入预训练的时间预测模型中,得到所述数据表分区后的预测响应时间,所述时间预测模型是以分区后的数据表样本为输入,以分区后的数据表样本对应的响应时间为输出,进行机器学习训练的模型;
计算所述数据表的当前响应时间与所述数据表分区后的预测响应时间之间的响应时间差;
若所述响应时间差大于预设的时间阈值,则按所述数据表的属性对所述数据表进行分区。
在本申请的一些实施例中,基于以上技术方案,将所述数据表的特征参数输入预训练的时间预测模型中,得到所述数据表分区后的预测响应时间的方法,包括:
通过预训练的时间预测模型,得到最佳权重值,所述最佳权重值用于根据所述数据表的特征参数计算所述数据表分区后的预测响应时间;
将所述最佳权重值代入预测时间计算公式中,得到所述数据表分区后的预测响应时间,所述预测时间计算公式如下:
其中,y表示数据表分区后的预测响应时间,x1表示数据表所在服务器的中央处理器的处理频率,x2表示数据表所在服务器的内存量,x3表示数据表所在服务器的缓存量,x4表示数据表物理量,x5表示数据表数据量,x6表示数据表的宽度,x7表示数据表的分区数量,x8表示数据表的数据增长量,x9表示数据表的保存周期,x10表示数据表的物理读数:x11表示数据表的逻辑读数,a0-ak表示权重值。
在本申请的一些实施例中,基于以上技术方案,通过预训练的时间预测模型,得到最佳权重值的方法,包括:
将数据分区后的k个数据表和对应数据表样本的响应时间组合,形成训练数据表集;
将所述训练数据表集中的k-1个数据表作为训练集,将另外一个数据表作为测试集,基于所述训练集来预测测试集的响应时间,并与所述测试集的实际响应时间进行对比,得到权重值误差;
重复进行k次训练,得到k个权重值误差,根据所述k个权重值误差的平均值计算得出最佳权重值。
在本申请的一些实施例中,基于以上技术方案,在根据所述k个权重值误差的平均值计算得出最佳权重值之后,所述方法还包括:
使用P值假定方法确定所述最佳权重值中各个权重值的显著性水平,所述显著性水平用于表示所述权重值对应的特征参数与所述数据表分区后的预测响应时间的相关性;
将显著性水平小于显著性阈值的各个权重值保留。
在本申请的一些实施例中,基于以上技术方案,在根据所述k个权重值误差的平均值计算得出最佳权重值之后,所述方法还包括:
使用校正决定系数调整所述时间预测模型,所述校正决定系数用于抵消样本数量对决定系数的影响。
在本申请的一些实施例中,基于以上技术方案,所述时间预测模型按照如下方式训练:
将分区后的数据表样本对应的特征参数输入所述时间预测模型,所述时间预测模型输出分区后的数据表样本对应的响应时间,与分区后的数据表样本已知响应时间进行比较,如果不一致,则调整所述时间预测模型中的系数,使所述时间预测模型输出的分区后的数据表样本对应的响应时间与分区后的数据表样本已知的响应时间一致。
在本申请的一些实施例中,基于以上技术方案,计算所述数据表的当前响应时间与所述数据表分区后的预测响应时间之间的响应时间差的方法,包括:
将所述数据表的当前响应时间减去所述数据表分区后的预测响应时间,得到响应时间差;或
将所述数据表的当前响应时间除以所述数据表分区后的预测响应时间,得到响应时间差。
根据本申请实施例的一个方面,提供一种数据表分区装置,包括:
获取模块:被配置为获取数据表的当前响应时间和特征参数,所述当前响应时间包括结构化查询语言对所述数据表进行增删改所需的时间;
预测模块,被配置为将所述数据表的特征参数输入预训练的时间预测模型中,得到所述数据表分区后的预测响应时间,所述时间预测模型是以分区后的数据表样本为输入,以分区后的数据表样本对应的响应时间为输出,进行机器学习训练的模型;
计算模块,被配置为计算所述数据表的当前响应时间与所述数据表分区后的预测响应时间之间的响应时间差;
分区模块,被配置为若所述响应时间差大于预设的时间阈值,则按所述数据表的属性对所述数据表进行分区。
在本申请的一些实施例中,基于以上技术方案,所述预测模块包括:
权重计算单元,被配置为通过预训练的时间预测模型,得到最佳权重值,所述最佳权重值用于根据所述数据表的特征参数计算所述数据表分区后的预测响应时间;
预测单元,被配置为将所述最佳权重值代入预测时间计算公式中,得到所述数据表分区后的预测响应时间,所述预测时间计算公式如下:
其中,y表示数据表分区后的预测响应时间,x1表示数据表所在服务器的中央处理器的处理频率,x2表示数据表所在服务器的内存量,x3表示数据表所在服务器的缓存量,x4表示数据表物理量,x5表示数据表数据量,x6表示数据表的宽度,x7表示数据表的分区数量,x8表示数据表的数据增长量,x9表示数据表的保存周期,x10表示数据表的物理读数:x11表示数据表的逻辑读数,a0-ak表示权重值。
在本申请的一些实施例中,基于以上技术方案,所述权重计算单元包括:
数据处理单元,被配置为将数据分区后的k个数据表和对应数据表样本的响应时间组合,形成训练数据表集;
误差计算单元,被配置为将所述训练数据表集中的k-1个数据表作为训练集,将另外一个数据表作为测试集,基于所述训练集来预测测试集的响应时间,并与所述测试集的实际响应时间进行对比,得到权重值误差;
最佳权重单元,被配置为重复进行k次训练,得到k个权重值误差,根据所述k个权重值误差的平均值计算得出最佳权重值。
在本申请的一些实施例中,基于以上技术方案,所述权重计算单元还包括:
显著性计算单元,被配置为使用P值假定方法确定所述最佳权重值中各个权重值的显著性水平,所述显著性水平用于表示所述权重值对应的特征参数与所述数据表分区后的预测响应时间的相关性;
筛选单元,被配置为将显著性水平小于显著性阈值的各个权重值保留。
在本申请的一些实施例中,基于以上技术方案,所述权重计算单元还包括:
校正单元,被配置为使用校正决定系数调整所述时间预测模型,所述校正决定系数用于抵消样本数量对决定系数的影响。
在本申请的一些实施例中,基于以上技术方案,所述时间预测模型按照如下方式训练:
将分区后的数据表样本对应的特征参数输入所述时间预测模型,所述时间预测模型输出分区后的数据表样本对应的响应时间,与分区后的数据表样本已知响应时间进行比较,如果不一致,则调整所述时间预测模型中的系数,使所述时间预测模型输出的分区后的数据表样本对应的响应时间与分区后的数据表样本已知的响应时间一致。
在本申请的一些实施例中,基于以上技术方案,所述计算模块被配置为将所述数据表的当前响应时间减去所述数据表分区后的预测响应时间,得到响应时间差;或将所述数据表的当前响应时间除以所述数据表分区后的预测响应时间,得到响应时间差。
根据本申请实施例的一个方面,提供一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如以上技术方案中的数据表分区方法。
根据本申请实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器被配置为经由执行所述可执行指令来执行如以上技术方案中的数据表分区方法。
根据本申请实施例的一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上技术方案中的数据表分区方法。
在本申请实施例提供的技术方案中,本申请通过获取数据表的当前响应时间和特征参数,将数据表的特征参数输入预训练的时间预测模型中,得到数据表分区后的预测响应时间,然后计算数据表的当前响应时间与数据表分区后的预测响应时间之间的响应时间差,最后判断这个响应时间差是否大于预设的时间阈值,若大于预设的时间阈值,则按所述数据表的属性对所述数据表进行分区;利用本申请的技术方案可以获得一个分区后的预测响应时间,从而利用预测响应时间与当前响应时间的差值来自动判断数据表是否应该分区,因此,可以准确判断数据表分区情况,从而提高数据表的响应时间,同时避免了不该分区的数据表分区,提高了系统的性能,提高了数据库的可维护性、可靠性和稳定性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性地示出了应用本申请技术方案的示例性系统架构框图。
图2示意性地示出了本申请数据表分区方法的流程图。
图3示意性地示出了本申请另一种时间预测模型构建方法的流程图。
图4示意性地示出了本申请一种预测响应时间计算方法的流程图。
图5示意性地示出了本申请最佳权重值计算方法的流程图。
图6示意性地示出了本申请获取相关性权重值方法的流程图。
图7示意性地示出了本申请数据表分区装置的结构框图。
图8示意性地示出了用于实现本申请实施例的电子设备的计算机系统结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
数据库系统是应用系统最重要的一部分,它存储了企业最重要的信息,是每个企业的宝贵资产。近年来,随着互联网的高速发展,企业应用越来越复杂,数据库中的表越来越宽,数据量越来越大,且数据增速也越来越快。数据库中动辄几个T的数据表数不胜数,这些数据表增速快。但是对于这些表的增删改操作响应时间越来越慢,备份恢复耗时长,且由于超大表的统计信息收集不完,导致sql(结构化查询语言)执行计划时常有问题,查询响应时间不稳定,给数据库带来了可扩展性、可维护性、可靠性和稳定性方面的压力。如何对这些大表做有效的生命周期管理,对其分区,归档历史数据,尽量降低分区操作对业务影响,是迫在眉睫的问题。
本申请为了解决以上的问题,提出了一种数据表分区方法、数据表分区装置、计算机可读介质以及电子设备,能够根据判断条件自动对数据库中的数据表进行分区,以实现提高数据表的响应时间,和提高数据库的可维护性、可靠性和稳定性的效果。
本申请实施例中关于数据表分区后的预测响应时间可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
下面将进一步说明本申请各方面的技术内容。
图1示意性地示出了应用本申请技术方案的示例性系统架构框图。
如图1所示,系统架构100可以包括终端设备110、网络120和服务器130。终端设备110可以包括智能手机、平板电脑、笔记本电脑、台式电脑等各种电子设备。服务器130可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。网络120可以是能够在终端设备110和服务器130之间提供通信链路的各种连接类型的通信介质,例如可以是有线通信链路或者无线通信链路。
根据实现需要,本申请实施例中的系统架构可以具有任意数目的终端设备、网络和服务器。例如,服务器130可以是由多个服务器设备组成的服务器群组。另外,本申请实施例提供的技术方案可以应用于终端设备110,也可以应用于服务器130,或者可以由终端设备110和服务器130共同实施,本申请对此不做特殊限定。
以上部分公开了应用本申请技术方案的示例性系统架构的内容,接下来继续说明本申请其它方面内容。
根据本申请实施例的一个方面,本申请提供一种数据表分区方法,如图2所示,图2示意性地示出了本申请数据表分区方法的流程图,包括步骤S210-步骤S240:
在步骤S210中,获取数据表的当前响应时间和特征参数,当前响应时间包括结构化查询语言对数据表进行增删改所需的时间。
本申请的数据表来自于数据库,而数据库是长期存储在计算机内的,有组织可共享的数据集合。数据库中数据按一定的数据模型组织,描述和储存。数据表是数据的逻辑组织单位,它描述了一个实体,一张数据表可以存放百万条、千万条、上亿条数据。而一个数据库中可以建立许多的数据表。
本申请可以直接从数据库中获取到数据表,其中该数据表可以是较大或者较小的数据表。而数据表包含一些基本的特征参数,特征参数影响了数据表的响应时间。而具体的特征参数包括数据表的:表物理量,代表该数据表的物理量大小;表数据量,代表数据表的数据大小;表宽度,代表数据表的宽度大小;分区数量,代表数据表的当前分区数量;数据增长量,代表数据表的数据增长大小;保存周期,代表数据表在数据库中的时间,单位是天;物理读数,代表数据表的物理读数大小;逻辑读数,代表数据表的逻辑读数大小。以上这些特征参数都是一个具体的数值,都可以直接从数据表中获取,是一个数据表已知的特征参数。而对于包含这些数据表的数据库,一般通过服务器130或者终端设备110进行运行,而数据库的运行主体服务器130和终端设备110也存在一些基础参数,这些基础参数也会一定程度上影响到数据表的响应时间。因此,本申请将这些基础参数一起纳入到数据表的特征参数中,具体包括服务器130或者终端设备110的:中央处理器(CPU)的处理频率,其单位是GHZ;内存量,代表内存大小,单位是M;缓存量,代表缓存大小,单位是G。以上这些数据都可以通过数据表所在的数据库来获得,通过数据库对应的运行主体服务器130或者终端设备110得到以上的基础参数。
本申请不仅获取数据表的特征参数,还会同时获取数据表的当前响应时间。
当前响应时间是结构化查询语言(SQL)对数据表进行增删改所需的时间。SQL(Structured Query Language,结构化查询语言)是用来操作关系数据库的语言。SQL可以对所述数据表进行增删改,具体包括创建数据库和表等对象、删除数据库和表等对象、修改数据库和表等对象的结构。而当前响应时间就是SQL对数据表进行增删改所需的时间。
对于数据表当前响应时间的获取,可以从数据库管理系统的动态性能视图中获取。利用以上方法获取到数据表的当前响应时间和特征参数之后,就可以进行步骤S220。
在步骤S220中,将数据表的特征参数输入预训练的时间预测模型中,得到数据表分区后的预测响应时间,时间预测模型是以分区后的数据表样本为输入,以分区后的数据表样本对应的响应时间为输出,进行机器学习训练的模型。
在进行本申请步骤S220之前,本申请会根据现有足量的已知数据先构建一个时间预测模型,该时间预测模型只要经过一次构建完成之后,就可以重复的使用,以实现对任意数据表分区后的响应时间进行预测。因此,步骤S220在构建完时间预测模型之后,就可以将数据表的特征参数输入预训练的时间预测模型中,得到数据表分区后的预测响应时间。
而本申请对于时间预测模型的构建步骤具体如下,在本申请的一个实施例中,本申请的时间预测模型按照如下方式训练:
将分区后的数据表样本对应的特征参数输入时间预测模型,时间预测模型输出分区后的数据表样本对应的响应时间,与分区后的数据表样本已知响应时间进行比较,如果不一致,则调整时间预测模型中的系数,使时间预测模型输出的分区后的数据表样本对应的响应时间与分区后的数据表样本已知的响应时间一致。
本申请在训练之前,会准备足够数量的分区后数据表样本,这些数据可以根据现有已知的分区后的数据表,从数据库中获取。而获取到的数据表样本中包含了足够数量的数据表,为了提高预测的精确性,一般需要一万张以上的数据表。而这些数据表都包含了两个基本的内容,第一个是数据表的特征参数,对应的是本申请步骤S210中的内容,第二个是数据表的响应时间,对应的是分区后的响应时间。因此,获得这些数据之后,就可以利用数据表的特征参数作为输入,以数据表的响应时间为输出,通过机器学习模型进行训练,以得到本申请的时间预测模型。而本申请可以直接利用卷积神经网络的方法对数据表进行训练,即将数据表的特征参数作为特征输入,将数据表的响应时间作为对应的标签输出,利用以上方法就可以训练得到时间预测模型。
为了提高时间预测模型预测的准确性,本申请还会用一些已知的分区后的数据表作为测试,可以将所有的分区后的数据表样本的90%作为训练集,将其中的10%作为测试集。训练时利用训练集进行训练得到时间预测模型,训练完后,用测试集中的数据表数据对时间预测模型进行测试,具体的测试方法是将测试集中数据表的特征参数输入到时间预测模型中,得到预测的响应时间,与测试集中数据表的真实响应时间对比,根据该对比的误差就可以调整时间预测模型中的系数,使时间预测模型输出的分区后的数据表样本对应的响应时间与分区后的数据表样本已知的响应时间一致,进一步提高时间预测模型预测的准确性。
本申请可以将测试集中所有的数据表都测试一遍,然后将所有的误差求平均数,作为整个时间预测模型的误差,再利用该误差调整时间预测模型的系数,实现对时间预测模型的调整。
利用以上方法可以得到时间预测模型,然而,如果要确保时间预测模型的准确性,就需要非常多的已分区的已知数据表进行训练,这就为获取足量的数据表造成困难。因为数据库中的数据表都是有限的,因此,本申请还提供了另外一种构建时间预测模型的方法,该方法可以是k-重交叉验证法(k-fold crossValidation),具体方法如下。
在本申请的一个实施例中,如图3所示,图3示意性地示出了本申请另一种时间预测模型构建方法的流程图,另一种时间预测模型构建方法包括步骤S310-步骤S330。
步骤S310:从数据库中获取分区后的k个数据表样本,作为训练样本集。
获取到的数据表样本中包含了k个数据表,而这些数据表都包含了数据表的特征参数和数据表的响应时间,以这些样本的集合作为训练样本集。
步骤S320:将训练样本集中的k-1个数据表作为训练集,将另外一个数据表作为测试集,基于训练集来预测测试集的响应时间,并与测试集的实际响应时间进行对比,得到时间预测模型的系数。
本申请每一次都会以任意k-1个数据表作为训练集,利用k-1个数据表作为训练集进行卷积训练,得到一个预测模型,然后以另外的一个数据表作为测试集,基于训练集来预测测试集的响应时间,并与测试集的实际响应时间进行对比,得到时间预测模型的系数。然后在进行步骤S330。
步骤S330:重复进行k次训练,得到k个系数,根据k个系数的平均值计算最佳系数值,利用最佳系数值构建时间预测模型。
重复K次训练,即换另一个数据表作为测试集,其它的k-1个数据表作为训练集,构建预测模型,最后可以得到k个系数,然后将据k个系数求平均值计算最佳系数值,利用最佳系数值构建时间预测模型,就可以得到最终的时间预测模型。
本申请利用k-重交叉验证法可以降低数据表样本的数量,由于每一次都是以任意一个作为测试集,其它的k-1个作为训练集,进行了k次卷积训练,因此,可以大大的提高预测的准确性,而不需要大量的样本来支撑预测结果。
利用以上方法得到时间预测模型是通过时间预测模型对应的最佳系数值,由于本申请的特征参数较多,因此,对于结果与特征的关系存在较多的系数,这些系数对应的就是不同特征参数的权重值,因此,可以利用这些权重值计算的预测响应时间。
具体的,在本申请的一个实施例中,如图4所示,图4示意性地示出了本申请一种预测响应时间计算方法的流程图。将数据表的特征参数输入预训练的时间预测模型中,得到数据表分区后的预测响应时间的方法,包括步骤S410-步骤S420:
步骤S410:通过预训练的时间预测模型,得到最佳权重值,最佳权重值用于根据数据表的特征参数计算数据表分区后的预测响应时间。
最佳权重值对应的是每一个特征参数的最佳权重,利用最佳权重值就可以会计算出数据表分区后的预测响应时间,计算的方法如步骤S420。
步骤S420:将最佳权重值代入预测时间计算公式中,得到数据表分区后的预测响应时间,预测时间计算公式如下:
其中,y表示数据表分区后的预测响应时间,x1表示数据表所在服务器的中央处理器的处理频率,x2表示数据表所在服务器的内存量,x3表示数据表所在服务器的缓存量,x4表示数据表物理量,x5表示数据表数据量,x6表示数据表的宽度,x7表示数据表的分区数量,x8表示数据表的数据增长量,x9表示数据表的保存周期,x10表示数据表的物理读数:x11表示数据表的逻辑读数,a0-ak表示权重值。
利用以上公式就可以计算出数据表分区后的预测响应时间y的值,其中包括了以上十一个特征参数,每个特征参数都有一个权重值,对应a1-ak,通过以上公式就可以计算得出数据表分区后的预测响应时间。
利用以上方法计算数据表分区后的预测响应时间需要利用最佳权重值,而本申请获得最佳权重值的方法具体如下。
如图5所示,图5示意性地示出了本申请最佳权重值计算方法的流程图。在本申请的一个实施例中,通过预训练的时间预测模型,得到最佳权重值的方法,包括步骤S510-步骤S530。
步骤S510:将数据分区后的k个数据表和对应数据表样本的响应时间组合,形成训练数据表集;
步骤S520:将训练数据表集中的k-1个数据表作为训练集,将另外一个数据表作为测试集,基于训练集来预测测试集的响应时间,并与测试集的实际响应时间进行对比,得到权重值误差;
步骤S530:重复进行k次训练,得到k个权重值误差,根据k个权重值误差的平均值计算得出最佳权重值。
其中,步骤S510-步骤S530与上述步骤S310-步骤S330相似,都是利用k-重交叉验证法(k-fold crossValidation)来获得一个最佳的值,下面将举例来说明步骤S510-步骤S530的内容。
选取一个数据库,其中包含了300个分区后的数据表,将数据分区后的300个数据表和对应数据表样本的响应时间组合,形成训练数据表集。然后将训练数据表集中的209个数据表作为训练集,将另外一个数据表作为测试集,基于训练集来预测测试集的响应时间,并与测试集的实际响应时间进行对比,得到权重值误差。其中,此处的权重值误差有12个,分别对应的是a0-a11,其中a0代表的是权重调整值,该权重值是作为总的调整权重,与每个特征参数不直接对应,而其它的a1-a11就对应的是十一个特征参数x1-11。因此,通过将任意1个数据表作为测试集,将其它209个数据表作为训练集进行卷积训练后,都会基于训练集来预测测试集的响应时间,并与测试集的实际响应时间进行对比,得到十二个权重值误差,例如得到的a0-a11分别十二个数值。因此,当进行300次的重复训练和验证后,得到了300组权重值误差,这时,就可以针对每一个特征参数的权重值求平均数,得到了最佳权重值,其中最佳权重值包含了十二个具体的权重值a0-a11,对应的也是一个具体的数值,此时,将数据表的特征参数输入以最佳权重值为系数的时间预测模型中,直接代入到步骤S420的预测时间计算公式中,就可以计算得出数据表分区后的预测响应时间的值。
通过以上方法可以计算得出最佳权重值的大小,但是由于存在多个特征参数,有些时候,一些特征参数与最终的数据表分区后的预测响应时间并无关系,因此,就需要将这些特征参数剔除,只保留与数据表分区后的预测响应时间相关的权重值。
具体的,如图6所示,图6意性地示出了本申请获取相关性权重值方法的流程图。在本申请的一个实施例中,在根据k个权重值误差的平均值计算得出最佳权重值之后,所述方法还包括步骤S610-步骤S620。
步骤S610:使用P值假定方法确定最佳权重值中各个权重值的显著性水平,显著性水平用于表示权重值对应的特征参数与数据表分区后的预测响应时间的相关性。
P值假定方法(p-value)的作用是就是用来判断H0假设是否成立的依据。因为期望值是基于H0假设得出的,如果观测值与期望值越一致,则说明检验现象与零假设越接近,则越没有理由拒绝零假设。如果观测值与期望值越偏离,说明零假设越站不住脚,则越有理由拒绝零假设,从而推出对立假设的成立。而使用P值假定方法确定最佳权重值中各个权重值的显著性水平的思路是做出H0,H1这对互斥的假设,计算出H0为真时的期望值,统计出实际的观测值,通过期望值和观测值求得chi-square(卡方),再通过查询卡方分布表,得到p值。根据p值与α(1-置信度)的比较,如果p-value<α,则拒绝(reject)H0,推出H1成立;如果p-value>α,则接受(accpet)H0,推出H1不成立。
其中,假设H0就代表权重值与预测响应时间相关,而假设H1就对应的是权重值与预测响应时间不相关,而其中的置信度是指总体参数值落在样本统计值某一区内的概率;而置信区间是指在某一置信水平下,样本统计值与总体参数值间误差范围。置信区间越大,置信水平越高。一般置信度取值为95%,即错误拒绝H0的概率为0.05。展开解释就是,我们有95%的概率确信检验结果正确,有5%的概率会错误拒绝虚无假设。而卡方分布表是已知的表格,而chi-square(卡方)的计算公式也是已知的,因此,通过以上步骤就可以计算得到各个权重值的显著性水平。
利用以上方法可以得到各个权重值的显著性水平,此时就可以进行步骤S620。
步骤S620:将显著性水平小于显著性阈值的各个权重值保留。
该步骤即将各个权重值的显著性水平和显著性阈值进行对比,将显著性水平小于显著性阈值的各个权重值保留。显著性阈值可以根据显著性的要求来预设,可以设置为5%,当然也可以根据相关性来预设,如果需要相关性较强,那么该显著性阈值就较小,最后保留的权重值较少,而如果需要相关性较弱,那么该显著性阈值就较大,最后保留的权重值较多。通过本申请步骤S610-步骤S620就可以去除一部分权重值,而只保留与数据表分区后的预测响应时间相关性高的权重值,例如,通过步骤S610-步骤S620最后排除了a1、a2、a5,而保留了其它的权重值,此时对于预测响应时间的计算,对应的a1、a2、a5的中央处理器的处理频率,数据表所在服务器的内存量,数据表数据量,这三个特征参数就不予考虑,不计入到预测响应时间的计算中。
本申请还可以利用以下方法来评价本申请表达数据表分区后的预测响应时间与所有特征参数之间的总体关系。
在本申请的一些实施例中,基于以上技术方案,在根据k个权重值误差的平均值计算得出最佳权重值之后,本申请对应的方法还包括:
使用校正决定系数(Adjusted R-Square)调整时间预测模型,校正决定系数用于抵消样本数量对决定系数的影响。
Adjusted R-Square的作用是抵消样本数量对R-Square(决定系数R方)的影响,从而更能用一个0~1的数字描述回归模型的拟合情况好坏。其中Adjusted R-Square具体的计算公式如下:
其中,n为样本数量,p为特征数量。即样本为n个[x1,x2,x3,…,xp,y]。对应本申请的n为数据表的数量,p为其中的特征参数的数量,一共有11个。通过以上方法可以提高时间预测模型的拟合优度。拟合优度(Goodness of Fit)是指回归直线对观测值的拟合程度。度量拟合优度的统计量是可决系数(亦称确定系数)R2。R2最大值为1。R2的值越接近1,说明回归直线对观测值的拟合程度越好;反之,R2的值越小,说明回归直线对观测值的拟合程度越差。R2衡量的是回归方程整体的拟合度,是表达因变量与所有自变量之间的总体关系。R2等于回归平方和在总平方和中所占的比率,即回归方程所能解释的因变量变异性的百分比(在MATLAB中,R2=1-"回归平方和在总平方和中所占的比率")。对应本申请即表达数据表分区后的预测响应时间(因变量)与所有特征参数(自变量)之间的总体关系。
因此,利用校正决定系数(Adjusted R-Square)可以进一步的调整时间预测模型,抵消时间预测模型中样本数量对R-Square(决定系数R方)的影响,从而更能用一个0~1的数字描述回归模型的拟合情况好坏。
通过以上方法可以更精确的得到分区后的预测响应时间,就可以继续进行步骤S230。
在步骤S230中,计算数据表的当前响应时间与数据表分区后的预测响应时间之间的响应时间差。
其中,响应时间差是将数据表的当前响应时间与数据表分区后的预测响应时间进行数学运算得到的,具体的,在本申请的一个实施例中,计算数据表的当前响应时间与数据表分区后的预测响应时间之间的响应时间差的方法,包括:
将数据表的当前响应时间减去数据表分区后的预测响应时间,得到响应时间差;通过该计算方法得到的是一个时间长短,例如,某一数据表的分区后的预测响应时间为0.4ms,而该数据表的当前响应时间1ms,那么将两者做差得出的0.6ms就是一个时间长度。
本申请还可以将数据表的当前响应时间除以数据表分区后的预测响应时间,得到响应时间差。通过该计算方法得到的是一个百分比大小,例如,某一数据表的分区后的预测响应时间为0.4ms,而该数据表的当前响应时间1ms,那么将两者做商得出的40%。
本申请还可以将数据表的当前响应时间减去预测响应时间后除以当前响应时间,得到的就是一个时间的提升比例,例如,某一数据表的分区后的预测响应时间为0.4ms,而该数据表的当前响应时间1ms,那么两者的时间提升比例就是60%。
通过以上步骤得到了响应时间差,就可以继续本申请的步骤S240。
在步骤S240中,若响应时间差大于预设的时间阈值,则按数据表的属性对数据表进行分区。
预设的时间阈值是一个设定好的确定值,可以根据分区的比例来设定,例如,需要多进行分区的数据库,就可以将预设的时间阈值设定为较小值,此时,满足步骤S240对应条件的数据表就比较多,可以对更多的数据表进行分区。相反,如果分区比例较低的,就可以将该预设的时间阈值设定为较大值,此时,只有进行预测分区后的响应时间有较大减少时,才进行分区。
本申请可以将预设的时间阈值设定为20%,其中该阈值可以用于评价步骤S230中将数据表的当前响应时间减去预测响应时间后除以当前响应时间后得到响应时间差的计算方法,即表示的是时间缩短比例。例如,步骤S230中举例说中的时间缩短比例是60%,此时,由于响应时间差大于预设的时间阈值,就可以对该数据表进行分区。
而对应步骤S230中的将数据表的当前响应时间除以数据表分区后的预测响应时间,得到响应时间差,可以将预设的时间阈值设定为0.2ms,例如,步骤S230中举例说中的时间缩短量是0.6ms,此时,由于响应时间差大于预设的时间阈值,就可以对该数据表进行分区。
本申请对数据表进行分区的方法是按数据表的属性。对于数据表而言,其本身存在许多的列,每一列就对应于数据表的属性,因此,本申请具体分析的方法可以根据预先设定的分区办法来对数据表进行分区,而分区办法是直接写入到表定义的代码中的,当需要对数据表进行分区时,自动的就会援引出对应分区的代码来实现对数据表进行分区。
例如,本申请可以根据数据表的创建时间或插入时间这两个属性作为分区的依据,例如某个数据表被定义为每天自动分区,那么,就可以通过设定零点这一时间对数据表进行分区,对应的,数据表的创建时间或插入时间为零点时,进行数据表分区。而本申请还可以基于数据表的其它属性对数据表进行分区,对于数据表的每一列都可以作为分区键。
而本申请对于时间的分区还可以根据数据表中数据量的大小,例如,一个数据表中的月数据量大于30G,那么就定义该数据表每日一分区,在每日的零点,根据数据表的创建时间或插入时间对应零点进行分区。当一个数据表中的月数据量大于10G而且小于30G时,那么就定义该数据表每周一分区,即每周一的零点,根据数据表的创建时间或插入时间对应时间为每周一零点进行分区。当一个数据表中的月数据量小于10G时,那么就定义该数据表每月一分区,每月1号的零点对该数据表进行分区,根据数据表的创建时间或插入时间对应时间为每月1号的零点进行分区。因此,对于数据表的具体分区方法是根据预先设定的分区规则定义的,分区的方法较为灵活,有利于对数据表的分区操作。
通过以上方法就可以自动判断数据库中的数据表是否进行分区,可以减少人工判断带来的误差同时提高效率,而且,有助于数据库的管理。
在本申请实施例提供的技术方案中,本申请通过获取数据表的当前响应时间和特征参数,将数据表的特征参数输入预训练的时间预测模型中,得到数据表分区后的预测响应时间,然后计算数据表的当前响应时间与数据表分区后的预测响应时间之间的响应时间差,最后判断这个响应时间差是否大于预设的时间阈值,若大于预设的时间阈值,则对数据表进行分区;利用本申请的技术方案可以获得一个分区后的预测响应时间,从而利用预测响应时间与当前响应时间的差值来自动判断数据表是否应该分区,因此,可以合理的对数据表进行分区规划,从而提高数据表的响应时间,同时避免了不该分区的数据表分区,提高了系统的性能,提高了数据库的可维护性、可靠性和稳定性。
以上部分介绍了本申请对应方法的内容,接下来继续说明本申请其它方面的内容。
根据本申请实施例的一个方面,提供一种数据表分区装置,如图7所示,图7意性地示出了本申请数据表分区装置的结构框图。数据表分区装置700包括:
获取模块710:被配置为获取数据表的当前响应时间和特征参数,当前响应时间包括结构化查询语言对数据表进行增删改所需的时间;
预测模块720,被配置为将数据表的特征参数输入预训练的时间预测模型中,得到数据表分区后的预测响应时间,时间预测模型是以分区后的数据表样本为输入,以分区后的数据表样本对应的响应时间为输出,进行机器学习训练的模型;
计算模块730,被配置为计算数据表的当前响应时间与数据表分区后的预测响应时间之间的响应时间差;
分区模块740,被配置为若响应时间差大于预设的时间阈值,则按数据表的属性对数据表进行分区。
在本申请的一些实施例中,基于以上技术方案,预测模块720包括:
权重计算单元,被配置为通过预训练的时间预测模型,得到最佳权重值,最佳权重值用于根据数据表的特征参数计算数据表分区后的预测响应时间;
预测单元,被配置为将最佳权重值代入预测时间计算公式中,得到数据表分区后的预测响应时间,预测时间计算公式如下:
其中,y表示数据表分区后的预测响应时间,x1表示数据表所在服务器的中央处理器的处理频率,x2表示数据表所在服务器的内存量,x3表示数据表所在服务器的缓存量,x4表示数据表物理量,x5表示数据表数据量,x6表示数据表的宽度,x7表示数据表的分区数量,x8表示数据表的数据增长量,x9表示数据表的保存周期,x10表示数据表的物理读数:x11表示数据表的逻辑读数,a0-ak表示权重值。
在本申请的一些实施例中,基于以上技术方案,权重计算单元包括:
数据处理单元,被配置为将数据分区后的k个数据表和对应数据表样本的响应时间组合,形成训练数据表集;
误差计算单元,被配置为将训练数据表集中的k-1个数据表作为训练集,将另外一个数据表作为测试集,基于训练集来预测测试集的响应时间,并与测试集的实际响应时间进行对比,得到权重值误差;
最佳权重单元,被配置为重复进行k次训练,得到k个权重值误差,根据k个权重值误差的平均值计算得出最佳权重值。
在本申请的一些实施例中,基于以上技术方案,权重计算单元还包括:
显著性计算单元,被配置为使用P值假定方法确定最佳权重值中各个权重值的显著性水平,显著性水平用于表示权重值对应的特征参数与数据表分区后的预测响应时间的相关性;
筛选单元,被配置为将显著性水平小于显著性阈值的各个权重值保留。
在本申请的一些实施例中,基于以上技术方案,权重计算单元还包括:
校正单元,被配置为使用校正决定系数调整时间预测模型,校正决定系数用于抵消样本数量对决定系数的影响。
在本申请的一些实施例中,基于以上技术方案,时间预测模型按照如下方式训练:
将分区后的数据表样本对应的特征参数输入时间预测模型,时间预测模型输出分区后的数据表样本对应的响应时间,与分区后的数据表样本已知响应时间进行比较,如果不一致,则调整时间预测模型中的系数,使时间预测模型输出的分区后的数据表样本对应的响应时间与分区后的数据表样本已知的响应时间一致。
在本申请的一些实施例中,基于以上技术方案,计算模块730被配置为将数据表的当前响应时间减去数据表分区后的预测响应时间,得到响应时间差;或将数据表的当前响应时间除以数据表分区后的预测响应时间,得到响应时间差。
本申请各实施例中提供的数据表分区装置的具体细节已经在对应的方法实施例中进行了详细的描述,此处不再赘述。
以上部分介绍了本申请数据表分区装置的内容,接下来继续介绍其它方面内容。
根据本申请实施例的一个方面,本申请还提供一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如以上技术方案中的数据表分区方法。
根据本申请实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器被配置为经由执行可执行指令来执行如以上技术方案中的数据表分区方法。
根据本申请实施例的一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上技术方案中的数据表分区方法。
图8示意性地示出了用于实现本申请实施例的电子设备的计算机系统结构框图。
需要说明的是,图8示出的电子设备的计算机系统800仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理器801(Central Processing Unit,CPU),其可以根据存储在只读存储器802(Read-Only Memory,ROM)中的程序或者从存储部分808加载到随机访问存储器803(Random Access Memory,RAM)中的程序而执行各种适当的动作和处理。在随机访问存储器803中,还存储有系统操作所需的各种程序和数据。中央处理器801、在只读存储器802以及随机访问存储器803通过总线804彼此相连。输入/输出接口805(Input/Output接口,即I/O接口)也连接至总线804。
以下部件连接至输入/输出接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如局域网卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至输入/输出接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本申请的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理器801执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (8)
1.一种数据表分区方法,其特征在于,包括:
获取数据表的当前响应时间和特征参数,所述当前响应时间包括结构化查询语言对所述数据表进行增删改所需的时间;
将所述数据表的特征参数输入预训练的时间预测模型中,得到所述数据表分区后的预测响应时间,所述时间预测模型是以分区后的数据表样本为输入,以分区后的数据表样本对应的响应时间为输出,进行机器学习训练的模型;机器学习训练的方法包括卷积神经网络的方法或k重交叉验证法;
计算所述数据表的当前响应时间与所述数据表分区后的预测响应时间之间的响应时间差;
若所述响应时间差大于预设的时间阈值,则按所述数据表的属性对所述数据表进行分区;
其中,将所述数据表的特征参数输入预训练的时间预测模型中,得到所述数据表分区后的预测响应时间,包括:通过预训练的时间预测模型,得到最佳权重值,所述最佳权重值用于根据所述数据表的特征参数计算所述数据表分区后的预测响应时间;将所述最佳权重值代入预测时间计算公式中,得到所述数据表分区后的预测响应时间,所述预测时间计算公式如下:
其中,y表示数据表分区后的预测响应时间,xk包括x1至x11,x1表示数据表所在服务器的中央处理器的处理频率,x2表示数据表所在服务器的内存量,x3表示数据表所在服务器的缓存量,x4表示数据表物理量,x5表示数据表数据量,x6表示数据表的宽度,x7表示数据表的分区数量,x8表示数据表的数据增长量,x9表示数据表的保存周期,x10表示数据表的物理读数:x11表示数据表的逻辑读数,a0-ak表示权重值,ak包括a1至a11;
通过预训练的时间预测模型,得到最佳权重值,包括:将数据分区后的k个数据表和对应数据表样本的响应时间组合,形成训练数据表集;将所述训练数据表集中的k-1个数据表作为训练集,将另外一个数据表作为测试集,基于所述训练集来预测测试集的响应时间,并与所述测试集的实际响应时间进行对比,得到权重值误差;重复进行k次训练,得到k个权重值误差,根据所述k个权重值误差的平均值计算得出最佳权重值。
2.根据权利要求1所述的数据表分区方法,其特征在于,在根据所述k个权重值误差的平均值计算得出最佳权重值之后,所述方法还包括:
使用P值假定方法确定所述最佳权重值中各个权重值的显著性水平,所述显著性水平用于表示所述权重值对应的特征参数与所述数据表分区后的预测响应时间的相关性;
将显著性水平小于显著性阈值的各个权重值保留。
3.根据权利要求1所述的数据表分区方法,其特征在于,在根据所述k个权重值误差的平均值计算得出最佳权重值之后,所述方法还包括:
使用校正决定系数调整所述时间预测模型,所述校正决定系数用于抵消样本数量对决定系数的影响。
4.根据权利要求1所述的数据表分区方法,其特征在于,所述时间预测模型按照如下方式训练:
将分区后的数据表样本对应的特征参数输入所述时间预测模型,所述时间预测模型输出分区后的数据表样本对应的响应时间,与分区后的数据表样本已知响应时间进行比较,如果不一致,则调整所述时间预测模型中的系数,使所述时间预测模型输出的分区后的数据表样本对应的响应时间与分区后的数据表样本已知的响应时间一致。
5.根据权利要求1所述的数据表分区方法,其特征在于,计算所述数据表的当前响应时间与所述数据表分区后的预测响应时间之间的响应时间差,包括:
将所述数据表的当前响应时间减去所述数据表分区后的预测响应时间,得到响应时间差;或
将所述数据表的当前响应时间除以所述数据表分区后的预测响应时间,得到响应时间差。
6.一种数据表分区装置,其特征在于,包括:
获取模块:被配置为获取数据表的当前响应时间和特征参数,所述当前响应时间包括结构化查询语言对所述数据表进行增删改所需的时间;
预测模块,被配置为将所述数据表的特征参数输入预训练的时间预测模型中,得到所述数据表分区后的预测响应时间,所述时间预测模型是以分区后的数据表样本为输入,以分区后的数据表样本对应的响应时间为输出,进行机器学习训练的模型;机器学习训练的方法包括卷积神经网络的方法或k重交叉验证法;
计算模块,被配置为计算所述数据表的当前响应时间与所述数据表分区后的预测响应时间之间的响应时间差;
分区模块,被配置为若所述响应时间差大于预设的时间阈值,则按所述数据表的属性对所述数据表进行分区;
其中,将所述数据表的特征参数输入预训练的时间预测模型中,得到所述数据表分区后的预测响应时间,包括:通过预训练的时间预测模型,得到最佳权重值,所述最佳权重值用于根据所述数据表的特征参数计算所述数据表分区后的预测响应时间;将所述最佳权重值代入预测时间计算公式中,得到所述数据表分区后的预测响应时间,所述预测时间计算公式如下:
其中,y表示数据表分区后的预测响应时间,xk包括x1至x11,x1表示数据表所在服务器的中央处理器的处理频率,x2表示数据表所在服务器的内存量,x3表示数据表所在服务器的缓存量,x4表示数据表物理量,x5表示数据表数据量,x6表示数据表的宽度,x7表示数据表的分区数量,x8表示数据表的数据增长量,x9表示数据表的保存周期,x10表示数据表的物理读数:x11表示数据表的逻辑读数,a0-ak表示权重值,ak包括a1至a11;
通过预训练的时间预测模型,得到最佳权重值,包括:将数据分区后的k个数据表和对应数据表样本的响应时间组合,形成训练数据表集;将所述训练数据表集中的k-1个数据表作为训练集,将另外一个数据表作为测试集,基于所述训练集来预测测试集的响应时间,并与所述测试集的实际响应时间进行对比,得到权重值误差;重复进行k次训练,得到k个权重值误差,根据所述k个权重值误差的平均值计算得出最佳权重值。
7.一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1至5中任意一项所述的数据表分区方法。
8.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至5中任意一项所述的数据表分区方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111152116.3A CN113886360B (zh) | 2021-09-29 | 2021-09-29 | 数据表分区方法、装置、计算机可读介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111152116.3A CN113886360B (zh) | 2021-09-29 | 2021-09-29 | 数据表分区方法、装置、计算机可读介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113886360A CN113886360A (zh) | 2022-01-04 |
CN113886360B true CN113886360B (zh) | 2024-05-24 |
Family
ID=79008148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111152116.3A Active CN113886360B (zh) | 2021-09-29 | 2021-09-29 | 数据表分区方法、装置、计算机可读介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113886360B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114996342B (zh) * | 2022-06-27 | 2024-09-03 | 平安银行股份有限公司 | 一种连接池分池方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111694814A (zh) * | 2020-05-27 | 2020-09-22 | 平安银行股份有限公司 | 日期分区表批量扩展方法、装置、计算机设备及存储介质 |
CN111767268A (zh) * | 2020-06-23 | 2020-10-13 | 平安普惠企业管理有限公司 | 数据库表分区方法、装置、电子设备及存储介质 |
-
2021
- 2021-09-29 CN CN202111152116.3A patent/CN113886360B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111694814A (zh) * | 2020-05-27 | 2020-09-22 | 平安银行股份有限公司 | 日期分区表批量扩展方法、装置、计算机设备及存储介质 |
CN111767268A (zh) * | 2020-06-23 | 2020-10-13 | 平安普惠企业管理有限公司 | 数据库表分区方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113886360A (zh) | 2022-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115394358B (zh) | 基于深度学习的单细胞测序基因表达数据插补方法和系统 | |
CN112328909A (zh) | 信息推荐方法、装置、计算机设备及介质 | |
CN110728313B (zh) | 一种用于意图分类识别的分类模型训练方法及装置 | |
CN111339396B (zh) | 提取网页内容的方法、装置和计算机存储介质 | |
CN116822803B (zh) | 基于智能算法的碳排放数据图构建方法、装置与设备 | |
CN111611390B (zh) | 一种数据处理方法及装置 | |
CN110659268A (zh) | 基于聚类算法的数据填充方法、装置及计算机设备 | |
CN113886360B (zh) | 数据表分区方法、装置、计算机可读介质及电子设备 | |
CN108550019B (zh) | 一种简历筛选方法及装置 | |
CN113642727A (zh) | 神经网络模型的训练方法和多媒体信息的处理方法、装置 | |
CN117422182A (zh) | 数据预测方法、装置及存储介质 | |
CN113761193A (zh) | 日志分类方法、装置、计算机设备和存储介质 | |
CN114510980A (zh) | 模型特征获取方法及装置、电子设备、存储介质 | |
CN114238106A (zh) | 测试时间预测方法及装置、电子设备、存储介质 | |
CN113408724A (zh) | 模型压缩方法及装置 | |
US11830081B2 (en) | Automated return evaluation with anomoly detection | |
CN113868438B (zh) | 信息可信度的校准方法、装置、计算机设备及存储介质 | |
CN117390465B (zh) | 一种工作负载预测方法 | |
US11669681B2 (en) | Automated calculation predictions with explanations | |
CN116307742B (zh) | 一种细分客群的风险识别方法、装置、设备及存储介质 | |
CN114723173A (zh) | 基于garch模型的天然气负荷波动对称性分析方法及系统 | |
CN116502120A (zh) | 一种数据筛查方法、装置及系统 | |
CN114386520A (zh) | 基于梯度提升回归的gc预警方法、系统及存储介质 | |
CN118673397A (zh) | 一种基于神经网络的网络数据识别方法及系统 | |
CN118551880A (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 |