CN113761013A - 时序数据预统计方法、装置及存储介质 - Google Patents

时序数据预统计方法、装置及存储介质 Download PDF

Info

Publication number
CN113761013A
CN113761013A CN202010504704.8A CN202010504704A CN113761013A CN 113761013 A CN113761013 A CN 113761013A CN 202010504704 A CN202010504704 A CN 202010504704A CN 113761013 A CN113761013 A CN 113761013A
Authority
CN
China
Prior art keywords
data
statistical
time
filtering
query
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010504704.8A
Other languages
English (en)
Inventor
王玉华
许正一
张建兴
金兵兵
李林森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN202010504704.8A priority Critical patent/CN113761013A/zh
Publication of CN113761013A publication Critical patent/CN113761013A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2477Temporal data queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Fuzzy Systems (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种时序数据预统计方法、装置及存储介质,属于大数据处理领域。在本申请中,时序数据表包括的时序数据按照元数据和数据点的格式存储,元数据用于描述相应的数据点以及相应的数据采集端,数据点包括多个采集时间以及在每个采集时间采集的一个或多个监测数据,且用时序数据描述表来存储时序数据表中的时序数据的描述信息。也即是,本申请方案中对时序数据的存储类型进行了结构优化,每条监测记录可以包括一个数据采集端在多个采集时间采集的各个监测数据,这样,遍历一个表项可以获取更多的数据,提高预统计中的检索效率,且预统计时无需进行表关联,大大提高预统计效率。

Description

时序数据预统计方法、装置及存储介质
技术领域
本申请涉及大数据处理领域,特别涉及一种时序数据预统计方法、装置及存储介质。
背景技术
随着云计算和物联网的发展,时序数据的数据量急剧膨胀,高效的分析时序数据,使时序数据产生业务价值成为一个热门话题。时序数据是指在时间上持续产生的一系列监测指标的数据,例如,股票价格、气温变化、网站的浏览访问数据、个人健康数据、工业传感器数据、业务服务器的系统监控数据(如内存占用率)等。数据采集端实时采集时序数据,将时序数据实时上传到数据服务器,由数据服务器按照一定的存储模型将时序数据存储在时序数据库包括的时序数据表中,之后,数据服务器可以对时序数据表中的时序数据进行预统计,以从海量的时序数据中统计得到有价值的信息。
在相关技术中,时序数据库按照单值模型对时序数据进行存储,即一条监测记录只对应一个数据采集端的一个监测指标的数据,所有的时序数据都存储在一张时序数据表中,预统计的过程中需要遍历海量的无用数据,耗时很长。另外,如果时序数据分多张表存储,如果需要对各个数据采集端的多个监测指标进行预统计,则需要关联多张表,而表关联也是非常耗时的。
发明内容
本申请提供了一种时序数据预统计方法、装置及存储介质,可以提高时序数据预统计的效率。所述技术方案如下:
一方面,提供了一种时序数据预统计方法,所述方法包括:
获取预统计任务对应的预统计条件;
根据所述预统计条件和时序数据描述表,对存储的时序数据表进行预统计,得到预统计结果;
其中,所述时序数据表用于按照元数据和数据点的格式存储时序数据,所述元数据用于描述相应的数据点以及相应的数据采集端,所述数据点包括多个采集时间以及在每个采集时间采集的一个或多个监测数据,所述时序数据描述表用于存储所述时序数据表中的时序数据的描述信息。
可选地,所述预统计条件包括过滤条件、预统计函数和分组指示信息,所述分组指示信息用于指示是否需要分组;
所述根据所述预统计条件和时序数据描述表,对存储的时序数据表进行预统计,得到预统计结果,包括:
根据所述时序数据描述表,从所述时序数据表中提取满足所述过滤条件的数据,得到预统计候选数据表;
根据所述预统计函数和所述分组指示信息,对所述预统计候选数据表进行处理,得到所述预统计结果。
可选地,所述过滤条件包括数据过滤类别、时间过滤范围、标签过滤数据和监测指标过滤数据;
所述根据所述时序数据描述表,从所述时序数据表中提取满足所述过滤条件的数据,得到预统计候选数据表,包括:
根据所述数据过滤类别和所述时序数据描述表,从所述时序数据表中提取数据类别为所述数据过滤类别的表项,得到第一候选表;
根据所述标签过滤数据和所述时序数据描述表,从所述第一候选表中提取满足条件的表项,得到第二候选表,所述满足条件的表项包括的标签中含有所述标签过滤数据所指示的标签;
根据所述时间过滤范围、所述监测指标过滤数据和所述时序数据描述表,对所述第二候选表中的数据进行过滤,得到所述预统计候选数据表。
可选地,所述预统计条件还包括上传频率;
所述根据所述数据过滤类别和所述时序数据描述表,从所述时序数据表中提取数据类别为所述数据过滤类别的表项,得到第一候选表之前,还包括:
按照所述时间过滤范围和所述上传频率,将所述预统计任务划分为一个或多个子统计任务,每个子统计任务对应所述时间过滤范围内的一个子时间范围;
如果参考子时间范围为历史时间范围,所述参考子时间范围为参考子统计任务对应的子时间范围,所述参考子统计任务为所述一个或多个子统计任务中的一个,则所述根据所述时间过滤范围、所述监测指标过滤数据和所述时序数据描述表,对所述第二候选表中的数据进行过滤,得到所述预统计候选数据表,包括:
根据所述参考子时间范围和所述时序数据描述表,从所述第二候选表中,提取采集时间在所述参考子时间范围内的表项,得到第三候选表;
根据所述监测指标过滤数据和所述时序数据描述表,将所述第三候选表中除所述监测指标过滤数据所指示的监测数据之外的监测数据过滤掉,得到所述参考子统计任务对应的候选数据表,所述预统计候选数据表是通过所述一个或多个子统计任务对应的候选数据表组成的。
可选地,所述按照所述时间过滤范围和所述上传频率,将所述预统计任务划分为一个或多个子统计任务之后,还包括:
如果所述参考子时间范围为未来时间范围,则在所述参考子时间范围之后,执行根据所述数据过滤类别和所述时序数据描述表,从所述时序数据表中提取数据类别为所述数据过滤类别的表项,得到第一候选表的步骤;
所述根据所述时间过滤范围、所述监测指标过滤数据和所述时序数据描述表,对所述第二候选表中的数据进行过滤,得到所述预统计候选数据表,包括:
根据所述参考子时间范围和所述时序数据描述表,从所述第二候选表中,提取采集时间在所述参考子时间范围内的表项,得到第三候选表;
根据所述监测指标过滤数据和所述时序数据描述表,将所述第三候选表中除所述监测指标过滤数据所指示的监测数据之外的监测数据过滤掉,得到所述参考子统计任务对应的候选数据表。
可选地,所述标签过滤数据包括一个或多个参考标签名称以及每个参考标签名称对应的参考标签字段;
所述根据所述标签过滤数据和所述时序数据描述表,从所述第一候选表中提取满足条件的表项,得到第二候选表,包括:
根据所述一个或多个参考标签名称,以及所述时序数据描述表,从所述时序数据表中确定一个或多个标签位置;
从所述第一候选表中提取每个标签位置处的标签与相应的参考标签字段匹配的表项,得到所述第二候选表。
可选地,所述监测指标过滤数据包括一个或多个参考监测指标名称;
所述根据所述监测指标过滤数据和所述时序数据描述表,将所述第三候选表中除所述监测指标过滤数据所指示的监测数据之外的监测数据过滤掉,得到所述参考子统计任务对应的候选数据表,包括:
根据所述一个或多个参考监测指标名称和所述时序数据描述表,从所述第三候选表中确定一个或多个监测指标位置;
将所述第三候选表中监测数据的位置不在所述一个或多个监测指标位置的监测数据过滤掉,得到所述参考子统计任务对应的候选数据表。
可选地,所述预统计函数包括一个或多个降采样函数以及一个或多个聚合函数,且一个监测指标对应一个降采样函数和一个聚合函数;
所述根据所述预统计函数和所述分组指示信息,对所述预统计候选数据表进行处理,得到所述预统计结果,包括:
根据所述参考子统计任务对应的候选数据表中的监测数据所属的各个监测指标对应的降采样函数,对所述参考子统计任务对应的候选数据表中的各个表项进行降采样处理,得到降采样结果;
根据所述分组指示信息和所述参考子统计任务对应的候选数据表中的监测数据所属的各个监测指标对应的聚合函数,对所述降采样结果进行聚合处理,得到所述参考子统计任务对应的第一预统计结果,所述预统计结果是通过所述一个或多个子统计任务对应的第一预统计结果组成的。
可选地,所述预统计结果是按照元数据和数据点的格式存储在预统计结果表中,所述预统计结果表中的元数据是根据所述过滤条件确定的,所述预统计结果表中的数据点包括一个或多个预统计监测数据,所述预统计监测数据是根据所述预统计函数确定的。
可选地,所述方法还包括:
获取查询任务对应的预统计结果查询条件;
根据所述预统计结果查询条件,以及存储的一个或多个预统计结果,确定预统计查询结果。
可选地,所述一个或多个预统计结果分别存储在对应的一个预统计结果表中,所述预统计结果表中的元数据包括一个采集时间,所述预统计结果表以所述预统计任务的任务标识来标识,所述预统计结果查询条件包括参考任务标识和查询时间范围;
所述根据所述预统计结果查询条件,以及存储的一个或多个预统计结果,确定预统计查询结果,包括:
从存储的一个或多个预统计结果表中获取参考任务标识所标识的预统计结果表,作为预统计候选结果表;
从所述预统计候选结果表中,提取采集时间在所述查询时间范围内的表项,以得到所述预统计查询结果。
可选地,所述预统计结果查询条件还包括结果返回时间间隔、一个或多个降采样函数、一个或多个聚合函数、以及分组指示信息,且一个监测指标对应一个降采样函数和一个聚合函数;
所述从所述预统计候选结果表中,提取采集时间在所述查询时间范围内的表项,以得到所述预统计查询结果,包括:
从所述预统计候选结果表中,提取采集时间在所述查询时间范围内的表项,得到第一查询表;
按照所述查询时间范围以及所述结果返回时间间隔,确定多个子查询时间范围,每个子查询时间范围为所述查询时间范围内的一个子时间范围;
根据参考子查询时间范围,从所述第一查询表的表项中,提取采集时间在所述参考子查询时间范围内的表项,得到第二查询表,所述参考子查询时间范围为所述一个或多个子查询时间范围中的一个;
根据所述第二查询表中的预统计监测数据所属的各个监测指标对应的降采样函数,对所述第二查询表中的各个表项进行降采样处理,得到降采样查询结果;
根据所述分组指示信息和所述降采样查询结果中的预统计监测数据所属的各个监测指标对应的聚合函数,对所述降采样查询结果进行聚合处理,得到所述参考子查询时间范围对应的第一预统计查询结果,所述预统计查询结果是通过所述一个或多个子查询时间范围对应的第一预统计查询结果组成的。
可选地,所述方法还包括:
接收预统计状态查询指令,所述预统计状态查询指令携带参考任务标识;
根据所述参考任务标识,从存储的任务标识与任务状态的对应关系中,确定参考预统计任务的任务状态,所述参考预统计任务为所述参考任务标识所标识的预统计任务。
另一方面,提供了一种时序数据预统计装置,所述装置包括:
第一获取模块,用于获取预统计任务对应的预统计条件;
预统计模块,用于根据所述预统计条件和时序数据描述表,对存储的时序数据表进行预统计,得到预统计结果;
其中,所述时序数据表用于按照元数据和数据点的格式存储时序数据,所述元数据用于描述相应的数据点以及相应的数据采集端,所述数据点包括多个采集时间以及在每个采集时间采集的一个或多个监测数据,所述时序数据描述表用于存储所述时序数据表中的时序数据的描述信息。
可选地,所述预统计条件包括过滤条件、预统计函数和分组指示信息,所述分组指示信息用于指示是否需要分组;
所述预统计模块包括:
过滤单元,用于根据所述时序数据描述表,从所述时序数据表中提取满足所述过滤条件的数据,得到预统计候选数据表;
处理单元,用于根据所述预统计函数和所述分组指示信息,对所述预统计候选数据表进行处理,得到所述预统计结果。
可选地,所述过滤条件包括数据过滤类别、时间过滤范围、标签过滤数据和监测指标过滤数据;
所述过滤单元包括:
第一提取子单元,用于根据所述数据过滤类别和所述时序数据描述表,从所述时序数据表中提取数据类别为所述数据过滤类别的表项,得到第一候选表;
第二提取子单元,用于根据所述标签过滤数据和所述时序数据描述表,从所述第一候选表中提取满足条件的表项,得到第二候选表,所述满足条件的表项包括的标签中含有所述标签过滤数据所指示的标签;
过滤子单元,用于根据所述时间过滤范围、所述监测指标过滤数据和所述时序数据描述表,对所述第二候选表中的数据进行过滤,得到所述预统计候选数据表。
可选地,所述预统计条件还包括上传频率;
所述过滤单元还包括:
划分子单元,用于按照所述时间过滤范围和所述上传频率,将所述预统计任务划分为一个或多个子统计任务,每个子统计任务对应所述时间过滤范围内的一个子时间范围;
如果参考子时间范围为历史时间范围,所述参考子时间范围为参考子统计任务对应的子时间范围,所述参考子统计任务为所述一个或多个子统计任务中的一个,则过滤子单元具体用于:
根据所述参考子时间范围和所述时序数据描述表,从所述第二候选表中,提取采集时间在所述参考子时间范围内的表项,得到第三候选表;
根据所述监测指标过滤数据和所述时序数据描述表,将所述第三候选表中除所述监测指标过滤数据所指示的监测数据之外的监测数据过滤掉,得到所述参考子统计任务对应的候选数据表,所述预统计候选数据表是通过所述一个或多个子统计任务对应的候选数据表组成的。
可选地,所述过滤单元还包括:
触发子单元,用于如果所述参考子时间范围为未来时间范围,则在所述参考子时间范围之后,触发所述第一提取子单元执行根据所述数据过滤类别和所述时序数据描述表,从所述时序数据表中提取数据类别为所述数据过滤类别的表项,得到第一候选表;
所述过滤子单元具体用于:
根据所述参考子时间范围和所述时序数据描述表,从所述第二候选表中,提取采集时间在所述参考子时间范围内的表项,得到第三候选表;
根据所述监测指标过滤数据和所述时序数据描述表,将所述第三候选表中除所述监测指标过滤数据所指示的监测数据之外的监测数据过滤掉,得到所述参考子统计任务对应的候选数据表。
可选地,所述标签过滤数据包括一个或多个参考标签名称以及每个参考标签名称对应的参考标签字段;
所述第二提取子单元具体用于:
根据所述一个或多个参考标签名称,以及所述时序数据描述表,从所述时序数据表中确定一个或多个标签位置;
从所述第一候选表中提取每个标签位置处的标签与相应的参考标签字段匹配的表项,得到所述第二候选表。
可选地,所述监测指标过滤数据包括一个或多个参考监测指标名称;
所述过滤子单元具体用于:
根据所述一个或多个参考监测指标名称和所述时序数据描述表,从所述第三候选表中确定一个或多个监测指标位置;
将所述第三候选表中监测数据的位置不在所述一个或多个监测指标位置的监测数据过滤掉,得到所述参考子统计任务对应的候选数据表。
可选地,所述预统计函数包括一个或多个降采样函数以及一个或多个聚合函数,且一个监测指标对应一个降采样函数和一个聚合函数;
所述处理单元,包括:
第一降采样子单元,用于根据所述参考子统计任务对应的候选数据表中的监测数据所属的各个监测指标对应的降采样函数,对所述参考子统计任务对应的候选数据表中的各个表项进行降采样处理,得到降采样结果;
第一聚合子单元,用于根据所述分组指示信息和所述参考子统计任务对应的候选数据表中的监测数据所属的各个监测指标对应的聚合函数,对所述降采样结果进行聚合处理,得到所述参考子统计任务对应的第一预统计结果,所述预统计结果是通过所述一个或多个子统计任务对应的第一预统计结果组成的。
可选地,所述预统计结果是按照元数据和数据点的格式存储在预统计结果表中,所述预统计结果表中的元数据是根据所述过滤条件确定的,所述预统计结果表中的数据点包括一个或多个预统计监测数据,所述预统计监测数据是根据所述预统计函数确定的。
可选地,所述装置还包括:
第二获取模块,用于获取查询任务对应的预统计结果查询条件;
第一确定模块,用于根据所述预统计结果查询条件,以及存储的一个或多个预统计结果,确定预统计查询结果。
可选地,所述一个或多个预统计结果分别存储在对应的一个预统计结果表中,所述预统计结果表中的元数据包括一个采集时间,所述预统计结果表以所述预统计任务的任务标识来标识,所述预统计结果查询条件包括参考任务标识和查询时间范围;
所述第一确定模块包括:
获取单元,用于从存储的一个或多个预统计结果表中获取参考任务标识所标识的预统计结果表,作为预统计候选结果表;
提取单元,用于从所述预统计候选结果表中,提取采集时间在所述查询时间范围内的表项,以得到所述预统计查询结果。
可选地,所述预统计结果查询条件还包括结果返回时间间隔、一个或多个降采样函数、一个或多个聚合函数、以及分组指示信息,且一个监测指标对应一个降采样函数和一个聚合函数;
所述提取单元包括:
第三提取子单元,用于从所述预统计候选结果表中,提取采集时间在所述查询时间范围内的表项,得到第一查询表;
确定子单元,用于按照所述查询时间范围以及所述结果返回时间间隔,确定多个子查询时间范围,每个子查询时间范围为所述查询时间范围内的一个子时间范围;
第四提取子单元,用于根据参考子查询时间范围,从所述第一查询表的表项中,提取采集时间在所述参考子查询时间范围内的表项,得到第二查询表,所述参考子查询时间范围为所述一个或多个子查询时间范围中的一个;
第二降采样子单元,用于根据所述第二查询表中的预统计监测数据所属的各个监测指标对应的降采样函数,对所述第二查询表中的各个表项进行降采样处理,得到降采样查询结果;
第二聚合子单元,用于根据所述分组指示信息和所述降采样查询结果中的预统计监测数据所属的各个监测指标对应的聚合函数,对所述降采样查询结果进行聚合处理,得到所述参考子查询时间范围对应的第一预统计查询结果,所述预统计查询结果是通过所述一个或多个子查询时间范围对应的第一预统计查询结果组成的。
可选地,所述装置还包括:
接收模块,用于接收预统计状态查询指令,所述预统计状态查询指令携带参考任务标识;
第二确定模块,用于根据所述参考任务标识,从存储的任务标识与任务状态的对应关系中,确定参考预统计任务的任务状态,所述参考预统计任务为所述参考任务标识所标识的预统计任务。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器、通信接口、存储器和通信总线,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信,所述存储器用于存放计算机程序,所述处理器用于执行所述存储器上所存放的程序,以实现上述所述时序数据预统计方法的步骤。
另一方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述所述时序数据预统计方法的步骤。
另一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述所述的时序数据预统计方法的步骤。
本申请提供的技术方案至少可以带来以下有益效果:
在本申请中,时序数据表包括的时序数据按照元数据和数据点的格式存储,元数据用于描述相应的数据点以及相应的数据采集端,数据点包括多个采集时间以及在每个采集时间采集的一个或多个监测数据,且用时序数据描述表来存储时序数据表中的时序数据的描述信息。也即是,本申请方案中对时序数据的存储类型进行了结构优化,每条监测记录可以包括一个数据采集端在多个采集时间采集的各个监测数据,这样,遍历一个表项可以获取更多的数据,提高预统计中的检索效率,且预统计时无需进行表关联,大大提高预统计效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种时序数据预统计方法所涉及的系统架构;
图2是本申请实施例提供的一种时序数据预统计方法的流程图;
图3是本申请实施例提供的另一种时序数据预统计方法的流程图;
图4是本申请实施例提供的一种预统计结果查询方法的流程图;
图5是本申请实施例提供的一种时序数据预统计装置的结构示意图;
图6是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
为了便于理解,接下来对本申请实施例涉及的部分术语进行解释。
TSDB:Timeseries Database,时序数据库。
时序数据:在时间上基于一定频率持续产生的一系列监测指标的数据。比如每隔1分钟采集一次监测对象的温度、功率值等,进而产生的一系列数据。
标签(Tag):用于表明监测对象的属性信息。比如一个数据采集端的生厂日期、生产厂商、型号等,它往往不随着时间的变化而变化。一个Tag由标签键(TagKey)和标签值(TagValue)组成,标签键也可称为标签名称。
监测指标(metric):监测数据的度量指标。比如温度、功率等。
时间戳(Timestamp):度量指标产生的时间点,也可称为采集时间。
数据点:由时间戳和度量指标组成,即针对监测对象的某项指标按特定时间采集的每个度量值就是一个数据点。
高基数:一个给定度量指标的一些唯一时间序列和一个标签名称相关联的一些唯一标签值。比如某一个标签名称是city,那么这个city对应的值有杭州、宁波、青岛等等非常多,通常有0-N个离散值,那么它就是高基数的标签。
单值模型:一条监测记录只对应一个监测指标的数据。
多值模型:一条监测记录可以对应多个监测指标的数据。
降采样:针对一个时间序列在时间维度上对一个监测指标的多个监测数据的降采样,例如,一个小时内传感器采集的60个温度的平均值、最大值等。
聚合:在存在高基数的情况下,对同一个标签的各个监测对象对应的一个监测指标的监测数据求平均或者求和等。
随着云计算和物联网的发展,时序数据的数据量急剧膨胀,高效的分析时序数据,使时序数据产生业务价值成为一个热门话题。时序数据是指在时间上持续产生的一系列监测指标的数据。数据采集端实时采集时序数据,将时序数据实时上传到数据服务器,由数据服务器按照一定的存储模型将时序数据存储在时序数据库包括的时序数据表中,之后,数据服务器可以对时序数据表中的时序数据进行预统计,以从海量的时序数据中统计得到有价值的信息。本申请实施例提供的时序数据预统计方法可以更快更高效地对时序数据进行预统计。
如股票价格、气温变化、网站的浏览访问数据、个人健康数据、工业传感器数据、业务服务器的系统监控数据等都可以是时序数据,本方案均可以对这些时序数据进行预统计。示例性地,在业务服务器上部署各种脚本客户端,实时采集业务服务器的IO指标、CPU指标、带宽、内存指标、业务相关数据(方法调用异常次数、响应延迟、JVM GC相关数据等)、数据库相关数据(读取延迟、写入延迟等),很显然,这些数据都是时间序列相关的,也即都可生成为时序数据。脚本客户端采集时序数据之后实时会发送给数据服务器(也可称为哨兵服务器),数据服务器会将这些时序数据进行存储,并实现时序数据预统计,得到预统计结果,以监控和分析各项监测指标,给用户提供有价值的信息。
另外,随着物联网以及工业4.0的到来,在可预知的未来几年,所有设备可能都会携带传感器并联网,传感器收集的时序数据将严重依赖数据服务器的实时存储能力、预统计分析能力以及查询统计能力。比如智慧工厂,工厂中所有设备都会携带传感设备,这些传感设备会实时采集设备温度、压力等基本信息,并发送给数据服务器进行存储、实时预统计分析以及后期的查询统计。除此之外,比如现在广泛使用的各种穿戴设备,都可能联网,穿戴设备上采集的心跳信息、血流信息、体感信息等等也都会实时传输给数据服务器进行存储、实时预统计分析以及查询统计。也即随着云计算和物联网的快速发展,云端集中化存储、分析数据的需求日益增加,传统的时序数据库难以压缩存储海量的时序数据,数据服务器更难以提供高效的检索统计算法。本申请实施例中的时序数据库可以压缩存储更多的时序数据,数据服务器也可以更快地检索时序数据,并且更高效地对时序数据进行预统计分析。
接下来对本申请实施例提供的时序数据预统计方法所涉及的系统架构进行介绍。
图1是本申请实施例提供的一种时序数据预统计方法所涉及的系统架构。参见图1,该系统架构包括多个数据采集端101、数据服务器102和可视化终端103。每个数据采集端101均可以与数据服务器102通过有线或无线方式连接进行通信,可视化终端103也可以与数据服务器102通过有线或无线方式连接进行通信。
数据采集端101用于采集时序数据,并将时序数据实时上传到数据服务器102。数据服务器102用于实时接收各个数据采集端101上传的时序数据,并按照本方案设计的存储模型将时序数据存储在时序数据库包括的时序数据表中。
可视化终端103用于根据用户提交的预统计条件创建预统计任务,并将预统计任务提交给数据服务器102。数据服务器102还用于根据本申请实施例提供的时序数据预统计方法执行可视化终端103提交的预统计任务,根据预统计任务对应的预统计条件对时序数据表中的时序数据进行处理,得到预统计结果。
例如,数据服务器102可以实时地对过去一小时或过去一天的时序数据进行预统计。数据服务器102还可以对历史接收的时序数据进行预统计,历史接收的时序数据如,数据服务器102的预统计功能异常但缓存功能正常的情况下接收的时序数据,或者数据采集端101延迟上传的时序数据。
可选地,数据服务器102还可以存储各个预统计任务的任务状态,例如已创建、正在执行、执行完成、执行失败等。可视化终端103还可以向数据服务器102发送预统计状态查询指令,数据服务器102可以根据预统计状态查询指令,将存储的预统计任务的任务状态发送给可视化终端103,可视化终端103可以将任务状态展示给用户。
可选地,可视化终端103还可以根据用户提交的预统计结果查询条件创建查询任务,并将查询任务提交给数据服务器102。数据服务器103还可以根据查询任务对应的预统计结果查询条件,以及存储的一个或多个预统计结果,确定预统计查询结果,并将预统计查询结果返回给可视化终端103。可视化终端103还可以将预统计查询结果展示给用户。
在一些实施例中,数据服务器102可以包括预统计服务器和缓存服务器,缓存服务器用于将接收到的时序数据存储在时序数据库包括的时序数据表中,预统计服务器用于对时序数据表进行预统计。
可选地,该系统架构中可以包括多个可视化终端103,每个可视化终端103均可以与数据服务器102通信连接,各个可视化终端103的作用和功能均可以相同,也即每个可视化终端103均可以提交预统计任务、查询任务状态、查询预统计结果。或者,各个可视化终端103的作用和功能可以存在不同,例如,一部分可视化终端103可以用于提交预统计任务,一部分可视化终端103可以用于查询任务状态,一部分可视化终端103可以用于查询预统计结果。也即是,提交预统计任务、查询任务状态、查询预统计结果等功能可以在一台设备上实现,也可以在多台设备上实现,本申请实施例对此不作限定。
在本申请实施例中,数据采集端101可以是任一种可以采集时序数据的设备,例如手机、笔记本电脑、业务服务器、智能手环、工业设备、智能家电等类型的设备,各个数据采集端101的类型可以相同或不同。数据服务器102可以是一台服务器,也可以是多台服务器构成的服务器集群,也可以是一个云计算中心。可视化终端103可以是任一种可以与用户交互的设备,例如台式电脑、笔记本电脑、手机等类型的设备,在包括多个可视化终端103的场景中,各个可视化终端103的类型可以相同或不同。
接下来对本申请实施例提供的时序数据预统计方法进行详细的解释说明。
图2是本申请实施例提供的一种时序数据预统计方法的流程图。请参考图2,该方法包括如下步骤。
步骤201:获取预统计任务对应的预统计条件。
在本申请实施例中,数据采集端可以实时采集时序数据,并上传至数据服务器,数据服务器可以将接收到的时序数据存储在时序数据库包括的时序数据表中。
为了提高对时序数据预统计的效率,本申请实施例在多值模型的基础上,提供了一种结构更优化的存储模型,时序数据表可以按照元数据和数据点的格式存储时序数据,也即可以将时序数据分为元数据和数据点。其中,元数据用于描述相应的数据点以及相应的数据采集端,数据点包括多个采集时间以及在每个采集时间采集的一个或多个监测数据。
在本申请实施例中,时序数据对应的元数据可以包括数据类别、设备标识和设备标签这三种,其中,数据类别可以用于描述相应的数据点,设备标识和设备标签可以用于描述相应的数据采集端,时序数据对应的数据点可以包括多个采集时间一级在每个采集时间采集的一个或多个监测数据。
表1是本申请实施例提供的一种时序数据表的存储方案,表2是对表1中各项的概念解释。参见表1和表2,表1中的元数据可以包括measurement、identifier和tags,数据点可以包括timestampHour和fields。
表1
Figure BDA0002526108460000151
表2
Figure BDA0002526108460000152
需要说明的是,在本申请实施例中,时序数据表中列的设计依赖于每条监测记录实际的时间戳timestamp,用timestamp除以3600所得的余数Δtn作为fields列簇下的列名,这充分利用了时序数据库的列动态扩展的特点,例如,开源数据库hbase列动态扩充的特点。也即,在每行对应的时间范围内所实时接收的监测记录,可以将监测记录中的时间戳timestamp除以3600得到一个余数,每得到一个新余数,就可以在fields列簇下添加一个新列。
值得注意的是,由于可能各个数据采集设备采集各项监测指标的采集频率可能不同,有的监测指标的采集频率较高,可能是秒级的频率,有的监测指标的采集频率较低,可能是小时级的频率,这种情况下,数据服务器每接收到一条监测记录,就根据时间戳得到一个余数,如果时序数据表中fields列簇下不包括这个余数,就可以根据余数的大小在fields列簇下插入一列,来存储相应的监测数据。也即是,本申请实施例中的时序数据表中可以存储采集频率不同的时序数据。
另外,时序数据表中各行时序数据的时间间隔可以相同或不同,例如一行可以记录一个小时内的时序数据,一行也可以记录一天内的时序数据。各行的时间间隔可以根据各行对应的数据类别以及监测指标的采集频率来确定,如果采集频率为5s,则可以设置对应的监测指标的各行的时间间隔为1小时。
示例性地,各个业务服务器的运维监控平台产生的时序数据,以web01服务器产生的时序数据为例,web01服务器上传的一条监测记录为:
Figure BDA0002526108460000161
Figure BDA0002526108460000171
与上述web01服务器类似的3台服务器,web02服务器、web03服务器、web04服务器,在2019-11-01 9:00:00,2019-11-01 9:00:15,2019-11-01 9:00:30,2019-11-01 9:00:45产生的流量时序数据和设备运行时序数据存储举例如下:流量时序数据的measurement为flow,设备运行时序数据的measurement为device,2019-11-01 9:00:00对应的Unix时间戳为1572570000,fields中监测指标onlinestatus和cpuUsage对应的两个value值用分号隔开,具体时序数据存储如表3所示。
表3
Figure BDA0002526108460000172
Figure BDA0002526108460000181
从上述的时序数据表的存储模型中可知,时序数据表中只存储了元数据和数据点的具体值,而不存储各个值的名称,例如存储监测指标cpuUsage的value值,而不存储监测指标名称‘cpuUsage’,这样可以大大节省时序数据库的存储空间,也即时序数据库可以压缩存储更多的时序数据。
由于时序数据表中仅存储了时序数据包括的元数据和数据点的具体值,因此,本申请实施例还设计了一种时序数据描述表,时序数据描述表用于存储时序数据表中的时序数据的描述信息。
在本申请实施例中,时序数据描述表中可以存储与时序数据表中各项对应的描述信息,如监测指标名称、设备标签名称等。
表4是本申请实施例提供的一种时序数据描述表的存储方案,表4是在表1的基础上设计的。在表1的基础上,参见表4,measurement表示数据类别,可以理解为逻辑表的名称,每个measurement中的tags和fields中value对应的描述信息(key)保存在时序数据描述表(schema)中。其中,tags列簇存储measurement下tags的各个tag项,一个tag项包括一个设备标签名称tagKey和tagKey对应的数据类型tagType,且各个tag项按照与表1相应measurement下tags包括的各个设备标签的顺序存储。同样地,fields列簇存储measurement下fields的各个field项,一个field项包括一个监测指标名称fieldKey和fieldKey对应的数据类型fieldType,且各个field项按照与表1相应measurement下fields包括的各个监测数据的顺序存储。
表4
Figure BDA0002526108460000191
示例性地,在表3所示的时序数据表的基础上,本申请实施例提供的一个时序数据描述表如表5所示。由表5可知,在上述表3中measurement为‘device’的表项中的第一个tag的设备标签名称为‘ip’,fields中的第一个监测数据的所属的监测指标的名称为‘onlineStatus’。
表5
Figure BDA0002526108460000192
Figure BDA0002526108460000201
在本申请实施例中,数据服务器在从时序数据表中检索数据之前,可以先根据预统计条件从时序数据描述表中确认要检索的设备标签或者监测数据在时序数据表中的位置,然后,再从时序数据表中对应位置获取数据。
由此可见,在一个时序数据表中即可以完成不同标签组合、不同监测指标组合的数据检索,且检索一个表项可以获取多个采集时间的多个监测指标的监测数据,检索效率大大提升,且存储为一个时序数据表中,以数据类别measurement进行逻辑分表,相当于在一张时序数据表中存储了多张逻辑表,省去了多表关联的步骤,进一步提高了检索效率。同时,以时序数据表和时序数据描述表的方式来存储,可以在提升检索效率的同时,提升数据的可维护性。
在本申请实施例中,数据服务器在实时接收时序数据并存储的同时,还可以接收用户通过可视化终端提交的各个预统计任务,一个预统计任务对应一个预统计条件,数据服务器可以根据每个预统计任务对应的预统计条件,来执行相应的预统计任务,得到相应的预统计结果。接下来以一个预统计任务为例对提供的一种时序数据预统计方法进行介绍。
在本申请实施例中,用户可以向可视化终端输入预统计任务对应的预统计条件,可视化终端可以将预统计任务对应的预统计条件发送给数据服务器,也即数据服务器可以获取预统计任务对应的预统计条件。
由于时序数据表中存储了海量的时序数据,用户可能对其中的一部分数据感兴趣,希望从这部分数据中预统计得到有价值的信息,也即是,数据服务器需要从时序数据表中过滤出一部分数据,并对这部分数据进行预统计计算。在本申请实施例中,预统计条件可以包括过滤条件、预统计函数和分组指示信息,其中,分组指示信息可以用于指示是否需要分组。
可选地,过滤条件可以包括数据过滤类别、时间过滤范围、标签过滤数据和监测指标过滤数据。
需要说明的是,数据过滤类别可以包括一个数据类别,时间过滤范围可以包括一个开始时间和一个结束时间,标签过滤数据可以指示要获取的一个或多个设备标签所在的表项,监测指标过滤数据可以指示要过滤得到的一个或多个监测指标对应的监测数据。
示例性地,数据过滤类别可以包括’measurement’:’device’,表示要过滤得到数据类别为device的表项。时间过滤范围可以包括’startTime’:1572537600000和’endTime’:1572883200000,1572537600000对应2019-11-01 00:00:00,1572883200000对应2019-11-05 00:00:00,表示要过滤得到采集时间在2019-11-01 00:00:00到2019-11-0500:00:00之间的表项。
可选地,标签过滤数据可以包括一个或多个参考标签名称以及每个参考标签名称对应的参考标签字段。
需要说明的是,在本申请实施例中,根据标签过滤数据来过滤的方式可以分为精确过滤和模糊过滤两种。如果一个参考标签字段为一个设备标签,则表示精确过滤,如果一个参考标签字段为一个模糊字段,则表示模糊过滤,例如’v*’,表示首字母为’v’的一类设备标签。
示例性地,标签过滤数据可以包括’tagKey’:’city’,’tagValue’:’托里’和’tagKey’:’type’,’tagValue’:’*’,表示要过滤得到city为托里的表项,由于type对应的参考标签字段为’*’,因此是模糊匹配且是全匹配所有type。
可选地,监测指标过滤数据包括一个或多个参考监测指标名称。
示例性地,监测指标过滤数据可以包括’fieldKey’:’cpuUsage’和’fieldKey’:’loginStatus’,表示要过滤得到监测指标名称为cpuUsage和loginStatus的监测数据。
可选地,预统计函数可以包括一个或多个降采样函数以及一个或多个聚合函数,且一个监测指标对应一个降采样函数和一个聚合函数。
示例性地,监测指标cpuUsage的降采样函数可以为’avg’、’sum’或者’count’等,表示对监测指标为cpuUsage的时间维度上的监测数据求均值、求和或者求总数。监测指标cpuUsage的聚合函数可以为’avg’、’sum’或者’count’等,表示对监测指标为cpuUsage的设备维度上的监测数据求均值、求和或者求总数。
在本申请实施例中,预统计条件还可以包括上传频率,上传频率可以是指时序数据每隔多久产生一条,单位可以为秒,例如5表示上传频率为5s。
需要说明的是,上传频率可以等于数据采集设备采集时序数据的采集频率。
示例性地,用户提交的预统计任务对应的预统计条件可以包括以下几项:
1、时间过滤范围:包括预统计任务的开始时间startTime和结束时间endTime,即要获取的时序数据的采集时间的范围;
2、数据过滤类别:包括一个数据类别measurement;
3、标签过滤数据:tags参数列表tagsFilterParams,即指定设备标签对数据进行过滤,可以分为模糊过滤WILDCARD和精确过滤LITERAL两种;
4、监测指标过滤数据:fields参数列表fieldParamList,即指定要进行预统计的监测指标;
5、聚合函数aggregatorFun:可以通过内置聚合函数对监测数据进行处理,即可以对每个监测指标按需添加聚合函数;
6、将采样函数downSampleFun:可以通过内置将采样函数对监测数据进行处理,即可以对每个监测指标按需添加将采样函数;
7、分组指示信息groupBy:可以通过标签维度进行分组,将具有相同标签的数据分为一组;
8、上传频率uploadFrequentcy:指定时序数据每隔多久产生一条。
步骤202:根据预统计条件和时序数据描述表,对存储的时序数据表进行预统计,得到预统计结果。
在本申请实施例中,数据服务器可以根据预统计条件来确定要从时序数据表中获取哪些数据,根据时序数据描述表从时序数据表中获取这些数据。之后,数据服务器可以根据预统计条件来确定对获取的这些数据如何处理,来得到预统计结果,例如如何降采样、如何聚合等。
由前述可知,预统计条件可以包括过滤条件、预统计函数和分组指示信息。基于此,数据服务器可以根据时序数据描述表,从时序数据表中提取满足过滤条件的数据,得到预统计候选数据表,然后,可以根据预统计函数和分组指示信息,对预统计候选数据表进行处理,得到预统计结果。
例如,数据服务器可以根据measurement来过滤表项,根据设备标签来过滤表项,根据监测指标来过滤监测数据,根据时间过滤范围来过滤表项,这几种过滤操作的顺序可以为任意一种指定的顺序,也即是,数据服务器进行从时序数据表中检索过滤数据的实现方式可以有多种。之后,数据服务器可以对过滤后得到的预统计候选数据表中的数据在时间维度上进行降采样,对根据分组指示信息确定为同一组的数据进行聚合,得到预统计结果。
接下来介绍以一种检索过滤数据的方法为例进行介绍。由前述可知,过滤条件可以包括数据过滤类别、时间过滤范围、标签过滤数据和监测指标过滤数据。基于此,数据服务器可以根据数据过滤类别和时序数据描述表,从时序数据表中提取数据类别为数据过滤类别的表项,得到第一候选表,根据标签过滤数据和时序数据描述表,从第一候选表中提取满足条件的表项,得到第二候选表,满足条件的表项包括的标签中含有标签过滤数据所指示的标签。之后,数据服务器可以根据时间过滤范围、监测指标过滤数据和时序数据描述表,对第二候选表中的数据进行过滤,得到预统计候选数据表。
也即是,数据服务器可以先根据数据过滤类别来过滤表项,再根据标签过滤数据来过滤表项,之后再根据时间过滤范围、监测指标过滤监测数据来过滤表项或表项中的监测数据。
由前述可知,标签过滤数据可以包括一个或多个参考标签名称以及每个参考标签名称对应的参考标签字段。基于此,数据服务器可以根据该一个或多个参考标签名称,以及时序数据描述表,从时序数据表中确定一个或多个标签位置。之后,数据服务器可以从第一候选表中提取每个标签位置处的标签与相应的参考标签字段匹配的表项,得到第二候选表。
在本申请实施例中,在数据服务器的缓存功能正常而预统计功能异常的情况下,为了保证数据服务器对预统计功能异常这段时间内的接收的时序数据也能够进行预统计,本方案中用户提交的预统计任务对应的预统计条件的时间过滤范围既可以为历史时间范围,也可以为未来时间范围,还可以既包括历史时间范围也包括未来时间范围。其中,如果时间过滤范围包括历史时间范围,用户还可以指定对历史时间范围内的时序数据进行预统计的任务执行时间,例如在每天的凌晨0点至4点来执行。
基于以上描述,数据服务器可以将预统计任务分为历史类预统计任务或者未来类预统计任务,或者预统计任务既包括历史类预统计任务也包括未来类预统计任务。未来类预统计任务可以实时执行,例如实时地预统计过去一小时或一天的时序数据,历史类任务可以在指定的任务执行时间内执行。
示例性地,一个未来类预统计任务可以指示在9点对8点至9点接收的时序数据执行预统计,在10点对9点至10点接收的时序数据执行预统计,一个历史类预统计任务可以指示在凌晨0点至4点内对前天12点至14点接收的时序数据执行预统计。
需要说明的是,如果历史类预统计任务在指定的执行时间内未执行完,则可以下一个执行周期内继续执行,例如在明天的凌晨0点至4点继续执行。由此可见,数据服务器可以选择在系统不繁忙的时间来执行历史类预统计任务,减轻数据服务器的压力,并且对于数据服务器的预统计功能异常但缓存功能正常情况下接收的时序数据,数据服务器也可以按照历史类预统计任务来对这部分数据进行预统计,也即本申请实施例考虑了数据服务器异常时的预统计解决方案。
由前述可知,预统计条件还可以包括上传频率,基于此,数据服务器在根据数据过滤类别和时序数据描述表,从时序数据表中提取数据类别为数据过滤类别的表项,得到第一候选表之前,还可以按照时间过滤范围和上传频率,将预统计任务划分为一个或多个子统计任务,每个子统计任务对应时间过滤范围内的一个子时间范围。
示例性地,数据服务器可以根据上传频率,确定预统计间隔,然后按照预统计间隔和时间过滤范围,将预统计任务划分为一个或多个子统计任务。在本申请实施例中,数据服务器可以按照默认配置的规则来确定预统计间隔,进而划分子统计任务,例如,如果上传频率大于0,且小于1小时,则数据服务器可以将预统计间隔确定为1小时,按照间隔1小时来划分确定子统计任务,如果上传频率大于等于1小时,且小于一天,则数据服务器可以将预统计间隔确定为1天,按照间隔1天来划分确定子统计任务。数据服务器也可以按照用户指定的预统计间隔来划分子统计任务,例如,预统计间隔可以为6小时、8小时、或者2天等。
需要说明的是,在本申请实施例中,由于时序数据表中每一行元数据中的起始时间戳是一个整点,因此数据服务器也可以按照整点来划分子统计任务。示例性地,假设上传频率为8小时,一个预统计任务对应的时间过滤范围为2019-11-01 12:00:00到2019-11-0500:00:00,那么数据服务器可以按照间隔1天将该预统计任务划分为5个子统计任务,每个子统计任务的子时间范围大小均为1天,每个子时间范围的起始时间和终止时间都是整点。
另外,如果时间范围过滤包括的开始时间或者结束时间不是整点,那么数据服务器可以将第一个子统计任务对应的子时间范围的起始时间确定为开始时间之前最近的一个整点,或者将最后一个子统计任务对应的子时间范围的起始时间确定为结束时间之后最近的一个整点。例如,时间范围过滤包括的开始时间为9点5分,那么数据服务器可以将第一个子统计任务对应的起始时间确定为9点。
在本申请实施例中,数据服务器在划分得到一个或多个子统计任务之后,可以根据当前时间,以及各个子统计任务对应的子时间范围,判断各个子统计任务是历史类预统计任务,还是未来类预统计任务,进而在相应的任务执行时间来执行各个子统计任务。
如果参考子时间范围为历史时间范围,也即参考子统计任务对应的子时间范围的终止时间小于当前时间,那么参考子统计任务为历史类预统计任务,数据服务器可以在设置的任务执行时间开始时执行根据数据过滤类别和时序数据描述表,从时序数据表中提取数据类别为数据过滤类别的表项,得到第一候选表的步骤。其中,参考子时间范围为参考子统计任务对应的子时间范围,参考子统计任务为一个或多个子统计任务中的一个。
如果参考子时间范围为未来时间范围,也即参考子统计任务对应的子时间范围的起始时间大于等于当前时间,则数据服务器可以在参考子时间范围之后,执行根据数据过滤类别和时序数据描述表,从时序数据表中提取数据类别为数据过滤类别的表项,得到第一候选表的步骤。
也即是,参考子统计任务开始执行后,首先,数据服务器执行根据数据过滤类别和时序数据描述表,从时序数据表中提取数据类别为数据过滤类别的表项,得到第一候选表的步骤,然后,执行根据标签过滤数据和时序数据描述表,从第一候选表中提取满足条件的表项,得到第二候选表的步骤。
之后,数据服务器可以根据参考子时间范围和时序数据描述表,从第二候选表中,提取采集时间在参考子时间范围内的表项,得到第三候选表。然后,数据服务器可以根据监测指标过滤数据和时序数据描述表,将第三候选表中除监测指标过滤数据所指示的监测数据之外的监测数据过滤掉,得到参考子统计任务对应的候选数据表。
需要说明的是,预统计候选数据表是通过一个或多个子统计任务对应的候选数据表组成的,也即是,在执行一个子统计任务的过程中,可以得到一个候选数据表。
由前述可知,监测指标过滤数据可以包括一个或多个参考监测指标名称。基于此,数据服务器可以在得到第三候选表之后,可以根据该一个或多个参考监测指标名称和时序数据描述表,从第三候选表中确定一个或多个监测指标位置。之后,数据服务器可以将第三候选表中监测数据的位置不在该一个或多个监测指标位置的监测数据过滤掉,得到参考子统计任务对应的候选数据表。
由前述可知,预统计函数可以包括一个或多个降采样函数以及一个或多个聚合函数,且一个监测指标对应一个降采样函数和一个聚合函数。基于此,数据服务器在得到参考子统计任务对应的候选数据表之后,可以根据参考子统计任务对应的候选数据表中的监测数据所属的各个监测指标对应的降采样函数,对参考子统计任务对应的候选数据表中的各个表项进行降采样处理,得到降采样结果。之后,数据服务器可以根据分组指示信息和参考子统计任务对应的候选数据表中的监测数据所属的各个监测指标对应的聚合函数,对降采样结果进行聚合处理,得到参考子统计任务对应的第一预统计结果。
需要说明的是,预统计结果是通过一个或多个子统计任务对应的第一预统计结果组成的。也即是,每执行完一个子统计任务,就可以将得到的第一预统计结果添加在预统计结果中。
接下来以一个实例对上述预统计任务的执行进行介绍。
假设当前时间为2019-11-01 12:30:00,用户提交的预统计任务对应的预统计条件如下:
Figure BDA0002526108460000261
Figure BDA0002526108460000271
其中,1572537600000对应2019-11-01 00:00:00,1572883200000对应2019-11-0500:00:00。
则上述描述可知,由于当前时间为2019-11-01 12:30:00,因此,2019-11-01 00:00:00到2019-11-01 12:00:00包括的各个子统计任务为历史类预统计任务,2019-11-0112:00:00到2019-11-05 00:00:00包括的各个子统计任务的为未来类预统计任务。
需要说明的是,数据服务器可以将上述预统计条件中的"fieldName"转换为"fieldKey",将"FilterType"转换为"tagType",将"filterKey"转换为"tagKey",将"filterValue"转换为"tagValue",也即是对预统计条件进行转换,以与时序数据描述表中对应的字段匹配。
由于上传频率"uploadFrequentcy"为60s,因此,预统计间隔可以为1小时,数据服务器可以将预统计任务分为120个子统计任务,其中,历史类预统计任务有12个,未来类预统计任务有108个。以其中2019-11-01 9:00:00-10:00:00的子统计任务的执行过程为例,对本申请实施例提供的时序数据预统计方法进行介绍。
在表3所示的时序数据表的基础上,先找到measurement为device的表项,遍历表3之后,可以得到表6。
表6
Figure BDA0002526108460000281
在表6的基础上,由于标签过滤数据中city为‘托里’是精确过滤,type为‘*’是模糊过滤,且为全匹配,因此,将city为托里的表项提取出来,得到表7。
表7
Figure BDA0002526108460000291
在表7的基础上,根据子时间范围过滤,将时间在2019-11-01 9:00:00-10:00:00之间的表项提取出来,可以得到表8。
表8
Figure BDA0002526108460000292
在表8的基础上,根据表8中监测数据所属的监测指标对应的降采样函数,对表8中每行属于同一监测指标的监测数据求平均,可以得到降采样结果如表9所示。
表9
Figure BDA0002526108460000301
在表9所示的降采样结果的基础上,由于city为‘托里’为精确过滤,对应的groupBy为false,且存在type为‘*’的模糊过滤,对应的groupBy为true,因此,可以根据表9中type的两个值‘V770_20’和‘V770_50’将表9的三个表项分为两组,对这两组分别进行求平均的聚合处理,得到如下第一预统计结果:
Figure BDA0002526108460000302
Figure BDA0002526108460000311
其中,"timeSeries"里的值分别为timestamp、onlineStatus求平均后的值、cpuUsage求平均后的值。
需要说明的是,如果预统计条件中包括city为‘托里’的精确过滤,但不包括模糊过滤,那么可以将表9中的三个表项分为一组,进行聚合处理。也即是,如果存在模糊过滤,则按照模糊过滤对应的标签,对属于相同标签就表项分为一组进行聚合处理。如果不存在模糊过滤,则对表9中所有表项进行聚合。
由于时序数据库是以key-value方式存储数据的,为了加快预统计结果的检索效率,数据服务器可以将上述第一预统计结果存储为第一预统计结果表,第一预统计结果表中包括rowkey和预统计监测数据value。
以上述根据表9得到的第一预统计结果为例,数据服务器可以将第一预统计结果存储为第一预统计结果表,如表10所示。
表10
rowkey value
<1572570000><V770_20> 0.875;0.64
<1572570000><V770_50> 1:0.575
其中,表10中rowkey的构成可以为<Timestamp><groupbyTags>,其中Timestamp为整点小时对应的Unix时间戳,groupbyTags为预统计任务对应的预统计条件中groupby为‘true’的tags。如果所有的groupby均为‘false’,则rowkey的构成为<Timestamp>。
可选地,在本申请实施例中,预统计结果可以是按照元数据和数据点的格式存储在预统计结果表中,其中,预统计结果表中的元数据是根据过滤条件确定的,预统计结果表中的数据点包括一个或多个预统计监测数据,预统计监测数据是根据预统计函数确定的。
在本申请实施例中,每执行完一个子统计任务,可以将第一预统计结果存储在预统计结果表中。也即是,预统计结果表可以随着预统计任务包括的各个子统计任务的执行完成不断进行扩充。
以上述表10为例,假设表10是一个预统计任务包括的各个子统计任务中第一个执行完成的任务,那么将表10存储在预统计结果表后,得到的预统计结果表可以如表11所示。其中,预统计结果表中的元数据可以包括一个采集时间和一个设备标签,预统计结果表中的数据点可以包括一个或多个预统计监测数据。
表11
Figure BDA0002526108460000321
需要说明的是,在本申请实施例中,每个预统计任务对应一个任务标识,每个预统计任务对应一个预统计结果表,每个预统计结果表可以以相应预统计任务的任务标识来标识。
示例性地,假设上述示例中的预统计任务的任务标识为task001,那么表11即可以以task001来标识,以供后续查询使用。
可选地,由上述可知,预统计结果表中仅存储了元数据和数据点的具体值,未存储监测指标名称,为了后续查询可以获知预统计结果表中的预统计检测数据所属的监测指标是什么,类似于上述时序数据描述表,本申请实施例中还提供了一种预统计结果描述表,用于存储各个预统计结果表的描述信息。
以上述表11所示的预统计结果表为例,在预统计结果描述表中存储了表11的描述信息之后,可以得到如表12所示的预统计结果描述表。
表12
rowkey fields
task001 ‘onlineStatus-avg’:’Double’,’cpuUsage-avg’:’Double’
其中,预统计结果描述表中的rowkey列簇下为任务标识,fields列簇下为预统计监测数据所属的监测指标的名称、监测指标对应的聚合函数、预统计监测数据的数据类型。
需要说明的是,每执行完一个预统计任务的第一个子统计任务,将第一预统计结果存储在预统计结果表中的同时,还可以将该预统计任务的描述信息存储在预统计结果描述表中,也即预统计结果描述表可以随着各个预统计任务中第一个子统计任务的执行完成不断进行扩充。
图3是本申请实施例提供的另一种时序数据预统计方法的流程图。参见图3,数据服务器可以根据时序数据描述表对预统计条件进行转换,之后根据measurement从时序数据表中提取出对应的表项,再根据tags过滤列表进行标签过滤,再根据时间过滤范围进行时间过滤,再根据fields过滤列表进行监测指标过滤,再根据降采样函数进行降采样处理,再根据聚合函数和分组指示信息进行聚合处理,在将聚合处理之后得到的数据转换为第一预统计结果表,将第一预统计结果表存储在预统计结果表中。
在本申请实施例中,由前述可知,用户还可以通过可视化终端向数据服务器查询预统计结果,也即是,用户还可以通过可视化终端提交查询任务对应的预统计结果查询条件,数据服务器还可以获取查询任务对应的预统计结果查询条件,并根据预统计结果查询条件,以及存储的一个或多个预统计结果,确定预统计查询结果。
示例性地,假设预统计结果以预统计任务的任务标识来标识,预统计结果查询条件包括参考任务标识,那么数据服务器可以根据参考任务标识,从存储的一个或多个预统计结果中获取参考任务标识所标识的预统计结果,将该预统计结果确定为预统计查询结果。数据服务器可以将该预统计结果发送到可视化终端上供用户查看。
由前述可知,在本申请实施例中,一个或多个预统计结果可以分别存储在对应的一个预统计结果表中,预统计结果表中的元数据可以包括一个采集时间,且预统计结果表以预统计任务的任务标识来标识。
可选地,预统计结果查询条件可以包括参考任务标识和查询时间范围。基于此,数据服务器可以从存储的一个或多个预统计结果表中获取参考任务标识所标识的预统计结果表,作为预统计候选结果表,从预统计候选结果表中,提取采集时间在查询时间范围内的表项,以得到预统计查询结果。
示例性地,用户提交的查询任务对应的预统计结果查询条件如下所示:
{
"taskId":"task001",
"startTime":1572537600000,
"endTime":1572883200000,
}
在本申请实施例中,预统计结果查询条件还可以包括结果返回时间间隔、一个或多个降采样函数、一个或多个聚合函数、以及分组指示信息,且一个监测指标对应一个降采样函数和一个聚合函数。基于此,数据服务器可以从预统计候选结果表中,提取采集时间在查询时间范围内的表项,得到第一查询表,之后,数据服务器可以按照查询时间范围以及结果返回时间间隔,确定多个子查询时间范围,每个子查询时间范围为该查询时间范围内的一个子时间范围。
然后,数据服务器可以根据参考子查询时间范围,从第一查询表的表项中,提取采集时间在参考子查询时间范围内的表项,得到第二查询表,参考子查询时间范围为一个或多个子查询时间范围中的一个。之后,数据服务器可以根据第二查询表中的预统计监测数据所属的各个监测指标对应的降采样函数,对第二查询表中的各个表项进行降采样处理,得到降采样查询结果。之后,数据服务器可以根据分组指示信息和降采样查询结果中的预统计监测数据所属的各个监测指标对应的聚合函数,对降采样查询结果进行聚合处理,得到参考子查询时间范围对应的第一预统计查询结果,预统计查询结果是通过一个或多个子查询时间范围对应的第一预统计查询结果组成的。
也即是,按照与预统计时序数据类似的方法,数据服务器可以对根据任务标识查找到的预统计结果表中的表项进行过滤,例如可以根据查询时间范围过滤。之后,数据服务器可以根据查询时间范围以及结果返回时间间隔来确定多个子查询时间范围,之后再根据每个子查询时间范围来过滤表项、降采样处理和聚合处理。
需要说明的是,在本申请实施例中,数据服务器可以并行处理每个子查询时间范围内的数据,得到相应子查询时间范围对应的第一预统计查询结果,也即并行处理得到预统计查询结果。在另一些实施例中,数据服务器也可以按照子查询时间范围的先后顺序,依次处理各个子查询时间范围内的数据,在处理完最后一个子查询时间范围内的数据后,即得到预统计查询结果。
可选地,由于预统计任务对应的预统计条件中可以包括降采样函数和聚合函数,且通常预统计任务执行过程中所采用的函数也是用户期望查询任务执行过程中采用的函数,因此,用户提交的预统计结果查询条件中可以不包括降采样函数和聚合函数,这种情况下,数据服务器在执行查询任务的过程中,也可以根据相应预统计任务的任务标识来获取该预统计任务执行的过程中所采用的降采样函数和聚合函数,将获取的这些降采样函数和聚合函数作为执行查询任务时所要采用的预统计函数。
示例性地,用户提交的查询任务对应的预统计结果查询条件如下所示:
{
"taskId":"task001",
"startTime":1572537600000,
"endTime":1572883200000,
"interval":3600
}
其中,"interval"为3600,表示结果返回时间间隔为1小时,也即用户想要获知每隔一小时的监测指标的变化情况。如果"interval"为86400,表示结果返回时间间隔为1天,表示用户想要获知每隔一天的监测指标的变化情况。
需要说明的是,用户可以按照需求设置结果返回时间间隔,例如按小时、按天、按周等,结果返回时间间隔可以大于等于对应的预统计任务的预统计间隔。
可选地,预统计结果查询条件还可以包括一个或多个查询监测指标名称,这种情况下,数据服务器在对第二查询表进行降采样处理之前,还可以根据该一个或多个查询监测指标名称和预统计结果描述表,将第二查询表中除查询监测指标名称所指示的预统计监测数据之外的预统计监测数据过滤掉,对过滤预统计监测数据之后得到的表进行降采样处理。
需要说明的是,数据服务器在确定预统计查询结果之后,可以将预统计查询结果发送给可视化终端,可视化终端可以将预统计查询结果展示为用户。示例性地,可视化终端上展示的预统计结果可以是图表的形式,例如折线图、柱状图、表格等形式。
图4是本申请实施例提供的一种预统计结果查询方法的流程图。参见图4,数据服务器可以根据预统计结果描述表将预统计结果查询条件中的字段进行转换,之后根据任务标识从找到预统计结果表,再根据查询时间范围进行时间过滤,再根据降采样函数进行降采样处理,根据聚合函数和分组指示信息进行聚合处理,在将聚合处理之后得到预统计查询结果。
在本申请实施例中,用户还可以通过可视化终端向数据服务器查询预统计任务的任务状态。也即是,数据服务器可以接收预统计状态查询指令,预统计状态查询指令携带参考任务标识,数据服务器可以根据参考任务标识,从存储的任务标识与任务状态的对应关系中,确定参考预统计任务的任务状态,参考预统计任务为参考任务标识所标识的预统计任务。
需要说明的是,数据服务器可以存储各个预统计任务的任务状态,并随着各个预统计任务包括的子统计任务的执行,更新对应的任务状态。另外,数据服务器在确定参考预统计任务的任务状态之后,可以将参考预统计任务的任务状态作为状态查询结果返回给可视化终端。
示例性地,任务状态(也可称为预统计状态)可以分为CREATED、RUNNING、HISTORYFINISH、FEATUREFINISH、FINISH。在一个预统计任务创建完成并提交到数据服务器之后,且任务执行之前,该预统计任务的任务状态为CREATED。该预统计任务的任何一个子统计任务在执行过程中的任务状态为RUNNING。如果该预统计任务既包含历史类预统计任务又包含未来类预统计任务,那么所有的历史类预统计任务执行完了,该预统计任务的任务状态更新为HISTORYFINISH,如果所有的未来类预统计任务执行完了,该预统计任务的任务状态更新为FEATUREFINISH。一个预统计任务的所有子统计任务都执行完了,该预统计任务的任务状态更新为FINISH。
如果任务状态为CREATED或FINISH,则数据服务器向可视化终端返回的状态查询结果可以直接为任务未执行或任务已完成。如果任务状态为RUNNING、HISTORYFINISH、或者FEATUREFINISH时,则数据服务器向可视化终端返回的状态查询结果可以包括已执行完的所有子统计任务的总时间范围,以及还未执行的所有子统计任务的子时间范围。
可选地,一个子统计任务可以对应一个子统计任务标识,如果有执行失败的子统计任务,例如数据库连接失败,时序数据表中数据出错等情况,则数据服务器向可视化终端返回的状态查询结果还可以包括执行失败的子统计任务标识。
通过上述任务状态的查询,可以使用户根据状态查询结果获知一个预统计任务的进度和状态,为下一步的预统计结果查询做参考。
由上述可知,本申请实施例提供的时序数据预统计的方法中,可以包括预统计任务的提交,预统计任务的执行、预统计任务的状态查询和预统计任务的结果查询。由于本申请实施例中优化了时序数据表的存储模型,并设计了时序数据描述表来描述时序数据表,这样,可以提高时序数据预统计的检索以及预统计效率,且为了便于后的结果查询,将预统计结果也按照类似的存储形式存储为预统计结果表,并设计了预统计结果描述表。
综上所述,在本申请实施例中,时序数据表包括的时序数据按照元数据和数据点的格式存储,元数据用于描述相应的数据点以及相应的数据采集端,数据点包括多个采集时间以及在每个采集时间采集的一个或多个监测数据,且用时序数据描述表来存储时序数据表中的时序数据的描述信息。也即是,本申请方案中对时序数据的存储类型进行了结构优化,每条监测记录可以包括一个数据采集端在多个采集时间采集的各个监测数据,这样,遍历一个表项可以获取更多的数据,提高预统计中的检索效率,且预统计时无需进行表关联,大大提高预统计效率。
图5是本申请实施例提供的一种时序数据预统计装置的结构示意图。该时序数据预统计装置500可以由软件、硬件或者两者的结合实现成为计算机设备的部分或者全部。请参考图5,该装置包括:第一获取模块501和预统计模块502。
第一获取模块501,用于获取预统计任务对应的预统计条件;
预统计模块502,用于根据预统计条件和时序数据描述表,对存储的时序数据表进行预统计,得到预统计结果;
其中,时序数据表用于按照元数据和数据点的格式存储时序数据,元数据用于描述相应的数据点以及相应的数据采集端,数据点包括多个采集时间以及在每个采集时间采集的一个或多个监测数据,时序数据描述表用于存储时序数据表中的时序数据的描述信息。
可选地,预统计条件包括过滤条件、预统计函数和分组指示信息,分组指示信息用于指示是否需要分组;
预统计模块502包括:
过滤单元,用于根据时序数据描述表,从时序数据表中提取满足过滤条件的数据,得到预统计候选数据表;
处理单元,用于根据预统计函数和分组指示信息,对预统计候选数据表进行处理,得到预统计结果。
可选地,过滤条件包括数据过滤类别、时间过滤范围、标签过滤数据和监测指标过滤数据;
过滤单元包括:
第一提取子单元,用于根据数据过滤类别和时序数据描述表,从时序数据表中提取数据类别为数据过滤类别的表项,得到第一候选表;
第二提取子单元,用于根据标签过滤数据和时序数据描述表,从第一候选表中提取满足条件的表项,得到第二候选表,满足条件的表项包括的标签中含有标签过滤数据所指示的标签;
过滤子单元,用于根据时间过滤范围、监测指标过滤数据和时序数据描述表,对第二候选表中的数据进行过滤,得到预统计候选数据表。
可选地,预统计条件还包括上传频率;
过滤单元还包括:
划分子单元,用于按照时间过滤范围和上传频率,将预统计任务划分为一个或多个子统计任务,每个子统计任务对应时间过滤范围内的一个子时间范围;
如果参考子时间范围为历史时间范围,参考子时间范围为参考子统计任务对应的子时间范围,参考子统计任务为一个或多个子统计任务中的一个,则过滤子单元具体用于:
根据参考子时间范围和时序数据描述表,从第二候选表中,提取采集时间在参考子时间范围内的表项,得到第三候选表;
根据监测指标过滤数据和时序数据描述表,将第三候选表中除监测指标过滤数据所指示的监测数据之外的监测数据过滤掉,得到参考子统计任务对应的候选数据表,预统计候选数据表是通过一个或多个子统计任务对应的候选数据表组成的。
可选地,过滤单元还包括:
触发子单元,用于如果参考子时间范围为未来时间范围,则在参考子时间范围之后,触发第一提取子单元执行根据数据过滤类别和时序数据描述表,从时序数据表中提取数据类别为数据过滤类别的表项,得到第一候选表;
过滤子单元具体用于:
根据参考子时间范围和时序数据描述表,从第二候选表中,提取采集时间在参考子时间范围内的表项,得到第三候选表;
根据监测指标过滤数据和时序数据描述表,将第三候选表中除监测指标过滤数据所指示的监测数据之外的监测数据过滤掉,得到参考子统计任务对应的候选数据表。
可选地,标签过滤数据包括一个或多个参考标签名称以及每个参考标签名称对应的参考标签字段;
第二提取子单元具体用于:
根据一个或多个参考标签名称,以及时序数据描述表,从时序数据表中确定一个或多个标签位置;
从第一候选表中提取每个标签位置处的标签与相应的参考标签字段匹配的表项,得到第二候选表。
可选地,监测指标过滤数据包括一个或多个参考监测指标名称;
过滤子单元具体用于:
根据一个或多个参考监测指标名称和时序数据描述表,从第三候选表中确定一个或多个监测指标位置;
将第三候选表中监测数据的位置不在一个或多个监测指标位置的监测数据过滤掉,得到参考子统计任务对应的候选数据表。
可选地,预统计函数包括一个或多个降采样函数以及一个或多个聚合函数,且一个监测指标对应一个降采样函数和一个聚合函数;
处理单元,包括:
第一降采样子单元,用于根据参考子统计任务对应的候选数据表中的监测数据所属的各个监测指标对应的降采样函数,对参考子统计任务对应的候选数据表中的各个表项进行降采样处理,得到降采样结果;
第一聚合子单元,用于根据分组指示信息和参考子统计任务对应的候选数据表中的监测数据所属的各个监测指标对应的聚合函数,对降采样结果进行聚合处理,得到参考子统计任务对应的第一预统计结果,预统计结果是通过一个或多个子统计任务对应的第一预统计结果组成的。
可选地,预统计结果是按照元数据和数据点的格式存储在预统计结果表中,预统计结果表中的元数据是根据过滤条件确定的,预统计结果表中的数据点包括一个或多个预统计监测数据,预统计监测数据是根据预统计函数确定的。
可选地,该装置500还包括:
第二获取模块,用于获取查询任务对应的预统计结果查询条件;
第一确定模块,用于根据预统计结果查询条件,以及存储的一个或多个预统计结果,确定预统计查询结果。
可选地,一个或多个预统计结果分别存储在对应的一个预统计结果表中,预统计结果表中的元数据包括一个采集时间,预统计结果表以预统计任务的任务标识来标识,预统计结果查询条件包括参考任务标识和查询时间范围;
第一确定模块包括:
获取单元,用于从存储的一个或多个预统计结果表中获取参考任务标识所标识的预统计结果表,作为预统计候选结果表;
提取单元,用于从预统计候选结果表中,提取采集时间在查询时间范围内的表项,以得到预统计查询结果。
可选地,预统计结果查询条件还包括结果返回时间间隔、一个或多个降采样函数、一个或多个聚合函数、以及分组指示信息,且一个监测指标对应一个降采样函数和一个聚合函数;
提取单元包括:
第三提取子单元,用于从预统计候选结果表中,提取采集时间在查询时间范围内的表项,得到第一查询表;
确定子单元,用于按照查询时间范围以及结果返回时间间隔,确定多个子查询时间范围,每个子查询时间范围为查询时间范围内的一个子时间范围;
第四提取子单元,用于根据参考子查询时间范围,从第一查询表的表项中,提取采集时间在参考子查询时间范围内的表项,得到第二查询表,参考子查询时间范围为一个或多个子查询时间范围中的一个;
第二降采样子单元,用于根据第二查询表中的预统计监测数据所属的各个监测指标对应的降采样函数,对第二查询表中的各个表项进行降采样处理,得到降采样查询结果;
第二聚合子单元,用于根据分组指示信息和降采样查询结果中的预统计监测数据所属的各个监测指标对应的聚合函数,对降采样查询结果进行聚合处理,得到参考子查询时间范围对应的第一预统计查询结果,预统计查询结果是通过一个或多个子查询时间范围对应的第一预统计查询结果组成的。
可选地,该装置500还包括:
接收模块,用于接收预统计状态查询指令,预统计状态查询指令携带参考任务标识;
第二确定模块,用于根据参考任务标识,从存储的任务标识与任务状态的对应关系中,确定参考预统计任务的任务状态,参考预统计任务为参考任务标识所标识的预统计任务。
综上所述,在本申请实施例中,时序数据表包括的时序数据按照元数据和数据点的格式存储,元数据用于描述相应的数据点以及相应的数据采集端,数据点包括多个采集时间以及在每个采集时间采集的一个或多个监测数据,且用时序数据描述表来存储时序数据表中的时序数据的描述信息。也即是,本申请方案中对时序数据的存储类型进行了结构优化,每条监测记录可以包括一个数据采集端在多个采集时间采集的各个监测数据,这样,遍历一个表项可以获取更多的数据,提高预统计中的检索效率,且预统计时无需进行表关联,大大提高预统计效率。
需要说明的是:上述实施例提供的时序数据预统计装置在预统计时序数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的时序数据预统计装置与时序数据预统计方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是本申请实施例提供的一种服务器的结构示意图。该服务器可以为上述实施例中的数据服务器,服务器600包括中央处理单元(CPU)601、包括随机存取存储器(RAM)602和只读存储器(ROM)603的系统存储器604,以及连接系统存储器604和中央处理单元601的系统总线605。服务器600还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)606,和用于存储操作系统613、应用程序614和其他程序模块615的大容量存储设备607。
基本输入/输出系统606包括有用于显示信息的显示器608和用于用户输入信息的诸如鼠标、键盘之类的输入设备609。其中显示器608和输入设备609都通过连接到系统总线605的输入输出控制器610连接到中央处理单元601。基本输入/输出系统606还可以包括输入输出控制器610以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器610还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备607通过连接到系统总线605的大容量存储控制器(未示出)连接到中央处理单元601。大容量存储设备607及其相关联的计算机可读介质为服务器600提供非易失性存储。也就是说,大容量存储设备607可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器604和大容量存储设备607可以统称为存储器。
根据本申请的各种实施例,服务器600还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器600可以通过连接在系统总线605上的网络接口单元611连接到网络612,或者说,也可以使用网络接口单元611来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。所述一个或者一个以上程序包含用于进行本申请实施例提供的序数据预统计方法的指令。
在一些实施例中,还提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中时序数据预统计方法的步骤。例如,所述计算机可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘和光数据存储设备等。
值得注意的是,本申请提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
应当理解的是,实现上述实施例的全部或部分步骤可以通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。所述计算机指令可以存储在上述计算机可读存储介质中。
也即是,在一些实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述所述的时序数据预统计方法的步骤。
应当理解的是,本文提及的“至少一个”是指一个或多个,“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (15)

1.一种时序数据预统计方法,其特征在于,所述方法包括:
获取预统计任务对应的预统计条件;
根据所述预统计条件和时序数据描述表,对存储的时序数据表进行预统计,得到预统计结果;
其中,所述时序数据表用于按照元数据和数据点的格式存储时序数据,所述元数据用于描述相应的数据点以及相应的数据采集端,所述数据点包括多个采集时间以及在每个采集时间采集的一个或多个监测数据,所述时序数据描述表用于存储所述时序数据表中的时序数据的描述信息。
2.根据权利要求1所述的方法,其特征在于,所述预统计条件包括过滤条件、预统计函数和分组指示信息,所述分组指示信息用于指示是否需要分组;
所述根据所述预统计条件和时序数据描述表,对存储的时序数据表进行预统计,得到预统计结果,包括:
根据所述时序数据描述表,从所述时序数据表中提取满足所述过滤条件的数据,得到预统计候选数据表;
根据所述预统计函数和所述分组指示信息,对所述预统计候选数据表进行处理,得到所述预统计结果。
3.根据权利要求2所述的方法,其特征在于,所述过滤条件包括数据过滤类别、时间过滤范围、标签过滤数据和监测指标过滤数据;
所述根据所述时序数据描述表,从所述时序数据表中提取满足所述过滤条件的数据,得到预统计候选数据表,包括:
根据所述数据过滤类别和所述时序数据描述表,从所述时序数据表中提取数据类别为所述数据过滤类别的表项,得到第一候选表;
根据所述标签过滤数据和所述时序数据描述表,从所述第一候选表中提取满足条件的表项,得到第二候选表,所述满足条件的表项包括的标签中含有所述标签过滤数据所指示的标签;
根据所述时间过滤范围、所述监测指标过滤数据和所述时序数据描述表,对所述第二候选表中的数据进行过滤,得到所述预统计候选数据表。
4.如权利要求3所述的方法,其特征在于,所述预统计条件还包括上传频率;
所述根据所述数据过滤类别和所述时序数据描述表,从所述时序数据表中提取数据类别为所述数据过滤类别的表项,得到第一候选表之前,还包括:
按照所述时间过滤范围和所述上传频率,将所述预统计任务划分为一个或多个子统计任务,每个子统计任务对应所述时间过滤范围内的一个子时间范围;
如果参考子时间范围为历史时间范围,所述参考子时间范围为参考子统计任务对应的子时间范围,所述参考子统计任务为所述一个或多个子统计任务中的一个,则所述根据所述时间过滤范围、所述监测指标过滤数据和所述时序数据描述表,对所述第二候选表中的数据进行过滤,得到所述预统计候选数据表,包括:
根据所述参考子时间范围和所述时序数据描述表,从所述第二候选表中,提取采集时间在所述参考子时间范围内的表项,得到第三候选表;
根据所述监测指标过滤数据和所述时序数据描述表,将所述第三候选表中除所述监测指标过滤数据所指示的监测数据之外的监测数据过滤掉,得到所述参考子统计任务对应的候选数据表,所述预统计候选数据表是通过所述一个或多个子统计任务对应的候选数据表组成的。
5.如权利要求4所述的方法,其特征在于,所述按照所述时间过滤范围和所述上传频率,将所述预统计任务划分为一个或多个子统计任务之后,还包括:
如果所述参考子时间范围为未来时间范围,则在所述参考子时间范围之后,执行根据所述数据过滤类别和所述时序数据描述表,从所述时序数据表中提取数据类别为所述数据过滤类别的表项,得到第一候选表的步骤;
所述根据所述时间过滤范围、所述监测指标过滤数据和所述时序数据描述表,对所述第二候选表中的数据进行过滤,得到所述预统计候选数据表,包括:
根据所述参考子时间范围和所述时序数据描述表,从所述第二候选表中,提取采集时间在所述参考子时间范围内的表项,得到第三候选表;
根据所述监测指标过滤数据和所述时序数据描述表,将所述第三候选表中除所述监测指标过滤数据所指示的监测数据之外的监测数据过滤掉,得到所述参考子统计任务对应的候选数据表。
6.根据权利要求3-5任一所述的方法,其特征在于,所述标签过滤数据包括一个或多个参考标签名称以及每个参考标签名称对应的参考标签字段;
所述根据所述标签过滤数据和所述时序数据描述表,从所述第一候选表中提取满足条件的表项,得到第二候选表,包括:
根据所述一个或多个参考标签名称,以及所述时序数据描述表,从所述时序数据表中确定一个或多个标签位置;
从所述第一候选表中提取每个标签位置处的标签与相应的参考标签字段匹配的表项,得到所述第二候选表。
7.根据权利要求4或5所述的方法,其特征在于,所述监测指标过滤数据包括一个或多个参考监测指标名称;
所述根据所述监测指标过滤数据和所述时序数据描述表,将所述第三候选表中除所述监测指标过滤数据所指示的监测数据之外的监测数据过滤掉,得到所述参考子统计任务对应的候选数据表,包括:
根据所述一个或多个参考监测指标名称和所述时序数据描述表,从所述第三候选表中确定一个或多个监测指标位置;
将所述第三候选表中监测数据的位置不在所述一个或多个监测指标位置的监测数据过滤掉,得到所述参考子统计任务对应的候选数据表。
8.根据权利要求4或5所述的方法,其特征在于,所述预统计函数包括一个或多个降采样函数以及一个或多个聚合函数,且一个监测指标对应一个降采样函数和一个聚合函数;
所述根据所述预统计函数和所述分组指示信息,对所述预统计候选数据表进行处理,得到所述预统计结果,包括:
根据所述参考子统计任务对应的候选数据表中的监测数据所属的各个监测指标对应的降采样函数,对所述参考子统计任务对应的候选数据表中的各个表项进行降采样处理,得到降采样结果;
根据所述分组指示信息和所述参考子统计任务对应的候选数据表中的监测数据所属的各个监测指标对应的聚合函数,对所述降采样结果进行聚合处理,得到所述参考子统计任务对应的第一预统计结果,所述预统计结果是通过所述一个或多个子统计任务对应的第一预统计结果组成的。
9.根据权利要求2-8任一所述的方法,其特征在于,所述预统计结果是按照元数据和数据点的格式存储在预统计结果表中,所述预统计结果表中的元数据是根据所述过滤条件确定的,所述预统计结果表中的数据点包括一个或多个预统计监测数据,所述预统计监测数据是根据所述预统计函数确定的。
10.根据权利要求1-9任一所述的方法,其特征在于,所述方法还包括:
获取查询任务对应的预统计结果查询条件;
根据所述预统计结果查询条件,以及存储的一个或多个预统计结果,确定预统计查询结果。
11.根据权利要求10所述的方法,其特征在于,所述一个或多个预统计结果分别存储在对应的一个预统计结果表中,所述预统计结果表中的元数据包括一个采集时间,所述预统计结果表以所述预统计任务的任务标识来标识,所述预统计结果查询条件包括参考任务标识和查询时间范围;
所述根据所述预统计结果查询条件,以及存储的一个或多个预统计结果,确定预统计查询结果,包括:
从存储的一个或多个预统计结果表中获取参考任务标识所标识的预统计结果表,作为预统计候选结果表;
从所述预统计候选结果表中,提取采集时间在所述查询时间范围内的表项,以得到所述预统计查询结果。
12.根据权利要求11所述的方法,其特征在于,所述预统计结果查询条件还包括结果返回时间间隔、一个或多个降采样函数、一个或多个聚合函数、以及分组指示信息,且一个监测指标对应一个降采样函数和一个聚合函数;
所述从所述预统计候选结果表中,提取采集时间在所述查询时间范围内的表项,以得到所述预统计查询结果,包括:
从所述预统计候选结果表中,提取采集时间在所述查询时间范围内的表项,得到第一查询表;
按照所述查询时间范围以及所述结果返回时间间隔,确定多个子查询时间范围,每个子查询时间范围为所述查询时间范围内的一个子时间范围;
根据参考子查询时间范围,从所述第一查询表的表项中,提取采集时间在所述参考子查询时间范围内的表项,得到第二查询表,所述参考子查询时间范围为所述一个或多个子查询时间范围中的一个;
根据所述第二查询表中的预统计监测数据所属的各个监测指标对应的降采样函数,对所述第二查询表中的各个表项进行降采样处理,得到降采样查询结果;
根据所述分组指示信息和所述降采样查询结果中的预统计监测数据所属的各个监测指标对应的聚合函数,对所述降采样查询结果进行聚合处理,得到所述参考子查询时间范围对应的第一预统计查询结果,所述预统计查询结果是通过所述一个或多个子查询时间范围对应的第一预统计查询结果组成的。
13.根据权利要求1-12任一所述的方法,其特征在于,所述方法还包括:
接收预统计状态查询指令,所述预统计状态查询指令携带参考任务标识;
根据所述参考任务标识,从存储的任务标识与任务状态的对应关系中,确定参考预统计任务的任务状态,所述参考预统计任务为所述参考任务标识所标识的预统计任务。
14.一种时序数据预统计装置,其特征在于,所述装置包括:
第一获取模块,用于获取预统计任务对应的预统计条件;
预统计模块,用于根据所述预统计条件和时序数据描述表,对存储的时序数据表进行预统计,得到预统计结果;
其中,所述时序数据表用于按照元数据和数据点的格式存储时序数据,所述元数据用于描述相应的数据点以及相应的数据采集端,所述数据点包括多个采集时间以及在每个采集时间采集的一个或多个监测数据,所述时序数据描述表用于存储所述时序数据表中的时序数据的描述信息。
15.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-13任一所述方法的步骤。
CN202010504704.8A 2020-06-05 2020-06-05 时序数据预统计方法、装置及存储介质 Pending CN113761013A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010504704.8A CN113761013A (zh) 2020-06-05 2020-06-05 时序数据预统计方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010504704.8A CN113761013A (zh) 2020-06-05 2020-06-05 时序数据预统计方法、装置及存储介质

Publications (1)

Publication Number Publication Date
CN113761013A true CN113761013A (zh) 2021-12-07

Family

ID=78783994

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010504704.8A Pending CN113761013A (zh) 2020-06-05 2020-06-05 时序数据预统计方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN113761013A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114281895A (zh) * 2021-12-24 2022-04-05 成都索贝数码科技股份有限公司 支持远程拉取的多数据中心同步方法
CN114547144A (zh) * 2022-01-30 2022-05-27 清华大学 时序数据范围查询方法、装置及设备
CN114547030A (zh) * 2022-01-20 2022-05-27 清华大学 多级时序数据压缩方法、装置、电子设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110258179A1 (en) * 2010-04-19 2011-10-20 Salesforce.Com Methods and systems for optimizing queries in a multi-tenant store
US20140229470A1 (en) * 2013-02-08 2014-08-14 Jive Software, Inc. Fast ad-hoc filtering of time series analytics
US20150095381A1 (en) * 2013-09-27 2015-04-02 International Business Machines Corporation Method and apparatus for managing time series database
CN106503276A (zh) * 2017-01-06 2017-03-15 山东浪潮云服务信息科技有限公司 一种用于实时监控系统的时间序列数据库的方法与装置
US20170329828A1 (en) * 2016-05-13 2017-11-16 Ayla Networks, Inc. Metadata tables for time-series data management
CN108038199A (zh) * 2017-12-12 2018-05-15 清华大学 一种层次结构的传感器时序数据存储方法和系统
CN109165217A (zh) * 2018-08-03 2019-01-08 北京涛思数据科技有限公司 一种时序数据的高效存储方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110258179A1 (en) * 2010-04-19 2011-10-20 Salesforce.Com Methods and systems for optimizing queries in a multi-tenant store
US20140229470A1 (en) * 2013-02-08 2014-08-14 Jive Software, Inc. Fast ad-hoc filtering of time series analytics
US20150095381A1 (en) * 2013-09-27 2015-04-02 International Business Machines Corporation Method and apparatus for managing time series database
US20170329828A1 (en) * 2016-05-13 2017-11-16 Ayla Networks, Inc. Metadata tables for time-series data management
CN106503276A (zh) * 2017-01-06 2017-03-15 山东浪潮云服务信息科技有限公司 一种用于实时监控系统的时间序列数据库的方法与装置
CN108038199A (zh) * 2017-12-12 2018-05-15 清华大学 一种层次结构的传感器时序数据存储方法和系统
CN109165217A (zh) * 2018-08-03 2019-01-08 北京涛思数据科技有限公司 一种时序数据的高效存储方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114281895A (zh) * 2021-12-24 2022-04-05 成都索贝数码科技股份有限公司 支持远程拉取的多数据中心同步方法
CN114281895B (zh) * 2021-12-24 2023-12-08 成都索贝数码科技股份有限公司 支持远程拉取的多数据中心同步方法
CN114547030A (zh) * 2022-01-20 2022-05-27 清华大学 多级时序数据压缩方法、装置、电子设备及存储介质
CN114547030B (zh) * 2022-01-20 2023-03-24 清华大学 多级时序数据压缩方法、装置、电子设备及存储介质
CN114547144A (zh) * 2022-01-30 2022-05-27 清华大学 时序数据范围查询方法、装置及设备
CN114547144B (zh) * 2022-01-30 2023-03-24 清华大学 时序数据范围查询方法、装置及设备

Similar Documents

Publication Publication Date Title
CN113761013A (zh) 时序数据预统计方法、装置及存储介质
JP5678620B2 (ja) データ処理方法、データ処理システム、及びデータ処理装置
JP7279266B2 (ja) 時系列データを保存および照会するための方法および装置、並びにそれらのサーバーおよび記憶媒体
CN111064614A (zh) 一种故障根因定位方法、装置、设备及存储介质
CN102637178A (zh) 一种音乐推荐方法、装置及系统
CN103605651A (zh) 一种基于olap多维分析的数据处理展现方法
US20160170834A1 (en) Block data storage system in an event historian
CN113468019A (zh) 基于Hbase的指标监控方法、装置、设备及存储介质
CN112860808A (zh) 基于数据标签的用户画像分析方法、装置、介质和设备
Egri et al. Cross-correlation based clustering and dimension reduction of multivariate time series
CN114595129A (zh) 一种可配置的多维度数据监控方法、装置及存储介质
CN113553341A (zh) 多维数据分析方法、装置、设备及计算机可读存储介质
CN110502543B (zh) 设备性能数据存储方法、装置、设备和存储介质
US7647333B2 (en) Cube-based percentile calculation
CN107729206A (zh) 告警日志的实时分析方法、系统和计算机处理设备
CN112667149B (zh) 一种数据热度感知方法、装置、设备及介质
CN111522710B (zh) 基于大数据的数据压缩方法、设备及介质
CN115617794A (zh) 数据分析方法、数据分析设备和计算机可读存储介质
Lee et al. A system architecture for monitoring sensor data stream
JP6201053B2 (ja) 素性データ管理システム、および素性データ管理方法
Lee et al. Design and implementation of a system for environmental monitoring sensor network
CN114911769A (zh) 支持自定义动态标签构建的数据管理方法和系统
CN112817938A (zh) 一种基于数据产品化的通用数据服务构建方法及系统
Cuzzocrea Approximate OLAP query processing over uncertain and imprecise multidimensional data streams
CN112000456A (zh) 一种任务调度方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination