数据处理方法及装置
文献发布时间:2023-06-19 12:19:35
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种数据处理方法。本说明书一个或者多个实施例同时涉及一种数据处理装置,一种计算设备,以及一种计算机可读存储介质。
背景技术
在对大数据实时分析需要越来越高的互联网时代,用户的数据规模也会随着自身项目发生波动,类似于双十一项目,数据量会爆炸式增长。或者很多电商项目会有很多秒杀项目,而在秒杀活动中数据库的压力也会陡增。对于云数据库而言,用户的项目是多种多样的,而项目的波动也是各不相同。对于双十一的秒杀项目,数据库的压力会随着秒杀项目的变化而变化。例如在秒杀活动进行时,可能需要对数据库进行扩容,以保证数据库的正常数据处理;而在秒杀项目结束后,还需要对数据库缩容,以避免数据库的资源浪费。
因此,如何对数据库进行适应性的扩缩容成为了急需解决的技术问题。
发明内容
有鉴于此,本说明书施例提供了一种数据处理方法。本说明书一个或者多个实施例同时涉及一种数据处理装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种数据处理方法,包括:
获取第一数据节点的运行状态参数,并基于预设特征提取规则提取所述运行状态参数的参数特征;
将所述参数特征输入数据节点决策模型,获得预设时长内所述参数特征对应的数据节点决策结果;
基于所述数据节点决策结果向数据节点资源池发送数据节点调整请求,其中,所述数据节点资源池由第一数据节点和第二数据节点组成;
确定所述数据节点资源池基于所述数据节点调整请求调整所述第一数据节点或第二数据节点后的目标数据节点,并基于所述目标数据节点进行数据处理。
根据本说明书实施例的第二方面,提供了一种数据处理装置,包括:
特征提取模块,被配置为获取第一数据节点的运行状态参数,并基于预设特征提取规则提取所述运行状态参数的参数特征;
节点策略确定模块,被配置为将所述参数特征输入数据节点决策模型,获得预设时长内所述参数特征对应的数据节点决策结果;
请求发送模块,被配置为基于所述数据节点决策结果向数据节点资源池发送数据节点调整请求,其中,所述数据节点资源池由第一数据节点和第二数据节点组成;
节点调整模块,被配置为确定所述数据节点资源池基于所述数据节点调整请求调整所述第一数据节点或第二数据节点后的目标数据节点,并基于所述目标数据节点进行数据处理。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该指令被处理器执行时实现所述数据处理方法的步骤。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述数据处理方法的步骤。
本说明书一个实施例实现了数据处理方法及装置,其中,所述数据处理方法包括获取第一数据节点的运行状态参数,并基于预设特征提取规则提取所述运行状态参数的参数特征;将所述参数特征输入数据节点决策模型,获得预设时长内所述参数特征对应的数据节点决策结果;基于所述数据节点决策结果向数据节点资源池发送数据节点调整请求;确定所述数据节点资源池基于所述数据节点调整请求调整所述第一数据节点或第二数据节点后的目标数据节点,并基于所述目标数据节点进行数据处理。具体的,所述数据处理方法基于当前数据节点的运行状态参数的参数特征以及预先建立的数据节点决策模型,预测出未来时长内数据节点决策结果,基于该数据节点决策结果对未来时长内的数据节点的数量进行调整,在避免频繁的对数据节点的数量进行调整的基础上,可有效的实现对数据节点的扩缩容。
附图说明
图1是本说明书一个实施例提供的一种数据处理方法应用于分布式云数据库的具体场景示意图;
图2是本说明书一个实施例提供的一种数据处理方法的流程图;
图3是本说明书一个实施例提供的一种数据处理方法中数据节点决策模型的具体应用示意图;
图4是本说明书一个实施例提供的一种数据处理方法在分布式云数据库的应用流程图;
图5是本说明书一个实施例提供的一种数据处理装置的结构示意图;
图6是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
分布式数据库:分布式数据库是将物理上分散的多个数据库用计算机网络连接起来而组成的一个逻辑上同一的数据库,并且有一个统一的数据库管理系统(分布式数据库管理系统)进行管理。
OSS:对象存储服务(Object Storage Service,简称OSS),是一种海量、安全、低成本、高可靠的云存储服务。其数据设计持久性不低于99.9999999999%(12个9),服务设计可用性(或项目连续性)不低于99.995%。
Coordinate:协调器,为分布式云数据库的控制节点,用于管理和调度数据节点并进行数据的分发。
实际应用中,为了保证在秒杀项目中,数据库(数据库包括多个数据节点)可以扩容或缩容以适应秒杀项目时数据库对数据的处理。例如,可以通过阈值监控的方式对每个数据节点的运行状态参数进行实时监测,在确定数据节点的运行状态参数大于等于预设参数阈值的情况下,对数据节点扩容,以满足数据处理要求;而在数据节点的运行状态参数小于预设参数阈值的情况下,对数据节点缩容,以避免造成数据资源浪费;但是采用此种方式会使得数据节点的扩缩容很频繁,频繁的数据节点扩缩容将极大的影响数据处理性能,因此为了在此方案的基础上,本说明书实施例还进行以下改进。
在本说明书中,提供了一种数据处理方法,本说明书同时涉及一种数据处理装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
参见图1,图1示出了根据本说明书一个实施例提供的一种数据处理方法应用于分布式云数据库的具体场景示意图。
图1中包括协调器102(Coordinate)、若干个数据节点104、包含若干个数据节点104的资源池106、对象存储服务平台108(OSS)。
其中,协调器102为分布式云数据库的控制节点,主要用于管理和调度数据节点104并进行数据的分发。数据节点104为分布式云数据库的核心,主要用于计算和存储数据,而对于本说明书提供的可弹性伸缩的分布式云数据库而言,可共享的存储是可弹性收缩的关键,数据写入即可读,即数据写入之后就会保存在对象存储服务平台108中,不会因为数据节点104缩容而导致数据的不可读;此外,数据节点104会将实时数据异步的进行索引构建并打包上传到对象存储服务平台108。资源池106为管控部分,用于管理分布式云数据库可用资源(数据节点104),以及分布式云数据库扩缩容与协调器102之间的交互调度。
具体实施时,分布式云数据库启动,协调器102启动,协调器102持有所有数据节点104的心跳和运行状态信息,并且负责所有查询/写入(command)的分发和路由;同时数据节点104的调度任务等也均由协调器102负责,协调器102启动,然后在全部的数据节点104启动后,时刻与数据节点104进行心跳检测和数据传输。数据节点104启动,此时是将默认配置下的数据节点104启动,如果默认配置的为64节点,则将64个数据节点104启动,后续可以再根据实际应用对数据节点104进行扩缩容,即增加数据节点104或者是删减数据节点104。
实际应用中,在分布式云数据库启动、协调器102启动以及数据节点104启动后,将本说明书实施例提供的所述数据处理方法应用于该分布式云数据库中,此时,协调器102获取当前数据节点104的运行状态信息,即运行状态参数;然后对当前数据节点104的运行状态参数进行分析,例如基于预设阈值分析或者是利用预先建立的模型分析;在分析确定当前数据节点104需要扩容的情况下,向资源池106发送扩容请求,从资源池106中调度适量的数据节点104与当前数据节点104一起进行数据处理;而在分析确定当前数据节点104需要缩容的情况下,分析需要哪个数据节点104进行缩容,也向资源池106发送缩容请求,然后停止需要缩容的数据节点104的数据处理服务,等待资源池106将需要缩容的数据节点104回收;其中,数据处理包括但不限于数据查询、数据写入等。
而为了保证在数据节点104扩缩容的情况下,不会造成数据的丢失,数据节点104在运行的过程中,数据节点104会将实时数据异步的进行索引构建并打包传输到对象存储服务平台108中,可以做到数据写入即可读,可以满足后续分布式云数据库的可弹性收缩。
参见图2,图2示出了根据本说明书一个实施例提供的一种数据处理方法的流程图,具体包括以下步骤。
步骤202:获取第一数据节点的运行状态参数,并基于预设特征提取规则提取所述运行状态参数的参数特征。
其中,第一数据节点为运行中的数据节点,在该数据处理方法应用于分布式云数据库中,第一数据节点可以理解为运行中的多个数据节点。
具体的,在分布式云数据库运行的过程中,协调器获取第一数据节点的运行状态参数,并基于预设特征提取规则提取所述运行状态参数的参数特征;其中,运行状态参数包括但不限于CPU(Central Processing Unit,中央处理器)使用率,当前IOPS(Input/OutputOperations Per Second,每秒的输入输出量或读写次数),当前QPS(每秒查询率),当前数据节点的连接数,当前磁盘使用率等等。
其中,预设特征提取规则可以根据实际应用进行设置,本说明书对此不做任何限定,例如提取运行状态参数的均值、最大值、最小值、中位数以及90分位数等参数特征。
举例说明,若运行状态参数为CPU使用率,当前IOPS,当前QPS,当前数据节点的连接数以及当前磁盘使用率;预设特征提取规则为提取运行状态参数的均值、最大值、最小值、中位数以及90分位数等参数特征;则获取第一数据节点的运行状态参数,并基于预设特征提取规则提取所述运行状态参数的参数特征,可以理解为,获得每个第一数据节点CPU使用率,当前IOPS,当前QPS,当前数据节点的连接数以及当前磁盘使用率,然后基于预设特征提取规则提取所有数据节点的CPU使用率的均值、最大值、最小值、中位数以及90分位数;所有数据节点的当前IOPS的均值、最大值、最小值、中位数以及90分位数;所有数据节点的当前QPS的均值、最大值、最小值、中位数以及90分位数;所有数据节点的当前数据节点的连接数的均值、最大值、最小值、中位数以及90分位数;所有数据节点的当前磁盘使用率的均值、最大值、最小值、中位数以及90分位数作为该第一数据节点的运行状态参数的参数特征。
此外,所述获取第一数据节点的运行状态参数,包括:
确定第一数据节点,且在所有第一数据节点启动的情况下,获取所述第一数据节点的运行状态参数。
具体的,在进行运行状态参数获取时,要先确定需要对哪些数据节点的运行状态参数进行获取,然后在确定这些数据节点全部启动的情况下,定时获取这些数据节点的运行状态参数。
本说明书实施例中,在保证所有第一数据节点(即配置的要进行数据处理的数据节点)均启动的情况下,才会对第一数据节点的运行状态参数进行获取,以保证后续可以基于获取的运行状态参数获得更为准确的数据节点决策结果。
具体实施时,所述获取第一数据节点的运行状态参数之前,还包括:
按照预设时间间隔获取第一数据节点,在所述预设时长内的历史运行状态参数的历史参数特征,以及所述历史参数特征对应的数据节点决策结果;
将所述历史参数特征作为训练数据,将所述数据节点决策结果作为标签,基于所述训练数据和所述标签形成训练样本;
将所述训练样本输入初始数据节点决策模型,获得所述初始数据节点决策模型的网络参数;
基于所述网络参数对所述初始数据节点决策模型进行训练,以获得数据节点决策模型。
其中,预设时间间隔,预设时长可以根据实际应用进行设置,例如预设时间间隔以及预设时长设置为1小时。
实际应用中,第一数据节点可以理解为当前运行中的数据节点,而数据节点在实际运行过程中,会实时的将其运行状态参数进行参数特征提取,再将提取的参数特征进行存储,而在进行模型训练时就可以一直采用数据节点新存储的历史运行状态参数的历史参数特征对模型进行训练、更新,以保持模型的稳定性。
具体实施时,第一数据节点的历史运行状态参数与当前的运行状态参数内容基本相同,在此不再赘述。
以预设时间间隔和预设时长为1小时为例,每隔一个小时定期获取第一数据节点(即当前运行的数据节点)在当前时刻之前的一个小时内的所有历史运行状态参数的历史参数特征,以及该历史参数特征对应的数据节点决策结果,其中,该数据节点决策结果可以理解为对数据节点进行扩容还是缩容,以及扩容的数据节点数量或者是缩容的数据节点数量等,且历史参数特征包括数据节点在什么时间点进行过扩缩容(比如在该1小时内的第6分钟进行过扩容)以及该时间点的特征值(即每个运行状态参数的均值、最大值、最小值、中位数和/或90分位数等),而标签则是扩容以及扩容的数据节点数量、缩容以及缩容的数据节点数量。
然后将历史参数特征作为训练数据,将该历史参数特征对应的数据节点决策结果作为标签,基于该训练数据和标签形成训练样本,即每个训练样本均由训练数据以及训练数据对应的标签组成,例如某个训练样本包括:训练数据:第一数据节点在11点-12点这一个小时内的11:20发生了一次扩容,在11:20的时候第一数据节点的运行状态参数的特征值是A;该训练数据对应的标签:扩容,扩容的数据节点数量为2。
再将训练样本输入初始数据节点决策模型,获得该初始数据节点决策模型的网络参数,最后基于该网络参数对初始数据节点决策模型进行训练,以获得数据节点决策模型。
具体实施时,为了使得本说明书实施例提供的所述数据处理方法可以更加准确的根据当前数据节点的运行状态参数确定预设时长内是否需要对数据节点进行扩缩容,就需要实时收集当前运行的数据节点的运行状态参数,然后基于收集的当前运行的数据节点的这些历史运行状态参数建立数据节点决策模型,以准确的获得是否需要对数据节点进行扩缩容的策略。
实际使用时,协调器获取当前运行的数据节点(即第一数据节点)的离线运行状态参数,例如CPU使用率,当前IOPS,当前QPS,当前连接数,当前磁盘使用率等;然后再汇总当前运行的所有数据节点的运行状态参数,由于分布式云数据库系统十分庞大,而定时调度任务(schedule)每次探测到的监控数据指标(即运行状态参数)不可能全部持有在数据库中,否则将会消耗非常多的资源,因此采用将每小时的统计数据作为特征进行保存,即将每小时统计出的数据节点的运行状态参数的特征值进行保存,而为了减轻数据节点决策模型的计算量,可以从运行状态参数对应的参数特征中提取主要的特征作为训练数据,进行后续的数据节点决策模型的训练,例如提取运行状态参数对应的参数特征中的均值、最大值、最小值、中位数和/或90分位数等参数特征。
具体的,协调器获取当前运行的数据节点的离线数据(例如数据节点系统数据和数据节点流量数据,即运行状态参数)进行模型训练样本准备,然后将定期获取的每小时的数据节点的运行状态参数的参数特征与对应的数据节点策略结果进行数据节点决策模型训练。例如每隔2小时获取过去1小时内数据节点的运行状态参数的参数特征以及对应的数据节点策略结果。
具体实施时,数据节点决策模型可以为SVM多分类器模型,将上述定期获取的每小时的数据节点的运行状态参数的参数特征以及对应的数据节点策略结果作为训练样本,形成训练数据集,对该SVM多分类器模型进行训练,以获得最终的数据节点策略模型,其中,SVM多分类器模型原理如下:
给定线性可分训练数据集,由训练数据集训练得到超平面为:
w
其中,w为法向量,x为特征向量,b为位移;
数据点到超平面的距离为:
样本点(xi,yi)到超平面(w,b)的函数距离为:
样本点(xi,yi)到超平面(w,b)的几何距离为:
其中,x
最小几何距离为:
γ=min
为了更好的划分超平面,找一组w,b,使这个几个间隔最大,即:
通过拉格朗日求导可得出:
约束条件为:
其中,α为拉格朗日乘子,且大于0;
通过将全部的数据节点的特征以及对应的数据节点决策结果(即训练数据集)代入上述的SVM的优化函数中,通过上述SVM的运算,获得SVM的网络参数,然后通过该网络参数对SVM进行调整,以获得最终的数据节点决策模型。
本说明书实施例中,协调器会定期获取当前运行的数据节点的过去时长内的历史运行状态参数的历史参数特征以及对应的数据节点决策结果,对数据节点决策模型进行训练、更新,以使得后续可以通过该数据节点决策模型获得预设时长内准确的数据节点决策结果,基于该数据节点决策结果可以确定预设时长内,数据节点的扩缩容情况,避免对数据节点进行频繁的调整,影响数据库的数据处理性能。
本说明书另一实施例中,所述获得数据节点决策模型之后,还包括:
将所述数据节点决策模型存储至对象存储服务平台;
相应的,所述将所述参数特征输入数据节点决策模型,包括:
从所述对象存储服务平台调用所述数据节点决策模型,并将所述参数特征输入数据节点决策模型。
具体的,在训练获得数据节点决策模型后,将该数据节点决策模型存储至对象存储服务平台(OSS),在后续使用时,协调器可以从对象存储服务平台获取该数据节点决策模型,对数据节点的数据节点决策结果进行获取。
实际应用中,为了避免协调器出现故障时,造成数据节点决策模型的丢失,则数据节点决策模型构建以及每次更新之后均会存储到对象存储服务平台中,协调器在后续使用时,每次调用最新的数据节点决策模型使用即可,极大的提升用户体验。
本说明书另一实施例中,在冷启动阶段,即数据处理系统第一次启动,数据节点还未运行,协调器中的数据节点决策模型未生成的情况下,为了保证数据节点的可扩缩容,以支持项目需要,可以基于预设参数阈值对数据节点的扩缩容进行调整,具体实现方式如下所述:
所述获取第一数据节点的运行状态参数之后,还包括:
若不存在数据节点决策模型且不存在所述第一数据节点的历史运行状态参数,则将所述历史运行状态参数与预设参数阈值进行比较,基于比较结果向数据节点资源池发送数据节点调整请求。
其中,预设参数阈值可以根据实际应用进行设置,本说明书对此不做任何限定。
具体的,在协调器中未构建数据节点决策模型,且当前运行的数据节点也不存在历史运行状态参数的情况下,则将获取的当前的运行节点的运行状态参数与预设参数阈值进行比较,若大于等于该预设参数阈值,则向数据节点资源池发送数据节点扩容请求,该数据节点扩容请求中携带有根据高出的运行状态参数确定的扩容的数据节点数量,例如需要增加3个数据节点等;若小于该预设参数阈值,则向数据节点资源池发送数据节点缩容请求,该数据节点缩容请求中携带有根据低的运行状态参数确定的缩容的数据节点数量,例如需要删减3个数据节点等。
此外,所述获取第一数据节点的运行状态参数,并基于预设特征提取规则提取所述运行状态参数的参数特征之后,还包括:
将所述运行状态参数的参数特征存储至所述对象存储服务平台;
相应的,所述按照预设时间间隔获取第一数据节点,在所述预设时长内的历史运行状态参数的历史参数特征,包括:
按照预设时间间隔从所述对象存储服务平台获取第一数据节点,在所述预设时长内的历史运行状态参数的历史参数特征。
实际应用中,为了保证协调器可以定期获取到第一数据节点的历史运行状态参数的参数特征,在协调器每次获取第一数据节点的当前运行状态参数之后,均从该当前运行状态参数中提取模型更新需要的参数特征,存储至对象存储服务平台。而协调器也会定期的从对象存储服务平台中获取第一数据节点的历史运行状态参数的参数特征,对数据节点决策模型进行定期更新,以保证数据节点决策模型的预测准确性。
步骤204:将所述参数特征输入数据节点决策模型,获得预设时长内所述参数特征对应的数据节点决策结果。
其中,数据节点决策结果包括数据节点扩容以及数据节点扩容数量,以及数据节点缩容以及数据节点缩容数量。
具体的,协调器会每隔一段时间(例如5秒中)获取一次当前运行的数据节点的运行状态参数,然后基于预设提取规则提取该运行状态参数的参数特征,基于该参数特征获得当前运行的数据节点的数据节点决策结果,即是需要对当前运行的数据节点进行扩容还是缩容,以及数据节点扩容数量、数据节点缩容数量。
参见图3,图3示出了本说明书一个实施例提供的一种数据处理方法中数据节点决策模型的具体应用示意图。
图3中,模型训练阶段:
步骤一:协调器会定期获取第一数据节点的预设时间段内的历史数据节点系统数据和历史数据节点流程数据(即第一数据节点的历史运行状态参数);
步骤二:基于获取的第一数据节点的历史运行状态参数训练获得SVM多分类器(即数据节点决策模型);
步骤三:将该数据节点决策模型存储至对象存储服务平台。
模型应用阶段:
步骤四:协调器从对象存储服务平台调用训练好的数据节点决策模型。
步骤五:协调器定时获取第一数据节点的数据节点系统数据和数据节点流程数据(即第一数据节点的当前运行状态参数),然后将第一数据节点的当前运行状态参数输入数据节点决策模型中,获得第一数据节点的当前运行状态参数对应的数据节点决策结果。
实际应用中,协调器会每隔一段时间获取一次当前运行的数据节点的运行状态参数的参数特征,然后基于数据节点决策模型获得预设时长内该参数特征对应的数据节点决策结果,例如协调器会每隔5秒获取一次当前运行的数据节点的运行状态参数的参数特征,然后基于数据节点决策模型获得1个小时内该参数特征对应的数据节点决策结果,即未来1个小时内第一数据节点需要扩容或缩容,数据节点扩容数量、数据节点缩容数量。即数据节点决策模型会在其内部判断未来1个小时内第一数据节点在哪个时间点需要扩容,数据节点扩容数量,在哪个时间点需要缩容,数据节点缩容数量,然后综合考虑扩缩容情况,预测该未来一个小时内第一数据节点的最终调整策略,例如第一数据节点现在12w的查询率,20分钟之后会降到了8w的查询率,需要缩容4个数据节点,但是30分钟之后又涨到了12w的查询率,需要扩容4个数据节点,那么数据节点决策模型的最后预测结果则可能为未来一个小时内不对第一数据节点进行扩缩容,避免第一数据节点的频繁增删。
但是通过数据节点决策模型是对第一数据节点的扩缩容的预测,而实际应用中,有可能会出现在该预测时间段内的某个时间段出现运行状态参数陡增的情况出现,因此协调器会定时的获取第一数据节点的运行状态参数,然后基于该第一数据节点的运行状态参数确定第一数据节点的节点策略结果,例如获取第一数据节点的运行状态参数为12W查询率,当前第一数据节点的数量为12,需要缩容4个数据节点;那么将基于所述运行状态参数确定的数据节点策略结果,与基于所述数据节点决策模型获得的数据节点策略结果进行匹配,例如基于所述数据节点决策模型获得的数据节点策略结果为未来一个小时内数据节点需要扩容2个数据节点,那么可以确定若当前基于运行状态参数确定的数据节点策略结果对第一数据节点进行缩容,后续可能还需要再进行扩容,因此则不对第一数据节点进行任何调整。而若基于该第一数据节点的运行状态参数确定第一数据节点的节点策略结果为:需要扩容4个数据节点;而基于所述数据节点决策模型获得的数据节点策略结果为未来一个小时内数据节点需要扩容2个数据节点;那么则可以确定第一数据节点不足以支撑当前的数据处理,则以基于所述运行状态参数确定的数据节点策略结果向数据节点资源池发送数据节点调整请求,具体实现方式如下所述:
所述基于所述数据节点决策结果向数据节点资源池发送数据节点调整请求,包括:
在基于所述运行状态参数确定的数据节点策略结果,与基于所述数据节点决策模型获得的数据节点策略结果不匹配的情况下,基于所述运行状态参数确定的数据节点策略结果向数据节点资源池发送数据节点调整请求。
本说明书实施例中,在基于数据节点策略模型获得数据节点策略结果之后,为了避免突发情况的发生,协调器仍然会定时获取第一数据节点的运行状态参数进行数据节点策略结果的判断,以保证在第一数据节点的某个指标突然陡增的情况下,不会造成第一数据节点的高负载运行。
步骤206:基于所述数据节点决策结果向数据节点资源池发送数据节点调整请求,其中,所述数据节点资源池由第一数据节点和第二数据节点组成。
具体的,在获得数据节点决策结果后,基于该数据节点决策结果向数据节点资源池发送数据节点调整请求。
步骤208:确定所述数据节点资源池基于所述数据节点调整请求调整所述第一数据节点或第二数据节点后的目标数据节点,并基于所述目标数据节点进行数据处理。
其中,数据节点决策结果包括两种情况,一种是对数据节点扩容,一种是对数据节点缩容,因此在数据节点决策结果不同的情况下,协调器向数据节点资源池发送的数据节点调整请求以及最终调整后的目标数据节点均不相同。
具体实施时,所述数据节点决策结果包括数据节点扩容以及数据节点扩容数量;
相应的,所述基于所述数据节点决策结果向数据节点资源池发送数据节点调整请求,包括:
基于所述数据节点决策结果向数据节点资源池发送数据节点扩容请求,其中,所述数据节点扩容请求中携带有数据节点扩容数量;
相应的,所述确定所述数据节点资源池基于所述数据节点调整请求调整所述第一数据节点或第二数据节点后的目标数据节点,并基于所述目标数据节点进行数据处理,包括:
接收所述数据节点资源池基于所述数据节点扩容请求中携带的数据节点扩容数量,增加的第二数据节点;
将所述第一数据节点和增加的第二数据节点确定为目标数据节点,并基于所述目标数据节点进行数据处理。
举例说明,若数据节点决策结果为数据节点扩容,数据节点扩容数量为2,那么协调器则会基于该数据节点决策结果向数据节点资源池发送数据节点扩容请求,该数据节点扩容请求中会携带数据节点扩容数量为2;然后接收数据节点资源池基于该数据节点扩容请求中携带的数据节点扩容数量,增加的两个第二数据节点,然后将第一数据节点和增加的两个第二数据节点作为目标数据节点,进行数据处理。
实际应用中,第一数据节点为当前运行中的数据节点,第二数据节点为数据节点资源池中备份的数据节点,而在第一数据节点在不进行运行的时候也是会被数据节点资源池进行回收,等待再次的分配,因此数据节点资源池中即包括第一数据节点也包括第二数据节点。
本说明书实施例中,在数据节点决策结果为数据节点扩容的情况下,为了保证正常的数据处理,则从数据节点资源池中抽取相应的数据节点扩容数量的第二数据节点,与第一数据节点一起作为目标数据节点进行数据处理。
本说明书另一实施例中,所述数据节点决策结果包括数据节点缩容以及数据节点缩容数量;
相应的,所述基于所述数据节点决策结果向数据节点资源池发送数据节点调整请求,包括:
基于所述数据节点缩容数量从所述第一数据节点中,确定待缩容的第一数据节点;
向所述待缩容的第一数据节点发出数据节点调度任务,基于所述数据节点调度任务停止所述待缩容的第一数据节点的数据处理;
在所述待缩容的第一数据节点将数据全部写入所述对象存储服务平台的情况下,向数据节点资源池发送数据节点缩容请求,其中,所述数据节点缩容请求中携带有所述待缩容的第一数据节点;
相应的,所述确定所述数据节点资源池基于所述数据节点调整请求调整所述第一数据节点或第二数据节点后的目标数据节点,并基于所述目标数据节点进行数据处理,包括:
确定所述数据节点资源池基于所述数据节点缩容请求中携带的所述待缩容的第一数据节点,停止的第一数据节点;
将除所述停止的第一数据节点之外的第一数据节点,确定为目标数据节点,并基于所述目标数据节点进行数据处理。
举例说明,若数据节点决策结果为数据节点缩容,数据节点缩容数量为2,那么协调器则会基于数据节点缩容数量2从第一数据节点中,确定两个待缩容的第一数据节点,然后向着两个待缩容的第一数据节点发出数据节点调度任务,基于该数据节点调度任务通知这两个待缩容的第一数据节点的数据处理(例如数据写入等),同时在则两个待缩容的第一数据节点将数据节点上的数据全部写入对象存储服务平台的情况下,向数据节点资源池发送针对这两个待缩容的第一数据节点的数据节点缩容请求,在接收到该数据节点缩容请求后,数据节点资源池将这两个待缩容的第一数据节点回收,协调器将剩余的第一数据节点作为目标数据节点进行数据处理。
本说明书实施例中,在数据节点决策结果为数据节点缩容的情况下,为了保证正常的数据处理,则通知待缩容的第一数据节点的运行,由数据节点资源池对待缩容的第一数据节点进行回收,将剩余的第一数据节点作为目标数据节点进行数据处理。
本说明书另一实施例中,所述基于所述目标数据节点进行数据处理之后,还包括:
将所述目标数据节点作为第一数据节点,继续获取第一数据节点的运行状态参数,并基于预设特征提取规则提取所述运行状态参数的参数特征。
实际应用中,第一数据节点即为当前运行的数据节点,而在当前运行的数据节点进行了扩容或缩容形成了目标数据节点之后,则会将目标数据节点作为第一数据节点,继续的获得更新后的第一数据节点的运行状态参数,以基于该运行状态参数对当前运行的第一数据节点进行扩缩容调整;从而使得当前运行的第一数据节点可以一直正常的对数据进行处理,保证分布式云数据库的正常工作。
本说明书实施例中,所述数据处理方法基于当前数据节点的运行状态参数的参数特征以及预先建立的数据节点决策模型,预测出未来时长内数据节点决策结果,基于该数据节点决策结果对未来时长内的数据节点的数量进行调整,在避免频繁的对数据节点的数量进行调整的基础上,可有效的实现对数据节点的扩缩容。
并且所述数据处理方法,通过数据决策模型可以预测未来预设时长内的数据节点扩缩容结果,具有应对频繁波动的能力,通过存储历史监控数据,而使得扩缩容具有记忆力,可降低频繁波动的误判断;同时为了更少的降低数据库对于监控数据(运行状态参数)的存储,提取了监控数据每小时的特征值,有效的提取了有用信息也压缩了监控数据的成本,降低了分布式云数据库存储大量监控数据的压力。同时由于数据库的主备切换等操作很重,而想有效的做到弹性扩缩容,就要尽可能的降低扩缩容的成本,而本说明书实施中,利用对象存储服务平台,可以有效的保存历史数据,做到轻量级扩缩容,且数据完备性。
下述结合附图4,以本说明书提供的一种数据处理方法在分布式云数据库的应用为例,对所述数据处理方法进行进一步说明。具体包括以下步骤。
步骤402:协调器启动。
步骤404:确定当前进行数据处理的数据节点全部启动。
步骤406:获取当前运行的数据节点的运行状态参数。
步骤408:对当前运行的所有数据节点的运行状态参数进行汇总。
步骤410:将当前运行的所有数据节点的运行状态参数对应的参数特征输入预先建立的数据节点决策模型,判断当前运行的数据节点是需要扩容还是缩容,若扩容,则执行步骤412至步骤418;若缩容,则执行步骤420至步骤426。
步骤412:确定数据节点决策模型输出的数据节点扩容数量。
步骤414:基于该数据节点扩容数量向数据节点资源池发送扩容请求。
步骤416:接收数据节点资源池反馈的扩容数据节点。
具体的,协调器在向数据节点资源池发送扩容请求之后,数据节点资源池评估当前空闲的数据节点,分配相应数量的数据节点给协调器调度使用。
步骤418:将新的扩容数据节点与当前运行的数据节点一起进行数据处理。
具体的,协调器接收到数据节点资源池分配的新的数据节点之后,注册新的数据节点的元数据,对新的数据节点进行调配使用,即将新的数据节点加入服务(如数据写入或查询等数据处理服务)。
步骤420:确定数据节点决策模型输出的数据节点缩容数量。
步骤422:基于该数据节点缩容数量向数据节点资源池发送缩容请求。
步骤424:停止待缩容的当前运行的数据节点。
步骤426:将待缩容的当前运行的数据节点放回数据节点资源池。
具体的,当判断出当前运行的数据节点待缩容时,协调器会根据当前运行的数据节点的数据处理情况,评估出需要缩容的数据节点,然后向这些数据节点发出调度任务,停止向这些数据节点进行数据写入等,等待这些数据节点将数据全部传输到对象存储服务平台后,停止这些数据节点的服务,同时向资源池发送这些数据节点要缩容的请求;而资源池在待缩容的数据节点停止服务后,调度管控任务将这些数据节点回收。
本说明书实施例提供的所述数据处理方法对分布式云数据库的弹性扩缩容进行了设计,通过提取数据节点的监控数据的特征数据,有效的降低了监控数据对数据库本身的存储压力,同时通过对历史监控数据特征的提取构建的数据节点决策模型,可以有效的判断出当前数据节点的运行状态为轻微波动,还是持久波动,从而作出有效的扩缩容的决策;并且通过此种弹性扩缩容,不仅通过对象存储轻量化了弹性扩缩容的成本和提高了效率,保证了数据的完备性,而且对数据节点的历史数据的存储,也有效的提高了系统扩缩容决策的准确性,极大的提高了系统性能,也大大降低了运维成本。
与上述方法实施例相对应,本说明书还提供了数据处理装置实施例,图5示出了本说明书一个实施例提供的一种数据处理装置的结构示意图。如图5所示,该装置包括:
特征提取模块502,被配置为获取第一数据节点的运行状态参数,并基于预设特征提取规则提取所述运行状态参数的参数特征;
节点策略确定模块504,被配置为将所述参数特征输入数据节点决策模型,获得预设时长内所述参数特征对应的数据节点决策结果;
请求发送模块506,被配置为基于所述数据节点决策结果向数据节点资源池发送数据节点调整请求,其中,所述数据节点资源池由第一数据节点和第二数据节点组成;
节点调整模块508,被配置为确定所述数据节点资源池基于所述数据节点调整请求调整所述第一数据节点或第二数据节点后的目标数据节点,并基于所述目标数据节点进行数据处理。
可选的,所述装置,还包括:
模型构建模块,被配置为:
按照预设时间间隔获取第一数据节点,在所述预设时长内的历史运行状态参数的历史参数特征,以及所述历史参数特征对应的数据节点决策结果;
将所述历史参数特征作为训练数据,将所述数据节点决策结果作为标签,基于所述训练数据和所述标签形成训练样本;
将所述训练样本输入初始数据节点决策模型,获得所述初始数据节点决策模型的网络参数;
基于所述网络参数对所述初始数据节点决策模型进行训练,以获得数据节点决策模型。
可选的,所述装置,还包括:
模型存储模块,被配置为将所述数据节点决策模型存储至对象存储服务平台;
相应的,所述节点策略确定模块504,进一步被配置为:
从所述对象存储服务平台调用所述数据节点决策模型,并将所述参数特征输入数据节点决策模型。
可选的,所述请求发送模块506,进一步被配置为:
在基于所述运行状态参数确定的数据节点策略结果,与基于所述数据节点决策模型获得的数据节点策略结果不匹配的情况下,基于所述运行状态参数确定的数据节点策略结果向数据节点资源池发送数据节点调整请求。
可选的,所述装置,还包括:
参数比较模块,被配置为若不存在数据节点决策模型且不存在所述第一数据节点的历史运行状态参数,则将所述历史运行状态参数与预设参数阈值进行比较,基于比较结果向数据节点资源池发送数据节点调整请求。
可选的,所述装置,还包括:
参数存储模块,被配置为将所述运行状态参数的参数特征存储至所述对象存储服务平台;
相应的,所述模型构建模块,进一步被配置为:
按照预设时间间隔从所述对象存储服务平台获取第一数据节点,在所述预设时长内的历史运行状态参数的历史参数特征。
可选的,所述数据节点决策结果包括数据节点扩容以及数据节点扩容数量;
相应的,所述请求发送模块506,进一步被配置为:
基于所述数据节点决策结果向数据节点资源池发送数据节点扩容请求,其中,所述数据节点扩容请求中携带有数据节点扩容数量;
相应的,所述节点调整模块508,进一步被配置为:
接收所述数据节点资源池基于所述数据节点扩容请求中携带的数据节点扩容数量,增加的第二数据节点;
将所述第一数据节点和增加的第二数据节点确定为目标数据节点,并基于所述目标数据节点进行数据处理。
可选的,所述数据节点决策结果包括数据节点缩容以及数据节点缩容数量;
相应的,所述请求发送模块506,进一步被配置为:
基于所述数据节点缩容数量从所述第一数据节点中,确定待缩容的第一数据节点;
向所述待缩容的第一数据节点发出数据节点调度任务,基于所述数据节点调度任务停止所述待缩容的第一数据节点的数据处理;
在所述待缩容的第一数据节点将数据全部写入所述对象存储服务平台的情况下,向数据节点资源池发送数据节点缩容请求,其中,所述数据节点缩容请求中携带有所述待缩容的第一数据节点;
相应的,所述节点调整模块508,进一步被配置为:
确定所述数据节点资源池基于所述数据节点缩容请求中携带的所述待缩容的第一数据节点,停止的第一数据节点;
将除所述停止的第一数据节点之外的第一数据节点,确定为目标数据节点,并基于所述目标数据节点进行数据处理。
可选的,所述特征提取模块502,进一步被配置为:
确定第一数据节点,且在所有第一数据节点启动的情况下,获取所述第一数据节点的运行状态参数。
可选的,所述装置,还包括:
节点更新模块,被配置为将所述目标数据节点作为第一数据节点,继续获取第一数据节点的运行状态参数,并基于预设特征提取规则提取所述运行状态参数的参数特征。
本说明书实施例提供的所述数据处理装置,基于当前数据节点的运行状态参数的参数特征以及预先建立的数据节点决策模型,预测出未来时长内数据节点决策结果,基于该数据节点决策结果对未来时长内的数据节点的数量进行调整,在避免频繁的对数据节点的数量进行调整的基础上,可有效的实现对数据节点的扩缩容。
上述为本实施例的一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
图6示出了根据本说明书一个实施例提供的一种计算设备600的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相连接,数据库650用于保存数据。
计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备600还可以是移动式或静止式的服务器。
其中,处理器620用于执行如下计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该指令被处理器执行时实现所述数据处理方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述数据处理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
- 图像数据处理方法、用于图像数据处理方法的程序、记录有用于图像数据处理方法的程序的记录介质和图像数据处理装置
- 药箱的数据处理方法、装置、数据处理方法和装置