时序数据库入门系列: 时序数据的查询

上篇文章时序数据库入门系列:什么是时序数据库?介绍了时序数据库的定义和发展趋势,这次接着分享下时序数据库的查询相关的概念。

尽管时序数据的查询类型或者场景多种多样,但时序数据库的查询类型,整体上来说主要分成原始数据查询、聚合数据查询等两种类型。

原始数据查询,顾名思义,就是查询原始数据,将写入的数据原封不动的查询出来。由于查询结果粒度太细,当时间范围较大时,结果集通常较大,业务处理起来比较困难,且较难发现蕴含在结果集中的规律性和趋势性。

聚合数据查询,就是在通过聚合函数对原始数据进行处理,然后返回查询结果集。聚合数据查询的计算主要有插值、降精度、聚合等3种类型的计算。聚合数据查询主要用来做数据分析,利用诸如QuickBI, Grafana等可视化工具来展现聚合查询的结果,以方便发现蕴含在蕴含在时序数据中的规律性和趋势性。

其中,不管是原始数据查询、还是聚合数据查询,时序数据的查询一般都会带上查询时间范围,一方面是根据时间范围计算聚合时间窗口,另一方面是为了更高效的检索数据,提高查询效率,避免大量无效数据的扫描。

为了下文更方便地介绍时序数据库的查询,这里先给出一个时序数据的例子。

如上图所示,这里给出了3台风力发电机的时序数据,其中,由于某个原因,设备id为"7AD45HJ"设备在"2021-01-23T00:00:40Z"这个时刻没有上报风速这个下面就这个例子展开讨论下时序数据的原始数据查询和聚合数据查询。

原始数据查询

原始数据查询,有范围查询和最新值查找。

  • 范围查询:比如查询设备ID为"7AD45HJ"的在2021-01-23T00:00:10Z~2021-01-23T00:00:50Z这段时间范围内的数据。
  • 最新值查询:比如查询设备ID为"7AD45HJ"的最新值,在上图中,最新值为2021-01-23T00:00:50Z这个时刻对应的功率和风速。

聚合数据查询

聚合数据查询的计算主要有插值、降精度、聚合等3种类型的计算。下面来看看具体是怎么工作的。

降精度

当查询的时间范围比较长,只需返回一定精度的数据时使用。比如查询设备ID为"7AD45HJ"的在2021-01-23T00:00:00Z~2021-01-23T00:00:50Z这段时间范围内的数据时,想以30秒时间粒度返回功率的平均值,那么需要使用平均值算子对原始数据进行处理。处理过程如下:

  • 将原始数据以30秒为一个时间窗口分成多个时间区间, 这个例子为[0, 30), [30, 60)两个区间,这两个区间的功率值切分为[1800, 1750, 2000], [1863, 1823, 1865]。
  • 然后对划分好的时间区间内的数据使用平均值算子求平均值,两个区间的平均值分别为:1850.0, 1850.3
  • 计算结果表示,降精度是将多个时间范围内多个数据点,计算为每个时间范围内一个数据点,但时序数据查询返回结果时,依然需要为每个数据点带上时间戳。通常的办法是范围每个时间范围对齐的第一个时间戳,即这个例子的计算结果表示为(2021-01-23T00:00:00Z, 1850.0), (2021-01-23T00:00:30Z, 1850.3)两个时间戳值对。

从上面的例子来看,降精度是将一条时间线的原始数据根据指定时间粒度,划分为多个时间窗口,然后使用算子分别对这些时间窗口内的数据做计算的过程。这个过程如下图所示。

不同的时序数据库支持的降精度算子不尽相同,下图是阿里云时序数据库TSDB的降精度算子,有如下几种不等。

前面提到,降精度是先把所有时间线按照指定精度切分,并把每个降精度区间内的数据做一次运算。如果某个精度区间没有值的话,可以使用填值策略进行指定在这个时间点填充具体的值。

比如,以前面的时序数据的例子为例,设备id为"7AD45HJ"设备在"2021-01-23T00:00:40Z"没有值,这时可以使用10秒粒度进行降精度查询,并使用线性插值的填值策略进行填值。这时对于设备id为"7AD45HJ"的设备而言,其在2021-01-23T00:00:40Z时刻的值,就被填充为11.21 + (11.23 -11.21) / 20 * 10 = 11.22

不同的时序数据的支持的填值策略不同,下图是阿里云时序数据库TSDB的填值策略,有如下几种不等。

聚合

聚合就是把多条时间线的值按各个对齐时刻聚合为一条时间线的结果, 如果只有一条时间线,则不进行聚合。聚合计算的过程如下图所示。

聚合时必须要求每条时间线在对应时刻都有值,如果某条时间线在某个时刻没有值,则会进行插值。插值就是如果某条时间线某个精度区间没有值且没有使用填值策略进行填值,而待聚合的其他时间线中有一条时间线在此精度区间有值,则会对本时间线的这个缺值精度区间进行插值。

例如:降以及聚合条件为{"downsample": "10s-avg", "aggregator": "sum"} ,有两条时间线需要使用 sum 聚合,按 10s-avg 做降采样后的这两条时间线有值的时间戳分别为:

line 1: t+0, t+10, t+20, t+30
line 2: t+0, t+20, t+30

第二条时间线 line 2 缺 "t+10"这个时刻的值,那么在聚合前会对 line 2 的 "t+10"这个时间点进行插值。插值的方法与聚合的算子有关,不同的时序数据库的支持插值算法不同,下面是阿里云时序数据库TSDB,在不同的聚合算子下的插值方法列表。

以开篇给出的时序数据为例,当我们想计算厂商为“KingWind"的所有设备在每10秒时的风速的平均值时,就会用到聚合和插值,其按照时间对其后的插值和聚合过程如下图所示。标红的数字表示利用插值填充的值。


降精度和聚合计算的区别在于,降精度是在单条时间线上做计算,在时间维度上表现为横向计算;聚合是在多条时间线之间做计算,在时间维度上表现为纵向计算。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容