一种数据服务质量评估方法和终端与流程

文档序号:16811605发布日期:2019-02-10 13:43阅读:258来源:国知局
一种数据服务质量评估方法和终端与流程

本发明实施例涉及数据服务领域,特别涉及数据服务的质量评估技术。



背景技术:

作为云计算的核心基础设施,数据中心在近年来得到了学术界和工业界的广泛关注。而数据中心也经历了从早期的大型机、小型机、服务器、企业数据中心到云数据中心、虚拟化数据中心的演进,数据中心已经从概念走向成熟。数据中心提供对外数据服务,对应有质量评估方法。

发明人发现现有质量评估方法具有评估不准确、评估结果时延较大等问题。在对质量评估方法深入分析后发现:数据中心由于传统的单机数据已经难以满足数据量的增加以及计算复杂性的增加,目前主要是基于分布式系统上的分布式文件系统对数据进行存储,以及对外提供数据服务。

此外,本申请发明人仔细分析了传统质量评估方法后还发现:按照传统方式对单机数据库进行监控的方式以及对服务接口的响应时间监控,已经难以发现数据服务质量情况,主要原因在于:

1.数据分布式存储在多台机器上,且具有备份功能,单机对整体的服务影响难以衡量,同时单机的监控数量指标极其多,通过单机指标产生的误报虚报现象严重,人为运营成本高;

2.服务依赖多种角色,比如基于presto查询hive的方式,服务质量依赖于presto的work角色,coordinate角色,hivemetastore角色以及datanote角色等,不同角色对服务质量影响权重不同。

3.数据多源存储,依赖的组件更加多样。单机监控难以覆盖全面。。

4.随着数据量的剧增,数据中心对外提供数据服务的方式更加多样,数据量也成万倍增加,因此从服务接口的响应时间已经难以确定整体服务质量,响应时间依赖于数据服务方式、客户端查询数据量以及网络质量等。

5.从服务响应时间来判断服务质量,在一定程度上已经存在事件发生之后才能被觉察,具有后知性。难以实现无感知故障切换。



技术实现要素:

本发明实施方式的目的在于提供一种数据服务质量评估方法和终端,使得提升质量评估实时性,增加质量评估准确性。

为解决上述技术问题,本发明的实施方式提供了一种数据服务质量评估方法,包括:划分待评估数据服务中组件的角色;在角色粒度上,根据服务响应时间采集所述数据服务的底层性能数据;对采集到的所述底层性能数据进行深度学习训练,获得质量评估模型;利用所述质量评估模型对所述待评估数据服务进行质量评估。

本发明的实施方式还提供了一种终端,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述的数据服务质量评估方法。

本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述的数据服务质量评估方法。

本发明实施方式相对于现有技术而言,主要区别及其效果有三:首先,基于数据服务系统中底层性能数据进行评估,而不是现有基于服务接口的响应速度进行评估,将评估质量与业务层面脱离,及时感知底层的问题,加快问题发现利于后续快速处理。其次,在数据样本采集时,在角色粒度上进行采集,实现完整准确地评估服务质量。再者,利用深度学习获得的评估模型涵盖各角色的影响因素,在评估时更为准确接近实际。可见,本发明实施方式中的数据服务质量评估方法和终端,使得提升质量评估实时性,增加质量评估准确性。

作为进一步改进,所述对采集到的所述底层性能数据进行深度学习训练,获得质量评估模型,具体包括:按角色对底层性能数据进行聚合汇总,构成时序特征向量矩阵;利用所述时序特征向量矩阵进行深度学习训练,获得所述质量评估模型。进一步限定在深度学习训练时,将数据样本先构成时序特征向量矩阵,再进行学习训练,大大加快模型生成速度。

作为进一步改进,所述待评估数据服务中的组件数量大于一个时,所述按角色对底层性能数据进行聚合汇总,构成时序特征向量矩阵,具体包括:分别以时间顺序聚合汇总底层性能数据,形成各组件的一维向量矩阵;拼接各所述向量矩阵后,形成所述时序特征向量矩阵。进一步限定向量矩阵的生成方法,本生成方法中时间步长可以灵活设置,便于组件扩展后的数据叠加。

作为进一步改进,所述待评估数据服务中的组件数量大于一个时,所述按角色对底层性能数据进行聚合汇总,构成时序特征向量矩阵,具体包括:以时间顺序和组件顺序对底层性能数据进行二维聚合汇总,形成所述时序特征向量矩阵。进一步限定向量矩阵的生成方法,本生成方法中模型简单、数据较少、开发代码量少。

作为进一步改进,所述在角色粒度上,采集所述数据服务的底层性能数据中,具体包括:通过人为制造出所述数据服务故障时,采集所述数据服务的底层性能数据。进一步限定在数据样本采集时可以人为制造故障,加快数据负样本的采集速度,且提升训练的准确率。

作为进一步改进,通过人为制造出的所述数据服务故障,具体为:通过人为控制单一数据作为变量制造出的所述数据服务故障。进一步限定人为制造故障时,控制单一数据作为变量,更利于模型生成。

作为进一步改进,所述对采集到的所述性能数据进行深度学习训练,获得质量评估模型,具体为:利用递归神经网络,对采集到的所述性能数据进行深度学习训练,获得所述质量评估模型。限定利用递归神经网络训练模型,加快模型的生成速度。

作为进一步改进,所述利用质量评估模型对所述待评估数据服务进行质量评估之后,还包括:对所述质量评估模型进行更新训练,并利用更新训练后的质量评估模型替换原有的质量评估模型,使得模型不断接近实际情况,进一步提升质量评估的准确性和实时性。

作为进一步改进,所述对质量评估模型进行更新训练,具体包括:通过人为制造所述数据服务故障时采集到的底层性能数据,对质量评估模型进行更新训练。进一步限定在更新训练时采用人为故障采集负样本数据的方式,减少负样本数据的采集时间,提升训练的准确率。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是根据本发明第一实施方式的数据服务质量评估方法流程图;

图2是根据本发明第一实施方式的数据服务质量评估方法中列举的presto数据服务的架构示意图;

图3是对图2划分出组件和角色后的示意图;

图4是根据本发明第一实施方式的数据服务质量评估方法中服务接口和组件、角色的关系示意图;

图5是根据本发明第一实施方式的数据服务质量评估方法中的模型示意图;

图6是根据本发明第一实施方式的数据服务质量评估方法中的逻辑顺序示意图;

图7是根据本发明第二实施方式的数据服务质量评估方法中的模型示意图;

图8是根据本发明第四实施方式的终端结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

本发明的第一实施方式涉及一种数据服务质量评估方法。实现为数据中心的数据服务进行质量评估,本实施方式的待评估系统为分布式系统,是建立在网络之上的软件系统。

分布式系统通常部署在一组独立的网络设备上,对外展现给用户的是一个统一的整体。大规模的分布式系统是指部署在一个大规模的网络设备集群上的分布式系统,其网络设备数量少则上百多则有上万。

本实施方式的流程如图1所示,具体如下:

步骤101,划分待评估数据服务中组件的角色。

具体的说,数据服务一般会依赖多种组件,可以根据经验或待评估数据服务的架构进行划分,也就是说,根据服务依赖组件进行分层分角色架构处理。值得一提的是,技术人员可以根据经验对不同重要程度的角色进行不同划分,重要角色数据粒度小,单机影响不是太大的角色,可以对数据汇集到角色粒度。

如:通过presto对外提供多源数据服务进行举例说明,图2中是presto数据服务的架构,划分后分组件分角色的示意图如图3所示。

其中,图2中的presto是一个开源的多源分布式sql查询引擎,在数据服务上应用甚为广泛,它可以支持hive、mysql、phoenix等数据库的查询,图2展示了一个数据中心presto的应用结构图。通过presto提供服务的各个数据库,可以依据相关功能依赖将图2进行组件和角色划分,具体划分如图3根据这样的原则,图2中的数据服务可以划分出五个组件,分别是“hdfs”、“phoenix”、“hbase”、“presto”、“hive”,各组件进一步划分出角色,如“hdfs”组件划分出两个角色“namenode”和“datanode”,“hbase”组件划分出三个角色“zookeeper”、“hmaster”和“hregionserver”,“presto”组件划分出两个角色“coordinator”和“worker”,“hive”组件划分出两个角色“metastore”和“关系型数据库”。

步骤102,在角色粒度上,采集数据服务的底层性能数据。

具体的说,在角色粒度上,根据服务响应时间采集数据服务的底层性能数据。如图4所示,服务接口有n个组件,而每个组件可能被划分为一个至多个角色,采集到的底层性能数据可以包括:机器性能、网络性能和进程状态。其中,机器性能:常见的一些机器指标如cpu使用率、内存使用率、磁盘使用率、io情况、负载情况、机器心跳等;网络性能:丢包比、下载速率、延迟、首频链接时间等;进程状态:角色进程耗用cpu、状态、心跳、内存等。

需要说明的是,采集到的性能数据可以进行以下几方面的预处理:

1)剔除有误的数据,比如本地机器时间不准确原因导致;

2)采集有误的数据,比如超出数据本身约束范围;

3)因监控机问题,引发的网络数据不准确的数据。

值得一提的是,传统的数据预处理方式均可以用于此,在此不再赘述。

步骤103,按角色对底层性能数据进行聚合汇总,构成时序特征向量矩阵。

具体的说,当组件数量大于一个时,分别以时间顺序聚合汇总底层性能数据,形成各组件的一维向量矩阵;拼接各向量矩阵后,形成时序特征向量矩阵。也就是说,按角色对各底层性能数据进行聚合汇总,构成角色粒度上的一维向量矩阵,然后以时间为深度,构成时序特征向量矩阵。

步骤104,利用时序特征向量矩阵进行深度学习训练,获得质量评估模型。

上述步骤103和104总的实现对采集到的底层性能数据进行深度学习训练,获得质量评估模型。这种方式中形成的模型示意图如图5所示,这种模型的优势是:不同组件的输入维度可以不一致,时间步长允许自由设置。图5中的输入数据(即数据样本),横向为特征维度,纵向为时间步长,不同组件的时间步长可不同,组件纵向模型容易扩展,相对灵活。

还需要说明的是,本实施方式中可以利用递归神经网络(简称“rnn”)建立时序深度学习模型,对采集到的性能数据进行深度学习训练,这样可以保留历史有效信息,影响具有短时性特征,通过特征与响应时间,构造回归关系,生成质量指标。此外,实际应用中还可以使用其他类型的神经网络,如gru(gatedrecurrentunit的简称)或者lstm(longshortmemorynetwork,长短时记忆网络)进行实现,gru结构相对简单具有快速收敛的能力,lstm参数多,在大量数据下能得到较优模型,各有优势,可以根据实际需求选择,在此不做限定。

另外,深度学习训练过程中,损失函数可以采用均方误差。

步骤105,利用质量评估模型对待评估数据服务进行质量评估。

具体的说,训练好的模型部署线上,可借助开源部署平台如ternsorflowserving进行部署供在线预测调用,也可自行编写读取文件或者内存方式进行处理,具体调用方法在此不做限定。

步骤106,对质量评估模型进行更新训练和替换。

具体的说,对质量评估模型进行更新训练,并利用更新训练后的质量评估模型替换原有的质量评估模型。本步骤根据质量评估的实际应用情况,不断利用待评估数据进行训练,训练所得的模型可以替换原有模型,替换可以定期进行,减少替换频率。值得一提的是,本步骤可以根据需要选择设置,并非实际应用中必须的步骤。

需要继续说明的是,如图6所示,在对本实施方式中的分布式系统的数据服务进行评估后,如果得到的评估结果不符合预期,则可以发出告警信息,并自动切换数据服务,由于本实施方式基于底层数据进行服务质量评估,所以评估结果更为及时,一旦出错,可以更快切换,实现无感知故障切换。其中,图6中etl是英文extract-transform-load的缩写,用来描述将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至目的端的过程;特征工程是对etl后的数据进行聚合汇总。其中,etl和特征工程可以作为一个步骤存在,因为此处强调特征,所以将其作为独立一部分,在此不做限定。

本实施方式相对于现有技术而言,主要区别及其效果有三:首先,基于数据服务系统中底层性能数据进行评估,而不是现有基于服务接口的响应速度进行评估,将评估质量与业务层面脱离,及时感知底层的问题,加快问题发现利于后续快速处理。其次,在数据样本采集时,在角色粒度上进行采集,实现完整准确地评估服务质量。再者,利用深度学习获得的评估模型涵盖各角色的影响因素,在评估时更为准确接近实际。可见,本实施方式中的数据服务质量评估方法和终端,使得提升质量评估实时性,增加质量评估准确性。此外,本实施方式进一步限定在深度学习训练时,将数据样本先构成时序特征向量矩阵,再进行学习训练,大大加快模型生成速度。同时进一步限定向量矩阵的生成方法,本生成方法中模型简单、数据较少、开发代码量少。另外,质量评估所用的模型可以进行更新训练和替换,使得模型不断接近实际情况,进一步提升质量评估的准确性和实时性。

本发明的第二实施方式涉及一种数据服务质量评估方法。第二实施方式与第一实施方式大致相同,主要区别之处在于:在第一实施方式中,在组件数量大于一个时,对不同组件分别形成向量矩阵,之后再拼接。而在本发明第二实施方式中,直接形成各组件的一个向量矩阵,使得模型简单、数据较少、开发代码量少。

具体的说,本实施方式以时间顺序和组件顺序对性能数据进行二维聚合汇总,形成时序特征向量矩阵,利用这样的向量矩阵进行神经网络的深度学习训练,获得模型的过程如图7所示,其中,x1、x2、……、xt为时间步长,学习训练时同样可以采用rnn、gru或者lstm进行实现,在此不再赘述。同时需要说明的是,其中全连接层可省略。

可见,本实施方式中采用输入数据先二维聚合汇总直接形成一个向量矩阵的方式,模型简单、数据较少、开发代码量少。总体来说,实际应用中可以根据需要选用第一实施方式中的向量矩阵生成方法,或选用第二实施方式中的向量矩阵生成方法,使得本发明中向量矩阵的生成方法灵活多样。

本发明的第三实施方式涉及一种数据服务质量评估方法。本实施方式是在第一实施方式的基础上做了进一步优化,优化之处在于:在采集数据服务的底层性能数据的过程中,可以人为制造出服务故障,由于实际故障出现频率较低,所以人为制造故障并采集数据可以大大加快数据采集速度。

具体的说,在采集时可以通过人为制造出数据服务故障时,采集数据服务的底层性能数据,故障时采集到的数据也可以称为负样本。在实际过程中,负样本相对少,为此,需要提升训练准确率,需要负样本覆盖面比较广,可能需要长期积攒数据,可通过人为制造出故障,提升负样本数量。具体制造的故障可以是:

1)制造不同角色宕机现象;

2)制造不同角色机器掉盘现象;

3)制造不同机器cpu跑高现象;

4)制造交换机跑高现象;

5)制造网络拥塞现象;

6)制造不同角色进程僵死现象;

7)制造不同角色进程高负载现象。

等等,只要能对服务质量有影响的因素,或者可能影响的因素,均可人造生成负样本数据。

需要说明的是,在人为制造故障时,可以控制单一数据作为变量,在恒定的请求情况下,人为造成角色故障,采集对应的服务响应时间,制造模拟数据,更易训练形成模型,变量控制方法可以根据实际需要设置,在此不再一一列举。

还需要强调的是,在初始训练中采集的底层性能数据,可以采用上述人为制造出故障再采集的方式采集负样本,在获得质量评估模型之后的更新训练中,也可以采用上述人为制造出故障再采集的方式采集负样本,在此不做限定。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本发明第四实施方式涉及一种终端,如图8所示,包括:

至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一实施方式至第三实施方式中任意一个数据服务质量评估方法。

其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。

处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。

本发明第五实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。

即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1