具体实施方式
为了便于理解本申请,下面将参照相关附图对本申请进行更全面的描述。附图中给出了本申请的首选实施例。但是,本申请可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本申请的公开内容更加透彻全面。
需要说明的是,当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件并与之结合为一体,或者可能同时存在居中元件。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
如图1所示,网络管理设备102监控的设备种类众多,可包括基站104、信令网关106、安全网关108等。每一种设备采集的性能数据涉及的维度不一样、数量也不一样。因此,如何高效地存储各种类型的设备性能数据、节约系统的存储空间、快速适应用户的需求变化变得尤其重要。
本申请实施例使用HBase数据库作为存储数据库,可应用于如图1所示的应用环境中。HBase是一个面向列的分布式非关系型数据库,与Google的Bigtable一样提供了分布式数据存储的能力。非关系型数据库,以被称作NoSql(Not Only SQL)数据库,不兼容SQL(Structured Query Language,结构化查询语言)功能。一般非关系型数据库具备分布式、面向列存储、key-value存储、文档存储和不提供ACID(包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability))能力等特点。面向列的设计非常适合报表场景的系统。利用HBase可以在大量廉价的机器上搭建大规模的机器群集,使得应用系统更加稳定、可靠也更容易水平扩展,快速满足业务需求。
在一个实施例中,提供了一种设备性能数据存储方法,如图2所示,包括:
步骤S110,按照上报周期,将设备上报的各原始性能数据存储到HBase数据库中对应的列。
步骤S120,从HBase数据库中读取聚合周期内、设备对应的第一性能数据;聚合周期大于上报周期;第一性能数据包括落入聚合周期内的各上报周期、分别对应的原始性能数据。
步骤S130,基于第一性能数据进行聚合计算,得到第二性能数据,并将第二性能数据存储到HBase数据库中对应聚合周期的列,以供用户查询。
具体而言,网络管理设备监控系统中的多个网元设备。由于网元设备上报设备性能数据都具备周期性,因此,网络管理设备获取设备按照上报周期上报的原始性能数据,并将各原始性能数据存储到HBase数据库中对应的原始数据列中。其中,各原始数据列以上报周期进行区分,即,设备在同一周期上报的原始性能数据可记录于同一原始数据列中,原始数据列的维度可主要由上报周期来确定。示例性地,网络管理设备在获取到的多个设备按照上报周期上报的原始性能数据时,按照上报周期将原始性能数据进行分类后存储到对应的原始数据列中。进一步地,若设备在一个周期上传的原始性能数据包括多个类型的数据,则原始数据列还可按周期和数据类型进行区分,即,原始数据列的维度还可主要由上报周期和数据类型来确定。
网络管理设备根据预先设置的聚合周期,从HBase数据库中读取设备对应的第一性能数据。其中,聚合周期大于上报周期,即,聚合周期的单位时间内至少覆盖两个上报周期。示例性地,当上报周期是秒级别或分钟级别的周期时,聚合周期可为小时级别、天级别、周级别、月级别或年级别的周期。基于HBase数据库中存储的数据,网络管理设备可读取到各个聚合周期覆盖到的原始性能数据,读取到的原始性能数据属于第一性能数据;基于第一性能数据,可计算该聚合周期对应的性能数据。应该注意的是,网络管理设备可读取一个设备在聚合周期内的第一性能数据,进而计算该设备在聚合周期的性能数据;还可读取多个设备在聚合周期内的第一性能数据,进而分别计算各个设备在聚合周期的性能数据。网络管理设备通过读取设备在各个聚合周期内的第一性能数据,可分别计算得到该设备在各个聚合周期的性能数据。此外,网络管理设备可先根据分钟级别的原始性能数据,计算得到小时级别的性能数据,再根据小时级别的性能数据,进一步计算得到天级别、周级别或月级别等的性能数据。
具体地,网络管理设备可基于设备的第一性能数据进行聚合计算,得到设备在聚合周期的第二性能数据。其中,聚合计算可包括数据求和、数据求差、计算数据平均值和数据峰值等手段,具体的聚合计算手段可根据实际的性能数据需求进行选择,此处不做具体限制。网络管理设备将聚合计算得到的第二性能数据存储到HBase数据库中对应该聚合周期的第一粒度数据列。其中,各第一粒度数据列可按聚合周期进行区分,即,第一粒度数据列的维度可主要由聚合周期来确定,设备在各聚合周期的第二性能数据分别存储在对应的第一粒度数据列中。
需要说明的是,本申请实施例提及的设备可为通信系统中连接网络管理设备(简称网管)的网元设备。上报周期可根据性能需求的精度来确认,可选地,可由设备或网管来确定。原始性能数据用于反馈网元设备在系统中的运行性能,例如,可包括设备的运行功率、数据传输速度和数据传输量等。第一性能数据用于计算聚合周期对应的性能数据,具体地,第一性能数据至少包括对应的原始性能数据,还可包括基于原始性能数据的计算数据和附加属性数据等。
聚合周期的长短可根据设备性能的展现需求进行设置。聚合周期对应的第二性能数据可用于反映设备在聚合周期的性能,具体地,第二性能数据可由网络管理设备基于第一性能数据计算得到。本申请实施例提及的HBase数据库设有原始数据列和第一粒度数据列;其中,原始数据列可用于存储对应的上报周期的原始性能数据,第一粒度数据列可用于存储对应的聚合周期的第二性能数据。
基于此,本申请实施例按照上报数据的周期将原始性能数据存储到HBase数据库中对应维度的原始数据列中,并将基于原始性能数据进行计算得到的第二性能数据也存储到HBase数据库对应的粒度数据列中,进而构成非常大的稀疏矩阵,不同种类的设备不同维度的数据能够写到不同的列中。HBase数据库中,空列不占用存储空间,能够有效地节约系统的存储空间。同时,基于上述的列存储方式,用户能够根据设备、时间或周期等参数,快速定位到需要查询的性能数据,提供快速查询检索的能力。
本申请实施例采用非关系型HBase数据库进行分布式数据存储,可有效提升系统的运行效率、减少系统的运行成本,同时,提高系统的稳定性和可靠性,改进用户检验,使得系统更易于维护、扩展和收缩。基于此,通过分布式存储技术以及定义数据的存储格式,可有效节约系统的存储空间、支持不同种类设备的各种维度,且能够快速进行扩展以满足用户的变化需求。
示例性地,上报周期为10分钟,聚合周期为1小时。网络管理设备获取设备在10分钟、20分钟、30分钟、40分钟和50分钟等周期节点上报的原始性能数据,并将各原始性能数据存储到HBase数据库中对应的原始数据列中。例如,将20分钟这一周期上报的原始性能数据存储到20分钟这一上报周期对应的原始数据列中。进一步地,网络管理设备要获取设备在上午10点钟的聚合周期的性能数据时,可从HBase数据库读取9点钟到10点钟之间的第一性能数据,该第一性能数据至少包括了9点钟到10点钟之间6个上报周期的原始性能数据。网络管理设备对第一性能数据进行聚合计算,得到10点钟的性能数据,并将该性能数据存储到HBase数据库中、10点钟这一聚合周期对应的第一粒度数据列。以此类推,网络管理设备可获取到设备在各个聚合周期的性能数据并存储到HBase数据库中对应的第一粒度数据列。基于此,网络管理设备可将设备每10分钟上传的原始性能数据存储到HBase数据库中对应的原始数据列,并基于原始性能数据,计算得到周期为1小时的设备性能数据,并存储到对应的第一粒度数据列中。
由于设备性能数据上报都具备周期性,用户业务查询、检索的时间需求一般是以小时、天、周、月年为单位,设计数据存储的格式和相应的读取方式尤为重要。HBase数据库是面向列的数据,其数据的查询、检索可通过RowKey来实现。
在一个示例中,网管涉及的性能数据处理可如图3所示,包括:
设备连接到网管并上报性能文件;一般性能文件为xml格式。
网管解释性能文件,读取每一个维度对应的数值。
网管根据业务需求计算需要的业务维度并存储相关的维度数据。
应该说明的是,本申请实施例主要关注性能数据的存储和计算,对于设备性能数据的上报流程、性能文件解释的流程,可采用现有技术来实现,此处不做具体限制。
在一个实施例中,如图4所示,设备性能数据存储方法还包括步骤:
步骤S160,在获取到RowKey时,根据RowKey中的参数,在HBase数据库中进行查询,得到相应的性能数据结果;其中,参数包括设备ID、查询时间和时间粒度中的至少一种;时间粒度包括上报周期和/或聚合周期;性能数据结果包括参数对应的第一性能数据,和/或参数对应的第二性能数据。
具体而言,网络管理设备在存储和计算设备的性能数据后,可在获取到RowKey时,从HBase数据库中查询相应的设备性能数据。其中,RowKey用于从HBase数据库中查询性能数据;具体地,RowKey可包括以下参数中的至少一种:设备ID、查询时间和时间粒度。
需要说明的是,设备ID用于标识对应的网元设备;查询时间用于指示需要查询的性能数据所在的时间点或时间区间;时间粒度用于指示查询的性能数据的周期级别,例如上报周期、聚合周期等。网络管理设备根据RowKey中的设备ID、查询时间或时间粒度等,从HBase数据库中查询得到相应的性能数据结果,具体可包括第一性能数据和/或第二性能数据。应该注意的是,本申请实施例在进行数据存储时只需要依据性能数据构造相应的RowKey和组织、计算相关的列,以及调用HBase的程序接口即可,应用程序不需要先根据RowKey查询到相应的行再进行数据写入操作。
本申请实施例中,RowKey可主要由设备ID、查询时间和时间粒度构成;采用上述结构的RowKey,可从HBase数据库中快速定位到相应的设备和数据列,查询到相应的性能数据。即,业务的查询可以按设备ID维度、时间维度和时间粒度维度三个维度进行组合查询;同时,除了上述维度外,还可采用其他维度进行精确查询、范围查询。
在一个实施例中,查询时间为获取到的时间点与预设时间点之间相隔的秒数,或为获取到的时间区间与预设时间点之间相隔的秒数区间。
具体而言,RowKey中查询时间的格式可为秒数。可选地,查询时间可为用户输入的时间点与预设时间点之间相隔的秒数,或为用户输入的时间区间与预设时间点之间相隔的秒数区间。基于该格式,本申请实施例提及的RowKey需占用字节少,HBase数据库中性能数据的时间标识更为简洁,同时,查询性能数据时识别时间的速度更快,提高性能数据查询的效率。
在一个示例中,设备ID为网管系统中的设备标识,类型为unsign int,占用4个字节。查询时间为性能数据上报的时间,占用4个字节;存储是的当前时间与1970-1-1 00:00:00相隔的秒数;例如,时间2019-5-28 00:00:00保存的数值是1561651200,时间2019-5-2900:00:00保存的数值是1561737600。时间粒度表示当前要查询的行是哪一个周期级别的数据,具体定义可表1所示:
表1
数值 |
含义 |
0x01 |
分钟 |
0x02 |
小时 |
0x04 |
天 |
0x08 |
周 |
0x10 |
月 |
0x20 |
年 |
进行精确查询时需要构造相应的RowKey来执行。RowKey需要根据设备ID、查询时间和时间粒度组合生成。例如,查询设备Id为1,时间为2019-5-28,周期为天的性能数据,则需构造RowKey的十进制表示为“{1}{1561651200}{4}”,其中{1}占用4个字节,{1561651200}占用4个字节,{4}占用一个字节。
又如,查询设备ID为1,时间为2019-5-28 17:00,周期为小时的性能数据,则需要构造的RowKey为“{1}{1561712400}{3}”。可选地,若需要查询分钟级别的数据,可首先根据设备ID、小时、时间粒度定位到具体的小时行,然后根据行中的version版本号读取到相应的分钟数据。
此外,HBase数据库提供了可根据RowKey的掩码进行范围查询的Api接口(Application Programming Interface,应用程序编程接口)。采用此接口可组合查询到想要的范围数据。如需要查询设备ID为1,时间为2019-5-27号到2019-5-28号,时间粒度为天级别的性能数据。则可构造以下4个条件进行查询:
1、RowKey&0xfffffffff000000000000000000=1
2、RowKey&0x00000000ffffffffffffffff00>=1561564800
3、RowKey&0x00000000ffffffffffffffff00<=1561651200
4、RowKey&0x000000000000000000000000ff=0x04
如果要查询时间为2019-5-27到2019-5-28号所有设备、时间粒度为天的性能数据,则只需要将上述中的条件1去掉即可。
如果要查询时间为2019年5月到2019年6月的所有的设备、时间粒度为月的性能数据,则需要构造以下3个条件进行查询;其中,2019-5-1 00:00:00的值为1559318400,2019-7-1 00:00:00的值为1564588800。
1、RowKey&0x00000000ffffffffffffffff00>=1559318400
2、RowKey&0x00000000ffffffffffffffff00<1564588800
3、RowKey&0x000000000000000000000000ff=0x10
在一个实施例中,如图5所示,将第二性能数据存储到HBase数据库中对应聚合周期的列的步骤之后,还包括步骤:
步骤S140,从HBase数据库中读取再聚合周期内、设备对应的第二性能数据;再聚合周期大于聚合周期。
步骤S150,基于读取得到的第二性能数据进行聚合计算,得到第三性能数据,并将第三性能数据存储到HBase数据库中对应再聚合周期的列。
具体而言,网络管理设备在获取到第二性能数据之后,可进一步根据预先设置的再聚合周期,从HBase数据库中读取对应的第二性能数据。其中,再聚合周期大于聚合周期,即,再聚合周期的单位时间内至少覆盖两个聚合周期。示例性地,当上报周期是秒级别或分钟级别的周期时,聚合周期可为小时级别或天级别的周期,再聚合周期可为周级别、月级别或年级别的周期。
基于HBase数据库中存储的性能数据,网络管理设备可读取到各个再聚合周期覆盖到的第二性能数据。进一步地,网络管理设备基于读取得到的、再聚合周期覆盖的第二性能数据进行聚合计算,得到对应该再聚合周期的第三性能数据,并将第三性能数据存储到HBase数据库中对应该再聚合周期的第二粒度数据列中。应该注意的是,对第二性能数据进行聚合计算的手段与上述对第一性能数据进行聚合计算的手段相似,此处不再赘述。
此外,网络管理设备从HBase数据库中读取相应的性能数据时,可通过构造RowKey的方式来查询和读取相应的数据。
本申请实施例在第二性能数据的基础上,可进一步计算得到更多级别的周期的性能数据,并存储到HBase数据库中对应的列;基于此,能够在节约系统的存储空间的同时,适应用户的需求变化,计算并存储多种维度的设备性能数据,以供用户查询。
在一个示例中,网管涉及的数据聚合计算可如图6所示,包括:
网管按小时、天、周、月为周期,触发每一时间粒度的聚合计算逻辑。
网管按照当前触发器的时间粒度读取每一个设备的性能数据。
网管将读取的数据根据业务需要进行计算。
网管将计算结果写回数据库中。
在一个实施例中,原始性能数据包括至少2种类型的子性能数据。
按照上报周期,将设备上报的各原始性能数据存储到HBase数据库中对应的列的步骤包括:
按照类型,将各子性能数据分别存储到HBase数据库中对应的列。
基于各子性能数据进行计算,得到计算数据,并按照上报周期将计算数据存储到HBase数据库中对应的列。
具体而言,原始性能数据可包括多种类型的子性能数据。网络管理设备在获取到原始性能数据时,可按照上报周期的接地和性能数据的类型,将各子性能数据存储到HBase数据库中对应的原始数据列;其中,原始数据列同时以上报周期以及性能数据的类型进行区分,即,原始数据列的维度由上报周期和性能数据的类型确定。进一步地,网络管理设备还基于各子性能数据进行计算,得到并存储计算数据到HBase数据库中、上报周期对应的计算数据列中。应该注意的是,上述计算的手段包括数据求积、数据求商、数据求和和数据求差等,此处不做具体限制。本申请实施例在存储原始性能数据后,还可对原始性能数据做进一步地计算,能够适应用户的查询需求,扩展设备性能数据的展现维度。
在一个示例中,在HBase数据库中,列的设计包含列族的设计和列的设计。具体地,每一个列都属于一个列族,一个列族下可以有多个列。本申请实施例可将原始性能数据的维度归类到一个列族,将根据原始性能数据进行计算得到的计算数据的维度归类到一个列族。另外,设备相关的附加属性也可归类到一个列族下。表2为一个示例:
表2
其中,列族r为原始性能数据列的维度列族,名称为raw的首字母缩写。列族c为计算数据列的列族,名称为calculate的首字母缩写,其中的数值需要根据列族r中列的数据计算得到。例如,SuccConnRate列的计算公式可为SuccConnEstab/AttConnEstab。Version为每一列都有的一个具体的版本号,可代表周期;版本号的数量可以根据性能需求的精度来确定。例如,设备在每个小时中,每15分钟上报一次数据,则一个小时上报4次;则每一列族的数据就有4个版本。进一步地,版本号可采用数字形式保存,单位为分钟,如每15分钟上报一次,则版本号分别有:15、30、45、60。
在一个示例中,以下以粒度为小时,聚合计算时间为2019-5-29 11:00:00的例子进行详细说明:
1、构造以下查询条件,查询时间为2019-5-29 11时涉及的分钟级别的设备性能数据:
a)RowKey&0x00000000ffffffffffffffff00=1561777200
b)RowKey&0x000000000000000000000000ff=0x01
2、查询结果中,每一行数据包含了一个小时内上报的分钟级别的性能数据。根据r列族、c列族的version字段可以读取得到分钟级别的性能数据。将查询结果按照设备ID进行聚合。
3、根据业务需求计算r、c列族的结果。
4、构造新的一行数据,将步骤3的计算结果写到各列族下对应的列。该新行的RowKey应该是{neId}{1561777200}{0x02}。
5、将步骤4新建的行数据写入到HBase数据库中。
以下以粒度为天,聚合计算时间为2019-5-29的例子进行详细说明:
1、构造以下查询条件,查询时间为2019-5-29的小时级别的设备性能数据:
a)RowKey&0x00000000ffffffffffffffff00>=1561737600
b)RowKey&0x00000000ffffffffffffffff00<1561824000
c)RowKey&0x000000000000000000000000ff=0x02
2、将查询结果按照设备ID进行聚合。
3、根据业务需求在步骤2的基础上计算r、c列族的结果。
4、构造新的一行数据,将步骤3的计算结果写入到各列族下对应的列。该新行的RowKey应该是{neId}{1561737600}{0x04}
5、将步骤4新建的行数据写入到HBase数据库中。
通过以上的操作,可将所有时间粒度的数据都写到HBase中同一张表中,并可通过RowKey中的时间粒度字节进行区分。
在一个实施例中,第一性能数据还包括落入聚合周期内的各上报周期、分别对应的计算数据。
具体而言,网络管理设备可根据聚合周期覆盖到的原始性能数据和计算数据进行聚合计算,得到聚合周期的性能数据。
在一个实施例中,上报周期为一分钟、五分钟、十分钟、十五分钟、二十分钟或三十分钟。
在一个实施例中,聚合周期为一小时、一天、一周、一个月、一个季度或一年。
应该理解的是,虽然图2、4和5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、4和5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,提供了一种设备性能数据存储装置,如图7所示,包括:
原始数据存储模块,用于按照上报周期,将设备上报的各原始性能数据存储到HBase数据库中对应的原始数据列;各原始性能数据为设备按照上报周期上报的数据。
第一性能数据获取模块,用于从HBase数据库中读取聚合周期内、设备对应的第一性能数据;聚合周期大于上报周期;第一性能数据包括落入聚合周期内的各上报周期、分别对应的原始性能数据。
第二性能数据获取模块,用于基于第一性能数据进行聚合计算,得到第二性能数据,并将第二性能数据存储到HBase数据库中对应聚合周期的列。
在一个实施例中,设备性能数据存储装置还包括:
RowKey获取模块,用于在获取到RowKey时,根据RowKey中的参数,在HBase数据库中进行查询,得到相应的性能数据结果;其中,参数包括设备ID、查询时间和时间粒度中的至少一种;时间粒度包括上报周期和/或聚合周期;性能数据结果包括参数对应的第一性能数据,和/或参数对应的第二性能数据。
在一个实施例中,设备性能数据存储装置还包括:
再聚合数据获取模块,用于从HBase数据库中读取再聚合周期内、设备对应的第二性能数据;再聚合周期大于聚合周期。
再聚合数据存储模块,用于基于读取得到的第二性能数据进行聚合计算,得到第三性能数据,并将第三性能数据存储到HBase数据库中对应再聚合周期的列。
在一个实施例中,原始性能数据包括至少2种类型的子性能数据。
原始数据存储模块包括:
子性能数据存储模块,用于按照类型,将各子性能数据分别存储到HBase数据库中对应的列。
计算数据获取模块,用于基于各子性能数据进行计算,得到计算数据,并按照上报周期将计算数据存储到HBase数据库中对应的列。
关于设备性能数据存储装置的具体限定可以参见上文中对于设备性能数据存储方法的限定,在此不再赘述。上述设备性能数据存储装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种网络管理设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如下步骤:
按照上报周期,将设备上报的各原始性能数据存储到HBase数据库中对应的列。
从HBase数据库中读取聚合周期内、设备对应的第一性能数据;聚合周期大于上报周期;第一性能数据包括落入聚合周期内的各上报周期、分别对应的原始性能数据。
基于第一性能数据进行聚合计算,得到第二性能数据,并将第二性能数据存储到HBase数据库中对应聚合周期的列。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
在获取到RowKey时,根据RowKey中的参数,在HBase数据库中进行查询,得到相应的性能数据结果;其中,参数包括设备ID、查询时间和时间粒度中的至少一种;时间粒度包括上报周期和/或聚合周期;性能数据结果包括参数对应的第一性能数据,和/或参数对应的第二性能数据。
在一个实施例中,处理器执行将第二性能数据存储到HBase数据库中对应聚合周期的列的步骤之后,还实现以下步骤:
从HBase数据库中读取再聚合周期内、设备对应的第二性能数据;再聚合周期大于聚合周期。
基于读取得到的第二性能数据进行聚合计算,得到第三性能数据,并将第三性能数据存储到HBase数据库中对应再聚合周期的列。
在一个实施例中,原始性能数据包括至少2种类型的子性能数据。
处理器执行计按照上报周期,将设备上报的各原始性能数据存储到HBase数据库中对应的列时,还实现以下步骤:
按照类型,将各子性能数据分别存储到HBase数据库中对应的列。
基于各子性能数据进行计算,得到计算数据,并按照上报周期将计算数据存储到HBase数据库中对应的列。
关于网络管理设备的具体限定可以参见上文中对于设备性能数据存储方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
按照上报周期,将设备上报的各原始性能数据存储到HBase数据库中对应的列。
从HBase数据库中读取聚合周期内、设备对应的第一性能数据;聚合周期大于上报周期;第一性能数据包括落入聚合周期内的各上报周期、分别对应的原始性能数据。
基于第一性能数据进行聚合计算,得到第二性能数据,并将第二性能数据存储到HBase数据库中对应聚合周期的列。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:
在获取到RowKey时,根据RowKey中的参数,在HBase数据库中进行查询,得到相应的性能数据结果;其中,参数包括设备ID、查询时间和时间粒度中的至少一种;时间粒度包括上报周期和/或聚合周期;性能数据结果包括参数对应的第一性能数据,和/或参数对应的第二性能数据。
在一个实施例中,计算机程序被处理器执行将第二性能数据存储到HBase数据库中对应聚合周期的列的步骤之后,还实现以下步骤:
从HBase数据库中读取再聚合周期内、设备对应的第二性能数据;再聚合周期大于聚合周期。
基于读取得到的第二性能数据进行聚合计算,得到第三性能数据,并将第三性能数据存储到HBase数据库中对应再聚合周期的列。
在一个实施例中,原始性能数据包括至少2种类型的子性能数据。
计算机程序被处理器执行按照上报周期,将设备上报的各原始性能数据存储到HBase数据库中对应的列时,还实现以下步骤:
按照类型,将各子性能数据分别存储到HBase数据库中对应的列。
基于各子性能数据进行计算,得到计算数据,并按照上报周期将计算数据存储到HBase数据库中对应的列。
关于存储介质的具体限定可以参见上文中对于设备性能数据存储方法的限定,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。