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

一种时序数据库查询方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 09:55:50


一种时序数据库查询方法、装置、电子设备及存储介质

技术领域

本申请涉及数据存储技术领域,特别是涉及一种时序数据库查询方法、装置、电子设备及存储介质。

背景技术

时序数据是指时间序列数据,也就是同一统一指标按时间顺序记录的数据列,TSDB(Time Series Database,时序数据库)是一种主要用于存放时序数据的数据库。

随着时序数据数据量的扩大,对TSDB提出了更高的要求,既需要满足大数据量的时序数据能够及时写入,同时也要保证对时序数据进行查询的稳定性。目前,通常采用分布式TSDB,将时序数据划分为多个分片,每个分片存储在不同的存储设备中,通过通信网络将各个分片连接在一起,统一进行管理。

但是,传统的TSDB容灾能力较差,很难承受查询时间较长的查询请求。举例而言,如果某一指标一天有N个时序数据写入TSDB,那么,当TSDB接收到针对该指标的查询时间为30天的查询请求时,则需要查询30N个时序数据,读写数据量较大,导致TSDB的负载升高,查询速度变慢,进而,很可能发生写入积压,并且,这会是一个不断恶化的过程,恢复的周期一般也都会比较长,从而影响整个TSDB的稳定性。

发明内容

为解决上述技术问题,本申请示出了一种时序数据库查询方法、装置、电子设备及存储介质。

第一方面,本申请示出了一种时序数据库查询方法,应用于时序数据库,所述时序数据库内包括多个数据分组,所述方法包括:

获取每个数据分组的预设采样率及预设时间跨度,所述预设采样率与所述预设时间跨度成反比;

针对每个数据分组,按照该数据分组的预设采样率,对接收到的时序数据进行采样,将采样结果存储至该数据分组中;

接收数据查询请求,所述数据查询请求中包括查询时间;

选择所述预设时间跨度与所述查询时间相匹配的数据分组,作为所述数据查询请求的待查询分组;

在所述待查询分组中查询所述查询时间内的时序数据,作为所述数据查询请求的查询结果。

第二方面,本申请示出了一种时序数据库查询装置,应用于时序数据库,所述时序数据库内包括多个数据分组,所述装置包括:

获取模块,用于获取每个数据分组的预设采样率及预设时间跨度,所述预设采样率与所述预设时间跨度成反比;

存储模块,用于针对每个数据分组,按照该数据分组的预设采样率,对接收到的时序数据进行采样,将采样结果存储至该数据分组中;

接收模块,用于接收数据查询请求,所述数据查询请求中包括查询时间;

选择模块,用于选择所述预设时间跨度与所述查询时间相匹配的数据分组,作为所述数据查询请求的待查询分组;

查询模块,用于在所述待查询分组中查询所述查询时间内的时序数据,作为所述数据查询请求的查询结果。

第三方面,本申请示出了一种电子设备,所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一项所述的时序数据库查询方法的步骤。

第四方面,本申请示出了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的时序数据库查询方法的步骤。

与现有技术相比,本申请包括以下优点:

在本申请中,首先,获取每个数据分组的预设采样率及预设时间跨度,预设采样率与预设时间跨度成反比,针对每个数据分组,按照该数据分组的预设采样率,对接收到的时序数据进行采样,将采样结果存储至该数据分组中,然后,接收数据查询请求,数据查询请求中包括查询时间,选择预设时间跨度与查询时间相匹配的数据分组,作为数据查询请求的待查询分组,进而,在待查询分组中查询查询时间内的时序数据,作为数据查询请求的查询结果。

这样,由于每个数据分组的预设采样率与预设时间跨度成反比,也就是说,预设时间跨度越长的数据分组,其预设采样率越低,采样间隔越大,在接收到数据查询请求之后,数据查询请求的查询时间越长,则其相匹配的数据分组的预设时间跨度越长,预设采样率越低,因此,即使数据查询请求的查询时间较长,时序数据库的读写数据量也不会过大,从而可以提高时序数据库的容灾能力,提高时序数据库的稳定性。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是本申请的一种时序数据库查询方法的步骤流程图;

图2是本申请的一种时序数据库中进行数据写入的方案示意图;

图3是本申请的一种时序数据库中进行数据查询的方案示意图;

图4是本申请的另一种时序数据库查询方法的步骤流程图;

图5是本申请的一种时序数据库查询方法的方案示意图;

图6是本申请的一种时序数据库查询装置的结构框图;

图7是本申请的一种电子设备的结构框图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

时序数据是指时间序列数据,也就是同一统一指标按时间顺序记录的数据列,其结构主要包含Metrics、Timestamp、Tags和Value几部分。其中,Metrics表示时序数据指标的名称,Timestamp即为时间戳,表示时序数据对应的具体时间,Tags是一个或者多个维度的组合,主要用于描述Metrics的不同维度,一个Tags由tagk和tagv组成,tagk指定了某个维度,tagv表示该维度下的值,Value表示时序数据在timestamp时刻下以tags为维度的metrics指标的值。

相关技术中,时序数据库容灾能力较差,很难承受查询时间较长的查询请求。举例而言,如果某一指标一天有N个时序数据写入时序数据库,那么,当时序数据库接收到针对该指标的查询时间为30天的查询请求时,则需要查询30N个时序数据,读写数据量较大,导致时序数据库的负载升高,查询速度变慢,进而,很可能发生写入积压,并且,这会是一个不断恶化的过程,恢复的周期一般也都会比较长,从而影响整个时序数据库的稳定性。

为了解决上述问题,本申请提出了一种时序数据库查询方法,下面从总体上对本发明实施例提供的时序数据库查询方法进行说明,该方法包括如下步骤:

获取每个数据分组的预设采样率及预设时间跨度,预设采样率与预设时间跨度成反比;

针对每个数据分组,按照该数据分组的预设采样率,对接收到的时序数据进行采样,将采样结果存储至该数据分组中;

接收数据查询请求,数据查询请求中包括查询时间;

选择预设时间跨度与查询时间相匹配的数据分组,作为数据查询请求的待查询分组;

在待查询分组中查询查询时间内的时序数据,作为数据查询请求的查询结果。

由以上可见,本申请中每个数据分组的预设采样率与预设时间跨度成反比,也就是说,预设时间跨度越长的数据分组,其预设采样率越低,采样间隔越大,在接收到数据查询请求之后,数据查询请求的查询时间越长,则其相匹配的数据分组的预设时间跨度越长,预设采样率越低,因此,即使数据查询请求的查询时间较长,时序数据库的读写数据量也不会过大,从而可以提高时序数据库的容灾能力,提高时序数据库的稳定性。

下面将通过具体的实施例,对本发明实施例提供的时序数据库查询方法进行详细描述。

参照图1,示出了本申请的一种时序数据库查询方法的步骤流程图,该方法应用于时序数据库,时序数据库内包括多个数据分组,具体可以包括如下步骤:

S101:获取每个数据分组的预设采样率及预设时间跨度,预设采样率与预设时间跨度成反比。

其中,数据分组的预设采样率用于指示该数据分组对时序数据的采样间隔,比如,可以预设每隔30个时序数据进行一次采样,或者,也可以预设每隔30秒进行一次采样,等等,本申请对此不做限定。可以理解,预设采样率越高,该数据分组对时序数据的采样间隔越短,则该数据分组在单位时间内的数据量越大,反之,预设采样率越低,该数据分组对时序数据的采样间隔越长,则该数据分组在单位时间内的数据量越小。

数据分组的预设时间跨度与预设采样率成反比,也就是说,预设时间跨度越短的数据分组,其预设采样率越高,在单位时间内的数据量越大,反之,预设时间跨度越长的数据分组,其预设采样率越低,在单位时间内的数据量越小。

S102:针对每个数据分组,按照该数据分组的预设采样率,对接收到的时序数据进行采样,将采样结果存储至该数据分组中。

在本步骤中,可以根据每个数据分组的预设采样率,对接收到的时序数据进行采样,其中,采样的方式可以为选取极值、平均值、随机值等任意一种或多种方式,每个数据分组的采样方式可以相同,也可以不同,本申请对此不做限定。

在本申请中,时序数据库内的多个数据分组的数据之间进行了物理隔离,存储在不同的存储空间内。举例而言,不同的数据分组可以存储在同一存储的不同磁盘内,或者,时序数据库可以是分布式时序数据库,由多个通信连接的存储设备组成,这样,时序数据库内的多个数据分组可以分别存储在不同的存储设备中。一种实现方式中,每个数据分组都具有唯一对应的预设存储路径,用于指示该数据分组的存储空间,获得采样结果后,可以根据该数据分组的预设存储路径,将采样得到的时序数据存储至该数据分组的存储空间中。

一种实现方式中,在时序数据库中还包括对其运行状态进行监控所需的监控指标信息,监控指标信息可以包括内存占用信息、延迟信息、QPS(Query Per Second,每秒查询率)信息等等。在本申请中,可以将各个数据分组的监控指标信息和时序数据分别存储,举例而言,针对每个数据分组,在按照该数据分组的预设采样率,对接收到的时序数据进行采样之后,将采样结果存储至该数据分组的第一存储空间中,同时,在获取该数据分组的监控指标信息之后,将监控指标信息存储至该数据分组的第二存储空间中。这样,一方面,在时序数据库内的多个数据分组的数据之间进行了物理隔离情况下,便于快速及时的发现各个数据分组的问题,从而进行有效的处理,另一方面,监控指标信息和时序数据分别进行存储,可以减少存储错误和数据混乱的情况。

参照图2,示出了本申请的一种时序数据库中进行数据写入的方案示意图,时序数据可以来自于不同的客户端,时序数据库接收到的时序数据,除了存储在原始队列中,还可以根据不同数据分组的预设采样率,被采样存储到各个数据分组中。

S103:接收数据查询请求,数据查询请求中包括查询时间。

在时序数据库中,具有唯一的查询入口,查询入口接收到的数据查询请求可以是一个,也可以是多个,每个数据查询请求中均包括查询时间,也就是该数据查询请求所请求的时序数据的时间范围。

S104:选择预设时间跨度与查询时间相匹配的数据分组,作为数据查询请求的待查询分组。

接收到数据查询请求后,可以从时序数据库的各个数据分组中选择预设时间跨度与查询时间相匹配的数据分组,作为数据查询请求的待查询分组。其中,数据分组的预设时间跨度是预先配置好的,可以与各种长度的查询时间相匹配。举例而言,各个数据分组的预设时间跨度可以预设为一天、一周、一月和一年,这样,接收到数据查询请求之后,若数据查询请求的查询时间为2020年1月1日至2020年1月2日两天,那么,与其相匹配的预设时间跨度则为一天,因此,选择预设时间跨度为一天的数据分组,作为数据查询请求的待查询分组。

一种实现方式中,在确定数据查询请求的待查询分组之后,可以进一步判断待查询分组的负载情况是否达到预设超负载条件,若待查询分组的负载情况未达到预设超负载条件,则继续执行下一步骤,若待查询分组的负载情况达到预设超负载条件,则重新选择待查询分组。

其中,负载情况可以体现某一数据分组当前承担的数据查询请求压力,可以理解,若数据分组当前承担的数据查询请求压力过大,很可能导致查询速度变慢、写入积压等情况,在待查询分组的负载情况达到预设超负载条件的情况下,为数据查询请求选择新的待查询分组,可以减少对原待查询分组的压力,提高时序数据库的稳定性。

待查询分组的负载情况可以从查询请求队列的长度或慢查询请求的数量等几个方面来判断。

举例而言,每个数据分组可以预设一个查询请求队列,查询请求队列的长度即为该数据分组需要执行的数据查询请求的数量,通过判断待查询分组的查询请求队列的长度是否大于第一预设阈值,可以判断待查询分组的负载情况,若查询请求队列的长度大于第一预设阈值,则判定待查询分组的负载情况达到预设超负载条件,若查询请求队列的长度不大于第一预设阈值,则判定待查询分组的负载情况未达到预设超负载条件。

或者,也可以根据待查询分组当前执行的慢查询请求的数量,判断待查询分组的负载情况,若待查询分组当前执行的慢查询请求的数量大于第二预设阈值,则判定待查询分组的负载情况达到预设超负载条件,若待查询分组当前执行的慢查询请求的数量不大于第二预设阈值,则判定待查询分组的负载情况未达到预设超负载条件。

另外,也可以综合考虑查询请求队列的长度或慢查询请求的数量,只要其中一个方面显示待查询分组达到超负载条件,则重新选择待查询分组。具体地,可以根据时序数据的性质和用户需求进行设置,本申请对此不做限定。

在本申请中,在待查询分组的负载情况达到预设超负载条件的情况下,可以从未被选择过的其他数据分组中,选择预设采样率最低的数据分组,作为数据查询请求的新的待查询分组,并返回判断待查询分组的负载情况是否达到预设超负载条件的步骤。

也就是说,按照预设采样率由低到高的顺序,选择数据分组,直到找到未达到预设超负载条件的待查询分组。举例而言,若数据查询请求的查询时间为2020年1月1日至2020年1月2日两天,那么,与其相匹配的预设时间跨度则为一天,在预设时间跨度为一天的数据分组的负载情况达到预设超负载条件的情况下,选择预设采样率最低,也就是预设时间跨度最长的数据分组,作为新的待查询分组,这样,预设采样率最低的数据分组的数据量更小,可以更为有效的降低时序数据库中的查询压力。

S105:在待查询分组中查询查询时间内的时序数据,作为数据查询请求的查询结果。

可以理解,数据分组的预设时间跨度与预设采样率成反比,也就是说,数据查询请求的查询时间越短,对应的待查询分组的预设时间跨度越短,则待查询分组的预设采样率越高,在单位时间内的数据量越大,反之,数据查询请求的查询时间越长,对应的待查询分组的预设时间跨度越长,则待查询分组的预设采样率越低,在单位时间内的数据量越小。这样,不论数据查询请求的查询时间长短,其对应的查询结果的数据量的大小区别都不大,从而可以提高时序数据库的容灾能力,提高时序数据库的稳定性。

参照图3,示出了本申请的一种时序数据库中进行数据查询的方案示意图,各个客户端的数据查询请求均由查询入口进行处理,根据每个数据分组的预设时间跨度、查询请求队列的长度和慢查询请求的数量,可以为每个数据查询请求选择最合适的待查询分组,进而将查询结果返回各个客户端。

举例而言,如果某一指标每分钟产生N个时序数据,那么,当数据查询请求的查询时间为一个月的情况下,相关技术中的时序数据库需要返回30*24*60*N个时序数据,对时序数库据造成很大的压力,而根据本申请,如果预设时间跨度为一个月的数据分组的预设采样率为每M个时序数据进行一次采样,那么,时序数据库需要返回的时序数据就只有30*24*60*N/M个点,对时序数据的查询压力可以降低M倍。

在本申请中,各个数据分组还可以具有预设保存时间,预设保存时间与预设采样率成反比,针对每个数据分组,当该数据分组的保存时间达到预设保存时间时,则删除该数据分组。这样,预设采样率较高、数据量较大的数据分组中,时序数据的保存时间更短,当需要查询时间较久的时序数据时,可以从预设采样率较低、数据量较小的数据分组中进行查询,不仅可以提高查询效率,也会有效的降低时序数据占用的磁盘空间的大小。

由以上可见,本申请中每个数据分组的预设采样率与预设时间跨度成反比,也就是说,预设时间跨度越长的数据分组,其预设采样率越低,采样间隔越大,在接收到数据查询请求之后,数据查询请求的查询时间越长,则其相匹配的数据分组的预设时间跨度越长,预设采样率越低,因此,即使数据查询请求的查询时间较长,时序数据库的读写数据量也不会过大,从而可以提高时序数据库的容灾能力,提高时序数据库的稳定性。

参照图4,示出了本申请的另一种时序数据库查询方法的步骤流程图,该方法应用于时序数据库,时序数据库内包括多个数据分组,具体可以包括如下步骤:

S201:获取每个数据分组的预设采样率及预设时间跨度,预设采样率与预设时间跨度成反比。

其中,数据分组的预设采样率用于指示该数据分组对时序数据的采样间隔,比如,可以预设每隔30个时序数据进行一次采样,或者,也可以预设每隔30秒进行一次采样,等等,本申请对此不做限定。可以理解,预设采样率越高,该数据分组对时序数据的采样间隔越短,则该数据分组在单位时间内的数据量越大,反之,预设采样率越低,该数据分组对时序数据的采样间隔越长,则该数据分组在单位时间内的数据量越小。

数据分组的预设时间跨度与预设采样率成反比,也就是说,预设时间跨度越短的数据分组,其预设采样率越高,在单位时间内的数据量越大,反之,预设时间跨度越长的数据分组,其预设采样率越低,在单位时间内的数据量越小。

S202:针对每个数据分组,按照该数据分组的预设采样率,对接收到的时序数据进行采样,将采样结果存储至该数据分组中。

在本步骤中,可以根据每个数据分组的预设采样率,对接收到的时序数据进行采样,其中,采样的方式可以为选取极值、平均值、随机值等任意一种或多种方式,每个数据分组的采样方式可以相同,也可以不同,本申请对此不做限定。

在本申请中,时序数据库内的多个数据分组的数据之间进行了物理隔离,存储在不同的存储空间内。举例而言,不同的数据分组可以存储在同一存储的不同磁盘内,或者,时序数据库可以是分布式时序数据库,由多个通信连接的存储设备组成,这样,时序数据库内的多个数据分组可以分别存储在不同的存储设备中。一种实现方式中,每个数据分组都具有唯一对应的预设存储路径,用于指示该数据分组的存储空间,获得采样结果后,可以根据该数据分组的预设存储路径,将采样得到的时序数据存储至该数据分组的存储空间中。

一种实现方式中,在时序数据库中还包括对其运行状态进行监控所需的监控指标信息,监控指标信息可以包括内存占用信息、延迟信息、QPS(Query Per Second,每秒查询率)信息等等。在本申请中,可以将各个数据分组的监控指标信息和时序数据分别存储,举例而言,针对每个数据分组,在按照该数据分组的预设采样率,对接收到的时序数据进行采样之后,将采样结果存储至该数据分组的第一存储空间中,同时,在获取该数据分组的监控指标信息之后,将监控指标信息存储至该数据分组的第二存储空间中。这样,一方面,在时序数据库内的多个数据分组的数据之间进行了物理隔离情况下,便于快速及时的发现各个数据分组的问题,从而进行有效的处理,另一方面,监控指标信息和时序数据分别进行存储,可以减少存储错误和数据混乱的情况。

S203:接收数据查询请求,数据查询请求中包括查询时间。

在时序数据库中,具有唯一的查询入口,查询入口接收到的数据查询请求可以是一个,也可以是多个,每个数据查询请求中均包括查询时间,也就是该数据查询请求所请求的时序数据的时间范围。

S204:选择预设时间跨度与查询时间相匹配的数据分组,作为数据查询请求的待查询分组。

接收到数据查询请求后,可以从时序数据库的各个数据分组中选择预设时间跨度与查询时间相匹配的数据分组,作为数据查询请求的待查询分组。其中,数据分组的预设时间跨度是预先配置好的,可以与各种长度的查询时间相匹配。举例而言,各个数据分组的预设时间跨度可以预设为一天、一周、一月和一年,这样,接收到数据查询请求之后,若数据查询请求的查询时间为2020年1月1日至2020年1月2日两天,那么,与其相匹配的预设时间跨度则为一天,因此,选择预设时间跨度为一天的数据分组,作为数据查询请求的待查询分组。

S205:判断待查询分组的负载情况是否达到预设超负载条件,若待查询分组的负载情况未达到预设超负载条件,则执行S206,若待查询分组的负载情况达到预设超负载条件,则执行S207。

其中,负载情况可以体现某一数据分组当前承担的数据查询请求压力,可以理解,若数据分组当前承担的数据查询请求压力过大,很可能导致查询速度变慢、写入积压等情况,在待查询分组的负载情况达到预设超负载条件的情况下,为数据查询请求选择新的待查询分组,可以减少对原待查询分组的压力,提高时序数据库的稳定性。

待查询分组的负载情况可以从查询请求队列的长度或慢查询请求的数量等几个方面来判断。

举例而言,每个数据分组可以预设一个查询请求队列,查询请求队列的长度即为该数据分组需要执行的数据查询请求的数量,通过判断待查询分组的查询请求队列的长度是否大于第一预设阈值,可以判断待查询分组的负载情况,若查询请求队列的长度大于第一预设阈值,则判定待查询分组的负载情况达到预设超负载条件,若查询请求队列的长度不大于第一预设阈值,则判定待查询分组的负载情况未达到预设超负载条件。

或者,也可以根据待查询分组当前执行的慢查询请求的数量,判断待查询分组的负载情况,若待查询分组当前执行的慢查询请求的数量大于第二预设阈值,则判定待查询分组的负载情况达到预设超负载条件,若待查询分组当前执行的慢查询请求的数量不大于第二预设阈值,则判定待查询分组的负载情况未达到预设超负载条件。

另外,也可以综合考虑查询请求队列的长度或慢查询请求的数量,只要其中一个方面显示待查询分组达到超负载条件,则重新选择待查询分组。具体地,可以根据时序数据的性质和用户需求进行设置,本申请对此不做限定。

S206:在待查询分组中查询查询时间内的时序数据,作为数据查询请求的查询结果。

可以理解,数据分组的预设时间跨度与预设采样率成反比,也就是说,数据查询请求的查询时间越短,对应的待查询分组的预设时间跨度越短,则待查询分组的预设采样率越高,在单位时间内的数据量越大,反之,数据查询请求的查询时间越长,对应的待查询分组的预设时间跨度越长,则待查询分组的预设采样率越低,在单位时间内的数据量越小。这样,不论数据查询请求的查询时间长短,其对应的查询结果的数据量的大小区别都不大,从而可以提高时序数据库的容灾能力,提高时序数据库的稳定性。

举例而言,如果某一指标每分钟产生N个时序数据,那么,当数据查询请求的查询时间为一个月的情况下,相关技术中的时序数据库需要返回30*24*60*N个时序数据,对时序数库据造成很大的压力,而根据本申请,如果预设时间跨度为一个月的数据分组的预设采样率为每M个时序数据进行一次采样,那么,时序数据库需要返回的时序数据就只有30*24*60*N/M个点,对时序数据的查询压力可以降低M倍。

S207:从未被选择过的其他数据分组中,选择预设采样率最低的数据分组,作为数据查询请求的新的待查询分组,并返回S205。

也就是说,按照预设采样率由低到高的顺序,选择数据分组,直到找到未达到预设超负载条件的待查询分组。举例而言,若数据查询请求的查询时间为2020年1月1日至2020年1月2日两天,那么,与其相匹配的预设时间跨度则为一天,在预设时间跨度为一天的数据分组的负载情况达到预设超负载条件的情况下,选择预设采样率最低,也就是预设时间跨度最长的数据分组,作为新的待查询分组,这样,预设采样率最低的数据分组的数据量更小,可以更为有效的降低时序数据库中的查询压力。

在本申请中,各个数据分组还可以具有预设保存时间,预设保存时间与预设采样率成反比,针对每个数据分组,当该数据分组的保存时间达到预设保存时间时,则删除该数据分组。这样,预设采样率较高、数据量较大的数据分组中,时序数据的保存时间更短,当需要查询时间较久的时序数据时,可以从预设采样率较低、数据量较小的数据分组中进行查询,不仅可以提高查询效率,也会有效的降低时序数据占用的磁盘空间的大小。

由以上可见,本申请中每个数据分组的预设采样率与预设时间跨度成反比,也就是说,预设时间跨度越长的数据分组,其预设采样率越低,采样间隔越大,在接收到数据查询请求之后,数据查询请求的查询时间越长,则其相匹配的数据分组的预设时间跨度越长,预设采样率越低,因此,即使数据查询请求的查询时间较长,时序数据库的读写数据量也不会过大,从而可以提高时序数据库的容灾能力,提高时序数据库的稳定性。

参照图5,示出了本申请的一种时序数据库查询方法的方案示意图,TSDB(时序数据库)中各个数据分组的预设采样率和预设时间跨度均为预先配置加载的,用户可以对TSDB中的时序数据进行查询和写入操作,另外,TSDB对自身系统进行监控,生成监控指标信息,管理员可以对监控指标信息进行查看管理,进而对TSDB进行监控。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作并不一定是本申请所必须的。

参照图6,示出了本申请的一种时序数据库查询装置的结构框图,该装置应用于时序数据库,时序数据库内包括多个数据分组,具体可以包括如下模块:

获取模块301,用于获取每个数据分组的预设采样率及预设时间跨度,预设采样率与预设时间跨度成反比;

存储模块302,用于针对每个数据分组,按照该数据分组的预设采样率,对接收到的时序数据进行采样,将采样结果存储至该数据分组中;

接收模块303,用于接收数据查询请求,数据查询请求中包括查询时间;

选择模块304,用于选择预设时间跨度与查询时间相匹配的数据分组,作为数据查询请求的待查询分组;

查询模块305,用于在待查询分组中查询查询时间内的时序数据,作为数据查询请求的查询结果。

一种实现方式中,所述选择模块304,还用于判断所述待查询分组的负载情况是否达到预设超负载条件;若所述待查询分组的负载情况未达到所述预设超负载条件,则执行所述在所述待查询分组中查询所述查询时间内的时序数据,作为所述数据查询请求的查询结果的步骤。

一种实现方式中,所述选择模块304,还用于在所述待查询分组的负载情况达到所述预设超负载条件的情况下,从未被选择过的其他数据分组中,选择所述预设采样率最低的数据分组,作为所述数据查询请求的新的待查询分组,并返回所述判断所述待查询分组的负载情况是否达到预设超负载条件的步骤。

一种实现方式中,所述选择模块304,具体用于判断所述待查询分组的查询请求队列的长度是否大于第一预设阈值;若大于所述第一预设阈值,则判定所述待查询分组的负载情况达到所述预设超负载条件;若不大于所述第一预设阈值,则判定所述待查询分组的负载情况未达到所述预设超负载条件。

一种实现方式中,所述选择模块304,具体用于判断所述待查询分组当前执行的慢查询请求的数量是否大于第二预设阈值;若大于所述第二预设阈值,则判定所述待查询分组的负载情况达到所述预设超负载条件;若不大于所述第二预设阈值,则判定所述待查询分组的负载情况未达到所述预设超负载条件。

一种实现方式中,所述存储模块302,还用于获取每个数据分组的预设保存时间,所述预设保存时间与所述预设采样率成反比;针对每个数据分组,当该数据分组的保存时间达到所述预设保存时间时,删除该数据分组。

一种实现方式中,所述存储模块302,还用于针对每个数据分组,按照该数据分组的预设采样率,对接收到的时序数据进行采样,将采样结果存储至该数据分组的第一存储空间中;针对每个数据分组,获取该数据分组的监控指标信息,将所述监控指标信息存储至该数据分组的第二存储空间中。

由以上可见,本申请中每个数据分组的预设采样率与预设时间跨度成反比,也就是说,预设时间跨度越长的数据分组,其预设采样率越低,采样间隔越大,在接收到数据查询请求之后,数据查询请求的查询时间越长,则其相匹配的数据分组的预设时间跨度越长,预设采样率越低,因此,即使数据查询请求的查询时间较长,时序数据库的读写数据量也不会过大,从而可以提高时序数据库的容灾能力,提高时序数据库的稳定性。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本发明实施例提供的时序数据库查询装置具备执行时序数据库查询方法相应的功能模块,可执行本发明实施例所提供的时序数据库查询方法,且能达到相同的有益效果。

在本发明提供的又一实施例中,还提供了一种电子设备,电子设备可以包括:处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述时序数据库查询方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。示例的,如图7所示,该电子设备具体可以包括:处理器401、存储装置402、具有触摸功能的显示屏403、输入装置404、输出装置405以及通信装置406。该电子设备中处理器401的数量可以是一个或者多个,图7中以一个处理器401为例。该电子设备的处理器401、存储装置402、显示屏403、输入装置404、输出装置405以及通信装置406可以通过总线或者其他方式连接。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的时序数据库查询方法。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的时序数据库查询方法。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

相关技术
  • 一种时序数据库查询方法、装置、电子设备及存储介质
  • 一种任务名称查询方法、装置、电子设备及存储介质
技术分类

06120112352834