時序數(shù)據(jù)庫入門系列: 時序數(shù)據(jù)的查詢

上篇文章時序數(shù)據(jù)庫入門系列:什么是時序數(shù)據(jù)庫淳衙?介紹了時序數(shù)據(jù)庫的定義和發(fā)展趨勢,這次接著分享下時序數(shù)據(jù)庫的查詢相關(guān)的概念。

盡管時序數(shù)據(jù)的查詢類型或者場景多種多樣围辙,但時序數(shù)據(jù)庫的查詢類型浑测,整體上來說主要分成原始數(shù)據(jù)查詢、聚合數(shù)據(jù)查詢等兩種類型惠勒。

原始數(shù)據(jù)查詢,顧名思義爬坑,就是查詢原始數(shù)據(jù)纠屋,將寫入的數(shù)據(jù)原封不動的查詢出來。由于查詢結(jié)果粒度太細(xì)盾计,當(dāng)時間范圍較大時售担,結(jié)果集通常較大,業(yè)務(wù)處理起來比較困難署辉,且較難發(fā)現(xiàn)蘊含在結(jié)果集中的規(guī)律性和趨勢性灼舍。

聚合數(shù)據(jù)查詢,就是在通過聚合函數(shù)對原始數(shù)據(jù)進行處理涨薪,然后返回查詢結(jié)果集骑素。聚合數(shù)據(jù)查詢的計算主要有插值、降精度刚夺、聚合等3種類型的計算献丑。聚合數(shù)據(jù)查詢主要用來做數(shù)據(jù)分析,利用諸如QuickBI, Grafana等可視化工具來展現(xiàn)聚合查詢的結(jié)果侠姑,以方便發(fā)現(xiàn)蘊含在蘊含在時序數(shù)據(jù)中的規(guī)律性和趨勢性创橄。

其中,不管是原始數(shù)據(jù)查詢莽红、還是聚合數(shù)據(jù)查詢妥畏,時序數(shù)據(jù)的查詢一般都會帶上查詢時間范圍邦邦,一方面是根據(jù)時間范圍計算聚合時間窗口,另一方面是為了更高效的檢索數(shù)據(jù)醉蚁,提高查詢效率燃辖,避免大量無效數(shù)據(jù)的掃描。

為了下文更方便地介紹時序數(shù)據(jù)庫的查詢网棍,這里先給出一個時序數(shù)據(jù)的例子黔龟。

如上圖所示,這里給出了3臺風(fēng)力發(fā)電機的時序數(shù)據(jù)滥玷,其中氏身,由于某個原因,設(shè)備id為"7AD45HJ"設(shè)備在"2021-01-23T00:00:40Z"這個時刻沒有上報風(fēng)速這個下面就這個例子展開討論下時序數(shù)據(jù)的原始數(shù)據(jù)查詢和聚合數(shù)據(jù)查詢惑畴。

原始數(shù)據(jù)查詢

原始數(shù)據(jù)查詢蛋欣,有范圍查詢和最新值查找。

  • 范圍查詢:比如查詢設(shè)備ID為"7AD45HJ"的在2021-01-23T00:00:10Z~2021-01-23T00:00:50Z這段時間范圍內(nèi)的數(shù)據(jù)如贷。
  • 最新值查詢:比如查詢設(shè)備ID為"7AD45HJ"的最新值豁状,在上圖中,最新值為2021-01-23T00:00:50Z這個時刻對應(yīng)的功率和風(fēng)速倒得。

聚合數(shù)據(jù)查詢

聚合數(shù)據(jù)查詢的計算主要有插值、降精度夭禽、聚合等3種類型的計算霞掺。下面來看看具體是怎么工作的。

降精度

當(dāng)查詢的時間范圍比較長讹躯,只需返回一定精度的數(shù)據(jù)時使用菩彬。比如查詢設(shè)備ID為"7AD45HJ"的在2021-01-23T00:00:00Z~2021-01-23T00:00:50Z這段時間范圍內(nèi)的數(shù)據(jù)時,想以30秒時間粒度返回功率的平均值潮梯,那么需要使用平均值算子對原始數(shù)據(jù)進行處理骗灶。處理過程如下:

  • 將原始數(shù)據(jù)以30秒為一個時間窗口分成多個時間區(qū)間, 這個例子為[0, 30), [30, 60)兩個區(qū)間,這兩個區(qū)間的功率值切分為[1800, 1750, 2000], [1863, 1823, 1865]秉馏。
  • 然后對劃分好的時間區(qū)間內(nèi)的數(shù)據(jù)使用平均值算子求平均值耙旦,兩個區(qū)間的平均值分別為:1850.0, 1850.3
  • 計算結(jié)果表示,降精度是將多個時間范圍內(nèi)多個數(shù)據(jù)點萝究,計算為每個時間范圍內(nèi)一個數(shù)據(jù)點免都,但時序數(shù)據(jù)查詢返回結(jié)果時,依然需要為每個數(shù)據(jù)點帶上時間戳帆竹。通常的辦法是范圍每個時間范圍對齊的第一個時間戳绕娘,即這個例子的計算結(jié)果表示為(2021-01-23T00:00:00Z, 1850.0), (2021-01-23T00:00:30Z, 1850.3)兩個時間戳值對。

從上面的例子來看栽连,降精度是將一條時間線的原始數(shù)據(jù)根據(jù)指定時間粒度险领,劃分為多個時間窗口侨舆,然后使用算子分別對這些時間窗口內(nèi)的數(shù)據(jù)做計算的過程绢陌。這個過程如下圖所示复颈。

不同的時序數(shù)據(jù)庫支持的降精度算子不盡相同帜讲,下圖是阿里云時序數(shù)據(jù)庫TSDB的降精度算子蚀苛,有如下幾種不等堵未。

前面提到雌芽,降精度是先把所有時間線按照指定精度切分,并把每個降精度區(qū)間內(nèi)的數(shù)據(jù)做一次運算。如果某個精度區(qū)間沒有值的話,可以使用填值策略進行指定在這個時間點填充具體的值娘荡。

比如回怜,以前面的時序數(shù)據(jù)的例子為例,設(shè)備id為"7AD45HJ"設(shè)備在"2021-01-23T00:00:40Z"沒有值,這時可以使用10秒粒度進行降精度查詢,并使用線性插值的填值策略進行填值志秃。這時對于設(shè)備id為"7AD45HJ"的設(shè)備而言怔球,其在2021-01-23T00:00:40Z時刻的值,就被填充為11.21 + (11.23 -11.21) / 20 * 10 = 11.22

不同的時序數(shù)據(jù)的支持的填值策略不同浮还,下圖是阿里云時序數(shù)據(jù)庫TSDB的填值策略竟坛,有如下幾種不等。

聚合

聚合就是把多條時間線的值按各個對齊時刻聚合為一條時間線的結(jié)果, 如果只有一條時間線碑定,則不進行聚合。聚合計算的過程如下圖所示又官。

聚合時必須要求每條時間線在對應(yīng)時刻都有值延刘,如果某條時間線在某個時刻沒有值,則會進行插值六敬。插值就是如果某條時間線某個精度區(qū)間沒有值且沒有使用填值策略進行填值碘赖,而待聚合的其他時間線中有一條時間線在此精度區(qū)間有值,則會對本時間線的這個缺值精度區(qū)間進行插值外构。

例如:降以及聚合條件為{"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"這個時間點進行插值撼班。插值的方法與聚合的算子有關(guān),不同的時序數(shù)據(jù)庫的支持插值算法不同垒酬,下面是阿里云時序數(shù)據(jù)庫TSDB砰嘁,在不同的聚合算子下的插值方法列表件炉。

以開篇給出的時序數(shù)據(jù)為例,當(dāng)我們想計算廠商為“KingWind"的所有設(shè)備在每10秒時的風(fēng)速的平均值時矮湘,就會用到聚合和插值斟冕,其按照時間對其后的插值和聚合過程如下圖所示。標(biāo)紅的數(shù)字表示利用插值填充的值缅阳。


降精度和聚合計算的區(qū)別在于磕蛇,降精度是在單條時間線上做計算,在時間維度上表現(xiàn)為橫向計算十办;聚合是在多條時間線之間做計算秀撇,在時間維度上表現(xiàn)為縱向計算。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末橘洞,一起剝皮案震驚了整個濱河市捌袜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌炸枣,老刑警劉巖虏等,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異适肠,居然都是意外死亡霍衫,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門侯养,熙熙樓的掌柜王于貴愁眉苦臉地迎上來敦跌,“玉大人,你說我怎么就攤上這事逛揩∧” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵辩稽,是天一觀的道長惧笛。 經(jīng)常有香客問我,道長逞泄,這世上最難降的妖魔是什么患整? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮喷众,結(jié)果婚禮上各谚,老公的妹妹穿的比我還像新娘。我一直安慰自己到千,他們只是感情好昌渤,可當(dāng)我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著憔四,像睡著了一般愈涩。 火紅的嫁衣襯著肌膚如雪望抽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天履婉,我揣著相機與錄音煤篙,去河邊找鬼。 笑死毁腿,一個胖子當(dāng)著我的面吹牛辑奈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播已烤,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼鸠窗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了胯究?” 一聲冷哼從身側(cè)響起稍计,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎裕循,沒想到半個月后臣嚣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡剥哑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年硅则,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片株婴。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡怎虫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出困介,到底是詐尸還是另有隱情大审,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布座哩,位于F島的核電站徒扶,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏八回。R本人自食惡果不足惜酷愧,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一驾诈、第九天 我趴在偏房一處隱蔽的房頂上張望缠诅。 院中可真熱鬧,春花似錦乍迄、人聲如沸管引。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽褥伴。三九已至谅将,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間重慢,已是汗流浹背饥臂。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留似踱,地道東北人隅熙。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像核芽,于是被迫代替她去往敵國和親囚戚。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容