本技术涉及数据库,尤其涉及一种数据库请求分发模型的训练方法及装置、电子设备。
背景技术:
1、数据库请求是指用户发起请求经过数据库连接池与postgresql服务器建立连接(长连接),数据库线程获取到sql语句进行分析解析,将sql语句转换为抽象语法树后执行事务。
2、在高并发业务场景下,目前请求的流量分配大部分都是基于平均分配的形式,如纪念币发行的场景,会将高并发预约的数据库请求平均分配给多台数据库服务器。
3、此种方式的问题主要在于数据库处理请求的时间是无法保证平均的,随着时间的推移,一样会导致数据负载不均衡的问题,而且不同数据库服务器的处理效率的差异也会影响此种方式的效果。
技术实现思路
1、本技术实施例提供了一种数据库请求分发模型的训练方法及装置、电子设备,以实现数据库请求的实时分配,提高数据库系统的整体运行效率。
2、本技术实施例采用下述技术方案:
3、第一方面,本技术实施例提供一种数据库请求分发模型的训练方法,所述数据库请求分发模型的训练方法包括:
4、构建数据库请求分发模型的样本池;
5、从所述样本池中获取数据库请求分发模型的训练样本数据,所述训练样本数据包括各个数据库服务器的当前时刻的状态特征参数、当前时刻的请求分发方案、当前时刻的请求分发方案对应的奖励值以及下一时刻的状态特征参数;
6、根据所述数据库请求分发模型的训练样本数据,采用自监督算法训练数据库请求分发模型;
7、获取历史分发数据,并利用所述历史分发数据对所述数据库请求分发模型进行动态更新。
8、可选地,所述构建数据库请求分发模型的样本池包括:
9、随机采样各个数据库服务器的当前时刻的状态参数;
10、将随机采样的当前时刻的状态参数转换为当前时刻的状态特征参数;
11、将当前时刻的状态特征参数输入数据库请求分发模型的当前策略网络,得到当前时刻的请求分发方案;
12、执行所述当前时刻的请求分发方案,得到当前时刻的请求分发方案对应的奖励值以及各个数据库服务器的下一时刻的状态特征参数;
13、将各个数据库服务器的当前时刻的状态特征参数、当前时刻的请求分发方案及对应的奖励值以及下一时刻的状态特征参数构成训练样本数据并存储至所述样本池中。
14、可选地,所述当前时刻的请求分发方案对应的奖励值通过如下方式得到:
15、根据状态特征参数在数据库请求分发场景下的重要程度确定状态特征参数的奖励权重;
16、根据当前时刻的状态特征参数和对应的奖励权重计算所述当前时刻的请求分发方案对应的奖励值;
17、其中,所述状态特征参数包括每秒事务处理量、每秒事务执行时间、核心处理器使用率、内存占用率、磁盘存储空间中的至少一个维度。
18、可选地,所述根据当前时刻的状态特征参数和对应的奖励权重计算所述当前时刻的请求分发方案对应的奖励值包括:
19、根据各个数据库服务器的当前时刻的状态特征参数和对应的奖励权重计算各个数据库服务器对应的奖励值;
20、将各个数据库服务器对应的奖励值求平均,作为所述当前时刻的请求分发方案对应的奖励值。
21、可选地,所述根据所述数据库请求分发模型的训练样本数据,采用自监督算法训练数据库请求分发模型包括:
22、将当前时刻的状态特征参数和当前时刻的请求分发方案输入数据库请求分发模型的当前价值网络,得到当前时刻的请求分发方案的价值得分;
23、将下一时刻的状态特征参数输入所述数据库请求分发模型的目标策略网络,得到下一时刻的请求分发方案;
24、将下一时刻的状态特征参数和下一时刻的请求分发方案输入所述数据库请求分发模型的目标价值网络,得到下一时刻的请求分发方案的价值得分;
25、根据当前时刻的请求分发方案的价值得分和下一时刻的请求分发方案的价值得分确定数据库请求分发模型的损失值,并利用所述数据库请求分发模型的损失值更新所述数据库请求分发模型的参数。
26、第二方面,本技术实施例还提供一种数据库请求分发方法,所述数据库请求分发方法包括:
27、获取各个数据库服务器的当前时刻的状态参数;
28、将各个数据库服务器的当前时刻的状态参数输入数据库请求分发模型,得到下一时刻的请求分发方案;
29、在接收到下一时刻的数据库请求后,根据所述下一时刻的请求分发方案,将下一时刻的数据库请求分发至相应的数据库服务器上;
30、其中,所述数据库请求分发模型基于前述任一项数据库请求分发模型的训练方法训练得到。
31、可选地,所述根据所述下一时刻的请求分发方案,将下一时刻的数据库请求分发至相应的数据库服务器上包括:
32、利用预设风控策略对所述下一时刻的请求分发方案进行风控处理;
33、在风控处理完成的情况下,将下一时刻的数据库请求分发至相应的数据库服务器上。
34、可选地,所述下一时刻的请求分发方案包括各个数据库服务器在下一时刻被分配的请求数量,所述利用预设风控策略对所述下一时刻的请求分发方案进行风控检查包括:
35、将各个数据库服务器在下一时刻被分配的请求数量分别与预设请求数量阈值进行比较;
36、若各个数据库服务器在下一时刻被分配的请求数量均小于所述预设请求数量阈值,则根据所述下一时刻的请求分发方案,将下一时刻的数据库请求分发至相应的数据库服务器上;
37、否则,则将下一时刻的数据库请求平均分发至各个数据库服务器上。
38、可选地,在根据所述下一时刻的请求分发方案,将下一时刻的数据库请求分发至相应的数据库服务器上之后,所述方法还包括:
39、将下一时刻的请求分发方案作为历史分发数据存储至样本池中,以利用所述样本池中的历史分发数据对所述数据库请求分发模型进行动态更新。
40、第三方面,本技术实施例还提供一种数据库请求分发模型的训练装置,所述数据库请求分发模型的训练装置包括:
41、构建单元,用于构建数据库请求分发模型的样本池;
42、第一获取单元,用于从所述样本池中获取数据库请求分发模型的训练样本数据,所述训练样本数据包括各个数据库服务器的当前时刻的状态特征参数、当前时刻的请求分发方案、当前时刻的请求分发方案对应的奖励值以及下一时刻的状态特征参数;
43、训练单元,用于根据所述数据库请求分发模型的训练样本数据,采用自监督算法训练数据库请求分发模型;
44、更新单元,用于获取历史分发数据,并利用所述历史分发数据对所述数据库请求分发模型进行动态更新。
45、第四方面,本技术实施例还提供一种数据库请求分发装置,所述数据库请求分发装置包括:
46、第二获取单元,用于获取各个数据库服务器的当前时刻的状态参数;
47、输入单元,用于将各个数据库服务器的当前时刻的状态参数输入数据库请求分发模型,得到下一时刻的请求分发方案;
48、分发单元,用于在接收到下一时刻的数据库请求后,根据所述下一时刻的请求分发方案,将下一时刻的数据库请求分发至相应的数据库服务器上;
49、其中,所述数据库请求分发模型基于前述任一项数据库请求分发模型的训练方法训练得到。
50、第五方面,本技术实施例还提供一种电子设备,包括:
51、处理器;以及
52、被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行前述之任一所述数据库请求分发模型的训练方法,或者执行前述之任一所述数据库请求分发方法。
53、第六方面,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行前述之任一所述数据库请求分发模型的训练方法,或者执行前述之任一所述数据库请求分发方法。
54、本技术实施例采用的上述至少一个技术方案能够达到以下有益效果:本技术实施例的数据库请求分发模型的训练方法,先构建数据库请求分发模型的样本池;然后从样本池中获取数据库请求分发模型的训练样本数据,样本池中的训练样本数据包括各个数据库服务器的当前时刻的状态特征参数、当前时刻的请求分发方案、当前时刻的请求分发方案对应的奖励值以及下一时刻的状态特征参数;之后根据数据库请求分发模型的训练样本数据,采用自监督算法训练数据库请求分发模型;最后,获取历史分发数据,并利用历史分发数据对数据库请求分发模型进行动态更新。本技术实施例的数据库请求分发模型的训练方法采用自监督算法训练数据库请求分发模型,可自行进行参数的更新,模型训练好后,参数推荐较快,可秒级调节数据库服务器。此外,模型能够从历史分发数据中进行动态学习,复用历史经验,能够时刻监督数据库服务器的当前状态给予不同的分发决策方案,提高了数据库系统整体的运行效率。