掌桥专利:专业的专利平台
掌桥专利
首页

时序数据的处理方法、时序数据处理装置及存储介质

文献发布时间:2023-06-19 11:35:49


时序数据的处理方法、时序数据处理装置及存储介质

技术领域

本申请涉及数据处理技术领域,特别是涉及一种时序数据的处理方法、时序数据处理装置以及计算机可读存储介质。

背景技术

随着计算机技术的迅速发展,数据挖掘技术也变得越来越重要。时间序列是一种重要的高维数据类型,是由客观对象的某个物理量在不同时间点的采样值按照时间先后次序排列而组成的序列,在经济管理以及工程领域具有广泛应用。利用时间序列数据挖掘,可以获得数据中蕴含的与时间相关的有用信息,实现知识的提取。

目前在时序降采样绘图的方案中,所了解到的所有时序数据库均只提供了Min/Max/Avg/Sum降采样,这种通用的降采样在大多数场景下能够符合绘图需求,但面临海量数据的时候会丢失大量的数据细节,因为多个数据点被聚合计算成一个之后,原来的一些细节特征会被抹除。

发明内容

本申请主要解决的技术问题是一种时序数据的处理方法、一种时序数据处理装置以及计算机可读存储介质,能够提高数据绘制的效率。

本申请采用的一种技术方案是提供一种时序数据的处理方法,时序数据的处理方法包括:获取到设定时长内的待渲染的第一时序数据的数据点数。响应于数据点数大于设定时长的最大渲染数据个数,采用与数据点数匹配的降采样方法对第一时序数据进行降采样,得到降采样后的第二时序数据。对第二时序数据绘制时序图。

进一步地,响应于数据点数大于设定时长的最大渲染数据个数,采用与数据点数匹配的降采样方法对第一时序数据进行降采样,得到降采样后的第二时序数据的步骤,包括:响应于数据点数大于设定时长的最大渲染数据个数,采用LTTB降采样算法对第一时序数据进行降采样,得到第二时序数据。

进一步地,响应于数据点数大于设定时长的最大渲染数据个数,采用LTTB降采样算法对第一时序数据进行降采样,得到第二时序数据的步骤,包括:响应于数据点数大于设定时长的最大渲染数据个数,且数据点数小于最大渲染数据个数的设定倍数的个数,直接采用LTTB降采样算法对第一时序数据进行降采样,得到第二时序数据。响应于数据点数不小于最大渲染数据个数的设定倍数的个数,采用均值降采样的方法对第一时序数据进行降采样。并对均值降采样后的第一时序数据采用LTTB降采样算法进行降采样,得到第二时序数据。其中,设定倍数大于1。

进一步地,数据点数为设定时长与上报频率的商值。采用均值降采样的方法对第一时序数据进行降采样的步骤,包括:根据上报频率确定降采样比例。根据降采样比例,对第一时序数据进行均值降采样。

进一步地,根据上报频率确定降采样比例包括:将上报频率或上报频率的设定倍数作为降采样比例,以使均值降采样后的第一时序数据的数据点数小于最大渲染数据个数的设定倍数的个数。

进一步地,采用LTTB降采样算法对第一时序数据进行降采样,得到第二时序数据的步骤,包括:根据预先设置的降采样比例将第一时序数据划分为N个第一子时序数据。遍历所有的第一子时序数据,分别从每一个第一子时序数据中确定一个数据点,N个数据点按照时序组成第二时序数据。其中,第K个第一子时序数据的数据点与第K-1个第一子时序数据的最后一个数据点、第K+1个第一子时序数据的第一个数据点所形成的三角形的面积最大,K=2,……,N-1。

进一步地,还包括:响应于第一时序数据的数据点数小于最大渲染数据个数,直接对第一时序数据绘制时序图。

为解决上述技术问题,本申请采用的另一个技术方案是:提供一种时序数据处理装置,时序数据处理装置包括:获取模块,获取模块用于获取到设定时长内的待渲染的第一时序数据的数据点数。降采样模块,降采样模块用于响应于数据点数大于设定时长的最大渲染数据个数,采用与数据点数匹配的降采样方法对第一时序数据进行降采样,得到降采样后的第二时序数据。绘制模块,绘制模块用于对第二时序数据绘制时序图。

为解决上述技术问题,本申请采用的另一个技术方案是:提供一种时序数据处理装置,该时序数据处理装置包括:处理器和存储器,存储器用于存储程序数据,处理器用于执行程序数据以实现上述时序数据的处理方法。

为解决上述技术问题,本申请采用的另一个技术方案是:提供一种计算机可读存储介质,计算机可读存储介质中存储有程序数据,程序数据在被处理器执行时,用以实现上时序数据的处理方法。

本申请的有益效果是:区别于现有技术,本申请提供的时序数据的处理方法包括:获取到设定时长内的待渲染的第一时序数据的数据点数。响应于数据点数大于设定时长的最大渲染数据个数,采用与数据点数匹配的降采样方法对第一时序数据进行降采样,得到降采样后的第二时序数据。对第二时序数据绘制时序图。在待绘制的第一时序数据的数据点数过多时,对第一时序数据进行降采样,并对经过降采样处理后的第二时序数据绘制时序图,通过这种方式,能够较小需要绘制的数据点数,进而提高绘制效率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:

图1是本申请提供的时序数据的处理方法第一实施例的流程示意图;

图2是图1中步骤S20一实施方式的流程示意图;

图3是图1中步骤S20另一实施方式的流程示意图;

图4是图3中步骤S23一实施方式的流程示意图;

图5(a)是利用均值降采样算法对某服务最近一天的内存数据进行降采样之后绘制的时序图;

图5(b)是利用本申请提供的时序数据处理方法对某服务最近一天的内存数据进行处理之后绘制的时序图;

图6是本申请提供的时序数据处理装置一实施方式的结构示意图;

图7是本申请提供的时序数据处理装置另一实施方式的结构示意图;

图8是本申请提供的时序数据处理装置又一实施例的结构示意图;

图9是本申请提供的计算机可读存储介质一实施例的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

本申请发明人发现,目前缺少一种能够支持海量数据的最佳降采样绘图方案,浏览器前端渲染图表的时候瓶颈是比较大的,万级以上的数据量很容易就导致浏览器卡顿甚至停止工作,且从时序数据库(TSDB:Time Series Database)读取和检索海量的数据经常会造成时序数据库不稳定,影响时序数据库的性能。

例如,假设以5秒的频率上报数据,一天的数据量为86400,一周数据量为604800,那当想看该指标一周数值的变化趋势的时候,如果没有采用降采样算法的话,该数据量前端是根本无法渲染和工作的,且这种读取数据的方式对时序数据库的性能会有很大的影响。使用普通降采样算法的话(Min/Max/Avg/Sum),极大可能会丢失波峰波谷的细节,即追求局部最优解。LTTB(Largest Triangle Three Buckets)是一种基于三角面积计算的降采样算法,是一种比较小众的降采样的绘图方案,其特点是能够保留时序数据绘图中的波峰波谷的特征细节,在绘制大量数据的场景中能够更好的保持图线趋势。

基于此,本申请方案提供一种时序数据的处理方法,在待绘制的时序数据的数据点数过多时,通过降采样的方式减小待绘制的数据点数,从而提高绘制效率。

在本实施例中,对时序数据进行渲染的过程,即对时序数据进行绘制时序图的过程,在绘制时序图之后,用户可以通过该时序数据图直观地看出时序数据的发展趋势或规律。本实施例可以通过多种方式实现对时序数据的渲染,利用各种绘图软件或利用浏览器的前端对时序数据进行渲染,在此不做具体限定。

参阅图1,图1是本申请提供的时序数据的处理方法第一实施例的流程示意图,如图1所示,本申请提供的时序数据的处理方法包括以下步骤:

S10:获取到设定时长内的待渲染的第一时序数据的数据点数。

时序数据是一种按指标时间顺序记录的数据格式,在互联网服务应用的监控场景中被大规模使用。在本实施例中,第一时序数据可以但不限于从时序数据库中获取,例如可以通过用户手动输入的方式获取。时序数据库(TSDB:Time Series Database)是一种用于存储时序数据的数据库,业界已有多种开源的和商业化服务的实现。

可选地,数据点数为设定时长与上报频率的商值。例如,对监控设备在一天内采集到的监控时序数据进行渲染时,若以5秒的上报频率进行上报,则设定时长为24*60*60,则获取的第一时序数据的数据个数为24*60*12。

S20:响应于数据点数大于设定时长的最大渲染数据个数,采用与数据点数匹配的降采样方法对第一时序数据进行降采样,得到降采样后的第二时序数据。

最大渲染数据个数可以是用来体现各种绘图软件或在线绘图工具绘制时序图的渲染性能和展示需求的参数,也可以是根据浏览器的性能人为设置的绘图参数。最大渲染数据个数表示最终绘制的时序图最大可包括的数据点数。若所需渲染的数据点数大于最大渲染数据个数,则前端无法执行渲染工作。这样本申请所要解决的问题就抽象成为在所需渲染的数据个数不超过最大渲染数据个数的情况下,尽可能真实地绘制上报频率为S的指标在T时间段内的趋势。

在本实施例中,为了使例如浏览器前端等绘图工具能够无卡顿地绘制时序数据的时序图,将最大渲染数据个数作为参量,并对大于最大渲染数据个数的第一时序数据进行降采样处理,以使得最终得到的第二时序数据的数据个数不大于最大渲染数据个数。

可以理解的是,响应于第一时序数据的数据点数小于最大渲染数据个数,直接对第一时序数据绘制时序图。也就是说,在第一时序数据的数据点数小于最大渲染数据个数时,为了保证所绘制的时序图的真实性,不对第一时序数据进行降采样处理,直接对第一时序数据绘制时序图。

可选地,在本实施例中,响应于数据点数大于设定时长的最大渲染数据个数,采用LTTB降采样算法对第一时序数据进行降采样,得到第二时序数据。

在本实施例中,若第一时序数据的数据点数大于最大渲染数据个数,利用降采样算法对第一时序数据进行降采样处理,以减小浏览器前端等绘图工具所需要渲染的数据点数至不大于最大渲染数据个数。

在一个具体应用场景中,响应于数据点数大于设定时长的最大渲染数据个数,且数据点数小于最大渲染数据个数的设定倍数的个数,直接采用LTTB降采样算法对第一时序数据进行降采样,得到第二时序数据。其中,设定倍数大于1。

可选地,设定倍数为LTTB降采样算法的降采样比例,例如,从10个时序数据点降采样取值成1个点,则设定倍数为10。如此,通过LTTB降采样算法对第一时序数据进行降采样之后的第二时序数据的数据个数必定小于最大渲染数据个数。

参阅图2,图2是图1中步骤S20一实施方式的流程示意图,如图2所示,在本实施例中,采用LTTB降采样算法对第一时序数据进行降采样具体可以包括以下子步骤:

S21:根据预先设置的降采样比例将第一时序数据划分为N个第一子时序数据,其中,按照时序从小到大排列的第一个第一子时序数据只包括一个数据点,即第一时序数据中按照时序从小到大排列的第一个数据点为第一个第一子时序数据包括的数据点,最后一个第一子时序数据也只包括一个数据点,即第一时序数据中按照时序从小到大排列的最后一个数据点为最后一个第一子时序数据包括的数据点。

可选地,中间N-2个第一子时序数据包括的数据点数相等,不妨设降采样比例为α,则每个第一子时序数据所包括的数据点数为(N-2)/α。

S22:遍历所有的第一子时序数据,分别从每个第一子时序数据中确定一个数据点,则N个数据点按照时序组成第二时序数据。

其中,N为大于等于3的正整数,第K个第一子时序数据的数据点与第K-1个第一子时序数据的最后一个数据点、第K+1个第一子时序数据的第一个数据点所形成的三角形的面积最大,K=2,……,N-1。

具体地,按照时序第一个第一子时序数据和最后一个第一子时序数据只包括一个数据点,因此默认它被选中。

例如,按照时序遍历第三个第一子时序数据的每一个数据点,计算第三个第一子时序数据的每一个数据点、第二个第一子时序数据的最后一个数据点以及第四个第一子时序数据的第一个数据点,所组成的三角形的面积,得到(N-2)/α个三角形面积,选出最大的三角形面积所对应的数据点,并将该数据点作为第二时序数据中的一个数据点。

在另一个具体应用场景中,响应于数据点数不小于最大渲染数据个数的设定倍数的个数,采用均值降采样的方法对第一时序数据进行降采样。并对均值降采样后的第一时序数据采用LTTB降采样算法进行降采样,得到第二时序数据。

具体地,参阅图3,图3是图1中步骤S20另一实施方式的流程示意图,如图3所示,步骤S20可以包括以下子步骤:

S23:响应于数据点数不小于最大渲染数据个数的设定倍数的个数,采用均值降采样的方法对第一时序数据进行降采样。

当第一时序数据的数据点数不小于最大渲染数据个数的设定倍数的个数时,为了保证获取时序数据时,时序数据库的稳定性,在绘制第一时序数据的时序图时,第一步不是从时序数据库中获取第一时序数据,而是,根据第一时序数据的数据点数,定制一个最优化的查询时序数据库的策略。

具体地,参阅图4,图4是图3中步骤S23一实施方式的流程示意图,如图4所示,步骤S23具体可以包括以下步骤:

S231:根据上报频率确定降采样比例。

可选地,在本实施例中,将上报频率或上报频率的设定倍数作为降采样比例,以使均值降采样后的第一时序数据的数据点数小于最大渲染数据个数的设定倍数的个数。

因为从时序数据库中一次性读取更多的数据对时序数据库性能影响越大,而读取的原始数据越少则又影响时序图的趋势的准确性,所以在查询时序数据库前先计算出最佳的数据量级后才查询,可以在保证时序数据库性能的基础上,使得点所绘制的时序图的真实性。

也就是说,确定的降采样比例要使得,均值降采样之后的数据点数小于或等于最大渲染数据个数的设定倍数的个数,并且尽量接近于最大渲染数据个数的设定倍数的个数。例如,若上报频率的两倍使得,均值降采样之后的数据点数小于最大渲染数据个数的设定倍数的个数,并且最接近(相对于上报频率或上报频率的其他倍数)最大渲染数据个数的设定倍数的个数,则确定以上报频率的两倍进行均值降采样。

S232:根据降采样比例,对第一时序数据进行均值降采样。

在本实施例中,考虑到从时序数据库读取海量的数据可能会造成时序数据库的不稳定,影响数据库的性能,因此,在所需渲染的数据点数过多时,例如所需渲染的数据点数超过最大渲染数据个数的设定倍数的个数时,本实施例通过两次降采样过程,得到最终的第二时序数据。

S24:对均值降采样后的第一时序数据采用LTTB降采样算法进行降采样,得到第二时序数据。

由于经过均值降采样之后的第一时序数据的数据点数满足大于设定时长的最大渲染数据个数,且数据点数小于最大渲染数据个数的设定倍数的个数,因此,直接采用LTTB降采样算法对经过均值降采样之后的第一时序数据进行降采样,得到第二时序数据,具体的LTTB降采样算法实现的步骤参照步骤S21和步骤S22,在此不做过多详述。

S30:对第二时序数据绘制时序图。

综上,本申请提供的时序数据的处理方法包括:获取到设定时长内的待渲染的第一时序数据的数据点数。响应于数据点数大于设定时长的最大渲染数据个数,采用与数据点数匹配的降采样方法对第一时序数据进行降采样,得到降采样后的第二时序数据。对第二时序数据绘制时序图。在待绘制的第一时序数据的数据点数过多时,对第一时序数据进行降采样,并对经过降采样处理后的第二时序数据绘制时序图,通过这种方式,能够较小需要绘制的数据点数,进而提高绘制效率。

在一个具体应用场景中,参阅图5(a)和图5(b),图5(a)是利用均值降采样算法对某服务最近一天的内存数据进行降采样之后绘制的时序图,图5(b)是利用本申请提供的时序数据处理方法对某服务最近一天的内存数据进行处理之后绘制的时序图。其中,设置对内存数据上报频率为5s,由此可知,内存数据的数据点数大于最大渲染数据个数的设定倍数的个数。如图5(a)所示,可以看到时序数据被平均降采样成4m一个点,在12/19 04:53左右的时候峰值依然在50%以下。如图5(b)所示,同样为该服务最近一天内的内存数据,使用本申请提供的时序数据的处理方法处理之后,即先利用均值采样算法对时序数据进行一次降采样,将待绘制的时序数据点数降采样至小于或等于最大渲染数据个数的设定倍数的个数以下,然后利用LTTB算法对均值降采样之后的时序数据再次进行降采样,得到的时序数据的数据点数小于最大渲染数据个数,此时时序数据仅仅从5秒一个点被降采样成10秒一个点,所以在12/19 04:54的时候内存暴涨达到100%后,服务实际上已经内存溢出而被操作系统kill了,对比可以明显看出使用本申请提供的时序数据的处理方法就能很快的定位到该问题。

此外,如果仅仅使用LTTB算法对时序数据进行降采样处理的话(图未示),一天的时序数据量会使降采样的粒度变得更大,选取的数据点可能没有那么准确,比如在有连续小波峰小波谷的时候忽略了波峰或者忽略了波谷,实际上这种小波峰波谷的情况取均值应该是更加合适的,因为从整体全局的维度来看,这种波动其实是可接受的,且读取大量的数据对时序数据库的性能影响较大。所以LTTB算法与均值降采样算法的动态结合很好地解决了此类问题,使得最终绘制的时序图更加真实。

参阅图6,图6是本申请提供的时序数据处理装置一实施方式的结构示意图,如图6所示,时序数据处理装置100包括获取模块101、降采样模块102以及绘制模块103,其中,获取模块101用于获取到设定时长内的待渲染的第一时序数据的数据点数。降采样模块102用于响应于数据点数大于设定时长的最大渲染数据个数,采用与数据点数匹配的降采样方法对第一时序数据进行降采样,得到降采样后的第二时序数据。绘制模块103用于对第二时序数据绘制时序图。

参阅图7,图7是本申请提供的时序数据处理装置另一实施方式的结构示意图,如图7所示,时序数据处理装置200包括获取模块201和绘制模块202,其中,获取模块201用于获取到设定时长内的待渲染的第一时序数据的数据点数。绘制模块202用于响应于第一时序数据的数据点数小于最大渲染数据个数,直接对第一时序数据绘制时序图。

参阅图8,图8是本申请提供的时序数据处理装置又一实施例的结构示意图。如图8所示,该时序数据处理装置300可以包括存储器310,以及与存储器310连接的处理器320。其中,存储器310用于存储程序数据,处理器320用于执行程序数据以实现本申请提供的时序数据的处理方法的步骤。例如,处理器320用于实现以下步骤:

获取到设定时长内的待渲染的第一时序数据的数据点数。响应于数据点数大于设定时长的最大渲染数据个数,采用与数据点数匹配的降采样方法对第一时序数据进行降采样,得到降采样后的第二时序数据。对第二时序数据绘制时序图。

处理器320可能是一个中央处理器CPU,或者是专用集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。

存储器310用于可执行的指令。存储器310可能包含高速RAM存储器,也可能包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器310也可以是存储器阵列。存储器310还可能被分块,并且块可按一定的规则组合成虚拟卷。存储器310存储的指令可被处理器320执行,以使处理器320能够执行上述任意方法实施例中的提供的时序数据的处理方法。

参阅图9,图9是本申请提供的计算机可读存储介质一实施例的结构示意图。如图9所示,该计算机可读存储介质400上存储有程序数据401,程序数据401被处理器执行时实现本申请提供的时序数据的处理方法的步骤。例如,程序数据401被处理器执行时实现以下步骤:

获取到设定时长内的待渲染的第一时序数据的数据点数。响应于数据点数大于设定时长的最大渲染数据个数,采用与数据点数匹配的降采样方法对第一时序数据进行降采样,得到降采样后的第二时序数据。对第二时序数据绘制时序图。计算机可读存储介质400可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器110(NANDFLASH)、固态硬盘(SSD))等。

综上,本申请提供的时序数据的处理方法包括:获取到设定时长内的待渲染的第一时序数据的数据点数。响应于数据点数大于设定时长的最大渲染数据个数,采用与数据点数匹配的降采样方法对第一时序数据进行降采样,得到降采样后的第二时序数据。对第二时序数据绘制时序图。在待绘制的第一时序数据的数据点数过多时,对第一时序数据进行降采样,并对经过降采样处理后的第二时序数据绘制时序图,通过这种方式,能够较小需要绘制的数据点数,进而提高绘制效率。

在本申请所提供的几个实施方式中,应该理解到,所揭露的方法以及设备,可以通过其它的方式实现。例如,以上所描述的设备实施方式仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

上述其他实施方式中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

相关技术
  • 时序数据的处理方法、时序数据处理装置及存储介质
  • 一种智能电能表时序数据处理方法和处理装置
技术分类

06120112986268