数据库流量控制方法、装置、设备及存储介质与流程

文档序号:33121791发布日期:2023-02-01 04:01阅读:25来源:国知局
数据库流量控制方法、装置、设备及存储介质与流程

1.本发明涉及数据库技术领域,尤其涉及一种数据库流量控制方法、装置、设备及存储介质。


背景技术:

2.随着信息技术的发展,企业通过搭建信息化系统逐步实现无纸化办公,为实现业务互联互通,数据库应运而生。目前,关系型数据库的使用较为普遍,一般情况下,对于数据库而言,数据查询请求最为频繁,上游业务系统或微服务通过查询语句连接数据库进行数据查询,当请求较多或查询的数据量较大时,会大量消耗数据库集群处理器的资源,导致业务整体响应缓慢或异常。现有的解决方式,通常是在上游业务系统或微服务中进行流量管控,当上游请求突增时,通过降低业务系统或微服务自身的处理速度,或者,利用数据库集群自身的限流能力,限制业务流量流入数据库集群的速度,防止下游数据库集群由于压力过大造成宕机。但在上游业务系统或微服务中进行流量管控,或利用数据库集群自身的限流能力,都只能在流量突增时进行限流,对流量的管控具有滞后性,流量管控效果不佳,容易对业务造成较大的影响。


技术实现要素:

3.本发明提供一种数据库流量控制方法、装置、设备及存储介质,用以解决现有的流量管控方式,对流量的管控具有滞后性,流量管控效果不佳,容易对业务造成较大影响的缺陷。
4.本发明提供一种数据库流量控制方法,包括:获取数据库的历史监控数据;所述历史监控数据包括所述数据库的历史流量数据和历史负载信息;基于所述历史监控数据对所述数据库的负载信息进行迭代预测,得到所述数据库的负载预测数据;根据所述负载预测数据确定流量控制策略,并根据所述流量控制策略对所述数据库进行流量控制。
5.根据本发明提供的一种数据库流量控制方法,所述基于所述历史监控数据对所述数据库的负载信息进行迭代预测,得到所述数据库的负载预测数据,包括:以当前时间点为参考时间点,基于所述历史监控数据,选取所述参考时间点之前第一预设时长的监控数据作为预测样本数据;基于所述预测样本数据,对所述数据库在所述参考时间点之后第二预设时长的监控数据进行预测,得到所述数据库的预测监控数据;以所述第二预设时长为滑动步长,对所述参考时间点进行滑动处理,返回并执行所述基于所述历史监控数据,选取所述参考时间点之前第一预设时长的监控数据作为预测样本数据的步骤,直到所述参考时间点为当前时间点之后第三预设时长的时间点时,根据
所述预测监控数据确定所述数据库在当前时间点之后第三预设时长的负载预测数据;其中,所述第一预设时长大于所述第二预设时长,所述第三预设时长小于所述第一预设时长,且大于所述第二预设时长。
6.根据本发明提供的一种数据库流量控制方法,所述预测样本数据包括流量样本和负载样本;所述预测监控数据包括第一预测流量和第一负载预测数据;所述基于所述预测样本数据,对所述数据库在所述参考时间点之后第二预设时长的监控数据进行预测,得到所述数据库的预测监控数据,包括:基于所述预测样本数据中的流量样本,对所述数据库在所述参考时间点之后第二预设时长的流量进行预测,得到第一预测流量;根据所述第一预测流量和所述预测样本数据中的负载样本,对所述数据库在所述参考时间点之后第二预设时长的负载信息进行预测,得到第一负载预测数据。
7.根据本发明提供的一种数据库流量控制方法,所述根据所述负载预测数据确定流量控制策略,包括:确定所述负载预测数据对应的负载梯度区间;根据所述负载梯度区间确定流量控制策略;其中;所述负载梯度区间包括多个,不同的负载梯度区间对应不同的流量控制策略。
8.根据本发明提供的一种数据库流量控制方法,所述流量控制策略包括慢查询终止策略、慢查询过滤策略和优先级策略中的至少一种;若所述流量控制策略包括所述慢查询终止策略,所述根据所述流量控制策略对所述数据库进行流量控制,包括:获取所述数据库当前的目标流量数据;所述目标流量数据包括执行状态为执行中的第一流量数据,以及执行状态为待执行的第二流量数据;从所述第一流量数据中识别出执行时长超过第四预设时长的第一慢查询语句;对所述第一慢查询语句执行终止操作,以对所述数据库进行流量控制。
9.根据本发明提供的一种数据库流量控制方法,若所述流量控制策略包括所述慢查询过滤策略,所述根据所述流量控制策略对所述数据库进行流量控制,包括:从所述第二流量数据中,识别出第二慢查询语句;基于所述第二慢查询语句对所述第二流量数据进行过滤,以对所述数据库进行流量控制。
10.根据本发明提供的一种数据库流量控制方法,若所述流量控制策略包括所述优先级策略,所述根据所述流量控制策略对所述数据库进行流量控制,包括:根据所述历史监控数据确定所述第二流量数据中的各查询语句的历史执行时长;基于所述历史执行时长,确定所述第二流量数据中的各查询语句的响应优先级,根据所述响应优先级对所述数据库进行流量控制。
11.本发明还提供一种数据库流量控制装置,包括:数据采集模块,用于获取数据库的历史监控数据;所述历史监控数据包括所述数据库的历史流量数据和历史负载信息;负载预测模块,用于基于所述历史监控数据对所述数据库的负载信息进行迭代预测,得到所述数据库的负载预测数据;流量控制模块,用于根据所述负载预测数据确定流量控制策略,并根据所述流量
控制策略对所述数据库进行流量控制。
12.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据库流量控制方法。
13.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据库流量控制方法。
14.本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据库流量控制方法。
15.本发明提供的数据库流量控制方法、装置、设备及存储介质,通过获取数据库的历史监控数据对所述数据库的负载信息进行迭代预测,并根据预测得到的负载预测数据确定流量控制策略对数据库进行流量控制。通过对数据库的负载信息进行预测,根据数据库的历史流量数据和历史负载信息,预测数据库的负载趋势,提前确定流量控制策略并对数据库进行流量控制,提高了流量控制的及时性,降低了数据库处理器的负载压力,同时,通过提前进行流量管控减少了流量突增对业务的影响。
附图说明
16.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
17.图1是本发明提供的数据库流量控制方法的流程示意图;图2是本发明提供的迭代预测过程示意图;图3是本发明提供的数据库流量控制装置的结构示意图;图4是本发明提供的电子设备的结构示意图。
具体实施方式
18.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
19.下面结合图1-图4描述本发明的数据库流量控制方法、装置、设备及存储介质。
20.本发明提供的数据库流量控制方法,应用于数据库,特别是关系型数据库,如mysql数据库,可以在不对上游业务系统或微服务进行流量管控的情况下,根据数据库的流量和处理器负载信息,预测处理器的负载趋势,提前对数据库进行管控,降低数据库处理器的压力。具体地,参照图1,图1为本发明实施例提供的数据库流量控制方法的流程示意图,基于图1,本发明实施例提供的数据库流量控制方法,包括:步骤100,获取数据库的历史监控数据;所述历史监控数据包括所述数据库的历史流量数据和历史负载信息;首先,获取数据库的历史监控数据,该历史监控数据包括数据库的历史流量数据
和历史负载信息,该历史负载信息为数据库处理器(cpu)的历史负载信息。可以理解的是,数据库cpu的负载信息不仅与数据库的请求流量相关,还与请求流量中各请求指令对应的计算量相关。以查询请求为例,当查询请求需要查询的数据量较大,或需要跨多张表进行联合查询时,对查询请求的执行就较慢,从而形成慢查询语句。慢查询语句会导致数据库同时执行的任务增加,消耗大量的cpu资源。
21.进一步地,历史监控数据是时序数据,包括数据库流量的时序数据和数据库cpu负载信息的时序数据,是每隔特定时长如10秒,对数据库流量和数据库cpu的负载进行检测并记录得到的。其中,对数据库流量和数据库cpu负载信息的检测,可以是同步进行的,也可以是异步进行的,在此不做限定。
22.步骤200,基于所述历史监控数据对所述数据库的负载信息进行迭代预测,得到所述数据库的负载预测数据;基于获取的历史监控数据对数据库cpu的负载进行迭代预测,得到数据库cpu的负载预测数据,具体地,在预测数据库cpu的负载信息时,基于数据库cpu当前的负载信息,结合数据库的流量数据,对数据库cpu未来一段时间的负载信息进行预测。其中,用于负载预测的流量包括数据库的历史流量数据,以及基于该历史流量数据进行流量预测得到的流量预测数据。
23.进一步地,对数据库cpu的负载信息进行迭代预测,具体是基于历史监控数据,对数据库未来第一时间段的cpu负载信息进行预测,基于预测得到的cpu负载信息和历史监控数据,对数据库未来第二时间段的cpu负载信息进行预测,第一时间段与第二时间段是时间连续且时长相同的。按照此方式,基于对cpu负载信息的前次预测结果,对前次预测时间段未来相同时长的时间段的cpu负载信息进行预测,从而可以基于前期的预测结果对cpu负载信息进行时间连续的滚动预测,得到数据库未来一较长时间段的cpu负载信息的预测数据。
24.步骤300,根据所述负载预测数据确定流量控制策略,并根据所述流量控制策略对所述数据库进行流量控制。
25.根据数据库的负载预测数据确定流量控制策略,从而根据对应的流量控制策略对数据库的流量进行控制。可以理解的是,当数据库的cpu负载不同时,需要对数据库的流量进行不同程度的管控,因此,在进行流量管控时,需要遵循不同的策略。根据负载预测数据对数据库cpu负载进行预测,可以提前预测数据库的流量所需的资源消耗,从而可以提前确定对应的流量控制策略进行流量控制。
26.在本实施例中,通过获取数据库的历史监控数据对所述数据库的负载信息进行迭代预测,并根据预测得到的负载预测数据确定流量控制策略对数据库进行流量控制。通过对数据库的负载信息进行预测,根据数据库的历史流量数据和历史负载信息,预测数据库的负载趋势,提前确定流量控制策略并对数据库进行流量控制,提高了流量控制的及时性,降低了数据库处理器的负载压力,同时,通过提前进行流量管控减少了流量突增对业务的影响。
27.在一较佳的实施例方式中,对数据库的负载信息进行迭代预测,基于经过预训练的预测模型实现,该预测模型是基于深度学习神经网络构建的,深度学习神经网络例如循环神经网络rnn。步骤200中,基于历史监控数据对数据库的负载信息进行迭代预测,得到数据库的负载预测数据,具体包括:
步骤201,以当前时间点为参考时间点,基于所述历史监控数据,选取所述参考时间点之前第一预设时长的监控数据作为预测样本数据;步骤202,基于所述预测样本数据,对所述数据库在所述参考时间点之后第二预设时长的监控数据进行预测,得到所述数据库的预测监控数据;步骤203,以所述第二预设时长为滑动步长,对所述参考时间点进行滑动处理,返回并执行所述基于所述历史监控数据,选取所述参考时间点之前第一预设时长的监控数据作为预测样本数据的步骤,直到所述参考时间点为当前时间点之后第三预设时长的时间点时,根据所述预测监控数据确定所述数据库在当前时间点之后第三预设时长的负载预测数据;其中,所述第一预设时长大于所述第二预设时长,所述第三预设时长小于所述第一预设时长,且大于所述第二预设时长。
28.以当前时间点位参考时间点,基于获取的历史监控数据,选取参考时间点之前第一预设时长的监控数据作为预测样本数据,其中,第一预设时长例如3分钟,获取的历史监控数据可以是近1个月每10秒对数据库进行一次检测得到的监控数据。从历史监控数据中选取前3分钟的监控数据作为预测样本数据,对数据库的监控数据进行预测,得到数据库在参考时间点之后第二预设时长的预测监控数据,其中,第二预设时长小于第一预设时长,第二预设时长例如10秒,以前3分钟的监控数据作为预测基础,对数据库10秒后的监控数据进行预测,得到数据库在参考时间点之后10秒的预测监控数据。
29.进一步地,以第二预设时长为滑动步长,对参考时间点进行滑动处理,然后重新获取参考时间点之前第一预设时长的监控数据作为预测样本数据,对数据库在参考时间点之后第二预设时长的监控数据进行预测。也即,在预测监控数据的基础上,将预测监控数据对应的时间点作为参考时间点,将预测监控数据作为预测样本数据的一部分,参与对数据库在后续时间段的监控数据的预测,从而实现对数据库的监控数据的迭代预测。具体地,以上述3分钟作为第一预设时长、10秒作为第二预设时长为例,根据当前时间点前3分钟的监控数据,预测当前时间点之后10秒的监控数据;根据前2分钟50秒的监控数据,以及经过预测得到的10秒后的监控数据,预测当前时间点之后20秒的监控数据;根据前2分钟40秒数据,以及经过预测得到的20秒后的监控数据,预测当前时间点之后30秒的监控数据;按照此规律依次进行预测,直到预测到当前时间点之后第三预设时长的监控数据时,根据预测监控数据确定数据库在当前时间点之后第三预设时长的负载预测数据。其中,第三预设时长小于第一预设时长,且大于第二预设时长,也即,第三预设时长介于第一预设时长和第二预设时长之间,第三预设时长例如1分钟。
30.参照图2所示的迭代预测的过程示意图,在图2中,第一预设时长为3分钟、第二预设时长为10秒,第三预设时长为1分钟,历史监控数据是每隔10秒对数据库进行一次检测得到的。因此,在图2中,当前时间点之前3分钟的历史监控数据中,包含对数据库进行18次检测得到的监控数据,图中的数字代表检测次序或预测次序,相同的数字表示为同一次检测或预测得到的监控数据。在图2中,对数据库的监控数据进行第一次预测时,以当前时间点位参考时间点、前3分钟18次检测得到的历史监控数据为预测样本数据,预测数据库后10秒的监控数据;然后对参考时间点进行滑动处理,以当前时间点之后10秒的时间点作为参考时间点,以前17次检测得到的历史监控数据,以及第一次预测的监控数据作为预测样本数
据,对数据库的监控数据进行第二次预测,预测数据库在参考时间点之后10秒的监控数据;按照此方式,以滑动窗口的处理方式,对数据库的监控数据进行迭代预测,在完成6次预测后,得到数据库在当前时间点之后1分钟的预测监控数据。
31.进一步地,预测样本数据包括流量样本和负载样本,预测监控数据包括数据库的流量的预测数据和负载信息的预测数据,即第一预测流量和第一负载预测数据。步骤202中,基于预测样本数据,对数据库在参考时间点之后第二预设时长的监控数据进行预测,得到数据库的预测监控数据,具体还包括:步骤2021,基于所述预测样本数据中的流量样本,对所述数据库在所述参考时间点之后第二预设时长的流量进行预测,得到第一预测流量;步骤2022,根据所述第一预测流量和所述预测样本数据中的负载样本,对所述数据库在所述参考时间点之后第二预设时长的负载信息进行预测,得到第一负载预测数据。
32.首先基于预测样本数据中的流量样本,对数据库在参考时间点之后第二预设时长的流量进行预测,得到数据库在参考时间点之后第二预设时长的第一预测流量。在对数据库进行流量预测时,具体是对流量样本进行数据拟合,预测流量变化趋势,基于数据库当前的流量,结合流量变化趋势预测对数据库一段时间后的流量进行预估。
33.根据预测出的流量数据,以及预测样本数据中的负载样本,对数据库在参考时间点之后第二预设时长的负载信息进行预测,从而得到数据库在参考时间点之后第二预设时长的第一负载预测数据。在对数据库在参考时间点之后第二预设时长的负载信息进行预测时,具体是对负载样本进行数据拟合,预测负载变化趋势,在此基础上,基于流量变化趋势和/或第一预测流量,对预测出的负载变化趋势进行调整,根据调整后的负载变化趋势,对数据库在参考时间点之后第二预设时长的负载信息进行预测,得到第一负载预测数据。
34.可知地,基于历史监控数据,可以对未来一定时长的监控数据进行预测,若预测时长较短,无法满足对流量管控及时性的需求,若预测时长较长,则难以保证预测数据的准确性。通过迭代预测的方式,基于历史监控数据预测未来较短时间的监控数据,缩短了预测时长,有利于保证预测数据的准确性;在预测出的监控数据的基础上,对之后的监控数据继续进行预测,可以得到未来更长时间段内的预测监控数据,在保证预测数据准确性的基础上,满足对流量管控及时性的需求。
35.在本实施例中,通过对数据库的监控数据进行迭代预测,不仅可以缩短预测时长,有利于保证预测数据的准确性,还可以得到未来更长时间段内的预测监控数据,在保证预测数据准确性的基础上,满足对流量管控及时性的需求。
36.在一较佳的实施方式中,流量控制策略包括慢查询终止策略、慢查询过滤策略和优先级策略中的至少一种,不同的策略可以单独使用,也可以混合使用,具体地,在步骤300中,根据负载预测数据确定流量控制策略,具体包括:步骤301,确定所述负载预测数据对应的负载梯度区间;步骤302,根据所述负载梯度区间确定流量控制策略;其中;所述负载梯度区间包括多个,不同的负载梯度区间对应不同的流量控制策略。
37.在确定流量控制策略时,首先确定负载预测数据对应的负载梯度区间,根据负载梯度区间,确定流量控制策略。在本实施例中,将数据库的cpu负载划分为多个梯度区间,每个梯度区间对应有cpu负载范围,不同的梯度区间对应不同的流量控制策略,根据负载预测
数据确定预测到的数据库的cpu负载处于哪个梯度区间内,该梯度区间对应的流量控制策略即为最终要用于对数据库进行流量控制的策略。
38.需要说明的是,对数据库的监控数据的预测是动态迭代的,因此,流量控制策略也是动态变化的,具体是随着时间变化,根据最新的负载预测数据对流量控制策略进行动态调整。不同的流量控制策略对流量的控制方式不同,具体地,若流量控制策略包括慢查询终止策略,步骤300中,根据流量控制策略对数据库进行流量控制,包括:步骤303,获取所述数据库当前的目标流量数据;所述目标流量数据包括执行状态为执行中的第一流量数据,以及执行状态为待执行的第二流量数据;步骤304,从所述第一流量数据中识别出执行时长超过第四预设时长的第一慢查询语句;步骤305,对所述第一慢查询语句执行终止操作,以对所述数据库进行流量控制。
39.在对数据库进行流量控制时,首先获取数据库当前的目标流量数据,该目标流量数据中包括执行状态为执行中的第一流量数据,以及执行状态为待执行的第二流量数据。对于执行状态为执行中的第一流量数据,从中识别出执行时长超过第四预设时长的慢查询语句,对该慢查询语句执行终止操作,释放数据库的cpu负载。其中,第四预设时长例如3秒。
40.若流量控制策略包括慢查询过滤策略,则步骤300中,根据流量控制策略对数据库进行流量控制,还可以包括:步骤306,从所述第二流量数据中,识别出第二慢查询语句;步骤307,基于所述第二慢查询语句对所述第二流量数据进行过滤,以对所述数据库进行流量控制。
41.若流量控制策略包括慢查询过滤策略,则从待执行的第二流量数据中,识别出待执行的慢查询语句,基于该慢查询语句对待执行的第二流量数据进行过滤,将识别出的慢查询语句从第二流量数据中过滤出来,并根据过滤出的慢查询语句对数据库进行流量控制。在识别慢查询语句时,可以基于历史监控数据确定各查询语句的执行时长,执行时长超过第四预设时长的查询语句即为慢查询语句,基于待执行的查询语句的类型、查询语句对应的业务类型等,将待执行的查询语句与识别到的慢查询语句进行匹配,从而识别第二流量数据中的慢查询语句。
42.进一步地,若流量控制策略包括优先级策略,则步骤300中,根据流量控制策略对数据库进行流量控制,还可以包括:步骤308,根据所述历史监控数据确定所述第二流量数据中的各查询语句的历史执行时长;步骤309,基于所述历史执行时长,确定所述第二流量数据中的各查询语句的响应优先级,根据所述响应优先级对所述数据库进行流量控制。
43.若流量控制策略包括优先级策略,则根据历史监控数据中的历史流量数据,确定第二流量数据中各查询语句的历史执行时长,该历史执行时长可以是历史记录中多次执行时长的平均值。基于各查询语句的历史执行时长,确定第二流量数据中,各查询语句的响应优先级,根据该响应优先级对数据库进行流量控制。一般地,在设置查询语句的优先级时,对于相同类型的查询语句,执行时长越短的优先级越高,相同负载的情况下,可以并发处理的请求数量也就越多,从而可以减少流量拥堵。
44.进一步地,慢查询终止策略、慢查询过滤策略以及优先级策略可以单独使用,也可以合并使用,例如,若流量控制策略包括慢查询过滤策略和优先级策略,对于待执行的第二流量数据,则可以先基于慢查询过滤策略,对慢查询语句进行过滤,然后基于优先级策略,确定过滤后的流量数据中的各查询语句的响应优先级,根据该响应优先级对数据库进行流量控制。其中,过滤出的慢查询语句的优先级可以是最低的,也可以是最高的,具体根据负载预测数据进行确定,在此不做具体限定。
45.在本实施例中,通过对数据库的负载进行梯度划分,并对不同的负载梯度区间设置不同的流量控制策略,可以根据预测出的负载信息实现对数据库不同程度的流量管控,提高了流量控制的灵活性,进而在环节数据库的负载压力,保证数据库能够正常提供服务的前提下,尽可能的减少了对业务的影响。
46.下面对本发明提供的数据库流量控制装置进行描述,下文描述的数据库流量控制装置与上文描述的数据库流量控制方法可相互对应参照。
47.参照图3,本发明实施例提供的数据库流量控制装置,包括:数据采集模块10,用于获取数据库的历史监控数据;所述历史监控数据包括所述数据库的历史流量数据和历史负载信息;负载预测模块20,用于基于所述历史监控数据对所述数据库的负载信息进行迭代预测,得到所述数据库的负载预测数据;流量控制模块30,用于根据所述负载预测数据确定流量控制策略,并根据所述流量控制策略对所述数据库进行流量控制。
48.在一个实施例中,所述负载预测模块20,还用于:以当前时间点为参考时间点,基于所述历史监控数据,选取所述参考时间点之前第一预设时长的监控数据作为预测样本数据;基于所述预测样本数据,对所述数据库在所述参考时间点之后第二预设时长的监控数据进行预测,得到所述数据库的预测监控数据;以所述第二预设时长为滑动步长,对所述参考时间点进行滑动处理,返回并执行所述基于所述历史监控数据,选取所述参考时间点之前第一预设时长的监控数据作为预测样本数据的步骤,直到所述参考时间点为当前时间点之后第三预设时长的时间点时,根据所述预测监控数据确定所述数据库在当前时间点之后第三预设时长的负载预测数据;其中,所述第一预设时长大于所述第二预设时长,所述第三预设时长小于所述第一预设时长,且大于所述第二预设时长。
49.在一个实施例中,所述预测样本数据包括流量样本和负载样本;所述预测监控数据包括第一预测流量和第一负载预测数据;所述负载预测模块20,还用于:基于所述预测样本数据中的流量样本,对所述数据库在所述参考时间点之后第二预设时长的流量进行预测,得到第一预测流量;根据所述第一预测流量和所述预测样本数据中的负载样本,对所述数据库在所述参考时间点之后第二预设时长的负载信息进行预测,得到第一负载预测数据。
50.在一个实施例中,所述流量控制模块30,还用于:确定所述负载预测数据对应的负载梯度区间;根据所述负载梯度区间确定流量控制策略;其中;所述负载梯度区间包括多个,不
同的负载梯度区间对应不同的流量控制策略。
51.在一个实施例中,所述流量控制策略包括慢查询终止策略、慢查询过滤策略和优先级策略中的至少一种;若所述流量控制策略包括所述慢查询终止策略,所述流量控制模块30,还用于:获取所述数据库当前的目标流量数据;所述目标流量数据包括执行状态为执行中的第一流量数据,以及执行状态为待执行的第二流量数据;从所述第一流量数据中识别出执行时长超过第四预设时长的第一慢查询语句;对所述第一慢查询语句执行终止操作,以对所述数据库进行流量控制。
52.在一个实施例中,若所述流量控制策略包括所述慢查询过滤策略,所述流量控制模块30,还用于:从所述第二流量数据中,识别出第二慢查询语句;基于所述第二慢查询语句对所述第二流量数据进行过滤,以对所述数据库进行流量控制。
53.在一个实施例中,若所述流量控制策略包括所述优先级策略,所述流量控制模块30,还用于:根据所述历史监控数据确定所述第二流量数据中的各查询语句的历史执行时长;基于所述历史执行时长,确定所述第二流量数据中的各查询语句的响应优先级,根据所述响应优先级对所述数据库进行流量控制。
54.图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(communications interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行数据库流量控制方法,该方法包括:获取数据库的查询语句,以及所述查询语句对应的查询计划和数据库外表;根据所述查询计划确定所述查询语句对应的目标查询通道;若所述目标查询通道为第一查询通道,则基于所述数据库外表构建布隆过滤器;基于所述布隆过滤器执行所述查询计划,以获取所述查询语句对应的目标数据。
55.此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
56.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的数据库流量控制方法,该方法包括:获取数据库的历史监控数据;所述历史监控数据包括所述数据库的历史流量数据
和历史负载信息;基于所述历史监控数据对所述数据库的负载信息进行迭代预测,得到所述数据库的负载预测数据;根据所述负载预测数据确定流量控制策略,并根据所述流量控制策略对所述数据库进行流量控制。
57.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的数据库流量控制方法,该方法包括:获取数据库的历史监控数据;所述历史监控数据包括所述数据库的历史流量数据和历史负载信息;基于所述历史监控数据对所述数据库的负载信息进行迭代预测,得到所述数据库的负载预测数据;根据所述负载预测数据确定流量控制策略,并根据所述流量控制策略对所述数据库进行流量控制。
58.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
59.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
60.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1