時間序列數(shù)據(jù)的處理

摘要:隨著云計算和IoT的發(fā)展,時間序列數(shù)據(jù)的數(shù)據(jù)量急劇膨脹,高效的分析時間序列數(shù)據(jù),使之產(chǎn)生業(yè)務價值成為一個熱門話題谬盐。阿里巴巴數(shù)據(jù)庫事業(yè)部的HiTSDB團隊為您分享時間序列數(shù)據(jù)的計算分析的一般方法以及優(yōu)化手段。

演講嘉賓簡介:鐘宇(悠你) 阿里巴巴 數(shù)據(jù)庫高級專家诚些,時間序列數(shù)據(jù)庫HiTSDB的研發(fā)負責人飞傀。在數(shù)據(jù)庫、操作系統(tǒng)诬烹、函數(shù)式編程等方面有豐富的經(jīng)驗砸烦。

本次直播視頻PPT,戳這里绞吁!

本次分享主要分為以下幾個方面:

1.?????時序數(shù)據(jù)庫的應用場景

2.?????面向分析的時序數(shù)據(jù)存儲

3.?????時序數(shù)據(jù)庫的時序計算

4.?????時序數(shù)據(jù)庫的計算引擎

5.?????時序數(shù)據(jù)庫展望

一幢痘,時序數(shù)據(jù)庫的應用場景

時序數(shù)據(jù)就是在時間上分布的一系列數(shù)值。生活中常見的時序數(shù)據(jù)包括家破,股票價格颜说、廣告數(shù)據(jù)购岗、氣溫變化、網(wǎng)站的PV/UV门粪、個人健康數(shù)據(jù)喊积、工業(yè)傳感器數(shù)據(jù)、服務器系統(tǒng)監(jiān)控數(shù)據(jù)(比如CPU和內存占用率)玄妈、車聯(lián)網(wǎng)等乾吻。

下面介紹IoT領域中的時間序列數(shù)據(jù)案例。IoT給時序數(shù)據(jù)處理帶來了很大的挑戰(zhàn)措近。這是由于IoT領域帶來了海量的時間序列數(shù)據(jù):

1. 成千上萬的設備

2. 數(shù)以百萬計的傳感器

3. 每秒產(chǎn)生百萬條數(shù)據(jù)

4. 24×7全年無休(區(qū)別于電商數(shù)據(jù)溶弟,電商數(shù)據(jù)存在高峰和低谷女淑,因此可以利用低谷的時間段進行數(shù)據(jù)庫維護瞭郑,數(shù)據(jù)備份等工作)

5. 多維度查詢/聚合

6. 最新數(shù)據(jù)實時可查

IoT中的時間序列數(shù)據(jù)處理主要包括以下四步:

?1. 采樣

?2. 傳輸

?3. 存儲

4. 分析

二,面向分析的時序數(shù)據(jù)存儲

下面介紹時間序列數(shù)據(jù)的一個例子鸭你。這是一個新能源風力發(fā)電機的例子屈张。每個風力發(fā)電機上有兩個傳感器,一個是功率袱巨,一個是風速阁谆,并定時進行采樣。三個設備愉老,一共會產(chǎn)生六個時間序列场绿。每個發(fā)電機都有多種標簽,這就會產(chǎn)生多個數(shù)據(jù)維度嫉入。比如焰盗,基于生產(chǎn)廠商這個維度,對功率做聚合咒林“揪埽或基于風場,對風速做聚合等〉婢海現(xiàn)在的時序數(shù)據(jù)庫底層存儲一般用的是單值模型澎粟。因為多值模型也可以一對一的映射到單值模型,但這個過程可能會導致性能損失欢瞪。但是活烙,在對外提供服務時,單值模型和多值模型都有應用遣鼓。比如啸盏,OpenTSDB就是用單值模型對外提供服務的,而influxDB則是多值模型譬正。但這兩種數(shù)據(jù)庫的底層存儲用的都是單值模型宫补。

現(xiàn)實中的應用案例事實上會更復雜檬姥。像風力發(fā)電機這樣的案例甚淡,它的設備和傳感器的數(shù)量雷恃,我們可以認為是穩(wěn)中有增的,不會發(fā)生特別劇烈的改變胎撇。它的數(shù)據(jù)采樣的周期也是嚴格的定期采樣贫贝。下圖是一個工業(yè)案例秉犹,以滴滴這樣的運營商為例。由于其業(yè)務特性稚晚,其車輛數(shù)量的增長和下降會出現(xiàn)暴漲暴跌崇堵。

總體而言,現(xiàn)實世界的復雜之處在于:

1. 未必是總是定時采樣客燕。

2. 時間線可能是高度發(fā)散鸳劳。以互聯(lián)網(wǎng)廣告為例,在對廣告進行采樣時也搓,新廣告的增長和老廣告的下線速度很快赏廓,時間線就很有可能時高度發(fā)散的。

3. 主鍵和schema修改傍妒。前面例子中提到的Tag幔摸,可以對應數(shù)據(jù)庫的schema,在實際業(yè)務中可能會頻繁改動〔罚現(xiàn)在一般的時序數(shù)據(jù)庫中既忆,主鍵是會默認生成的,即所有tag的組合嗦玖。因此患雇,在新增tag時,主鍵就會改變踏揣,則變?yōu)榱肆硪粋€對象庆亡。

4. 分布式系統(tǒng)和片鍵。由于數(shù)據(jù)量很大捞稿,因此需要對數(shù)據(jù)進行分片又谋,片鍵的選擇也是一個難以抉擇的問題。

5. 數(shù)據(jù)類型娱局。以剛才提到的單值模型為例彰亥。假設有一個三維的加速度傳感器,同一時間點上會產(chǎn)生三個關聯(lián)的數(shù)據(jù)衰齐,這時的數(shù)據(jù)類型就應該是一個維度為3的矢量任斋,即一個新的數(shù)據(jù)類型。

6. 需要對每個數(shù)據(jù)點的值做過濾耻涛。假設每輛車上都裝有GPS傳感器废酷,假設要統(tǒng)計某一時間段內瘟檩,一公里內,出現(xiàn)了哪些車輛澈蟆,分別由哪些廠商生產(chǎn)墨辛。此時需要對地理位置進行過濾。

下圖是過去提出利用HiTSDB對時序問題的解決方案趴俘。在這種方案中睹簇,未解決發(fā)散問題,較高維數(shù)據(jù)和值過濾問題寥闪。用倒排索引來存儲設備信息太惠,并把時間點上的數(shù)據(jù)存在高壓縮比緩存中。這兩者結合疲憋,實際上將邏輯上的一個表分成了兩個表凿渊,用以解決多維度查詢和聚合的問題。但使用這種方案依然有很多問題無法解決柜某。

下面是HiTSDB的一些優(yōu)勢和不足:

1. 優(yōu)勢:

倒排索引可以很方便的篩選設備嗽元;

高壓縮比緩存具有很高的寫入和讀取能力

方便的時間切片

無schema,靈活方便支持各種數(shù)據(jù)模型

2.???不足:

在非定時采樣場景下可能導致數(shù)據(jù)稀疏

值沒有索引喂击,因此值過濾只能線性過濾

Schema改動導致時間線變動

廣播查限制了QPS

在此基礎上,進行了演進淤翔,如下圖翰绊。

1. 引入了Adaptive schema,即如果未指定一個數(shù)據(jù)表的schema旁壮,則認為寫入的第一條數(shù)據(jù)中包含的TagKV即是片鍵也是主鍵监嗜,用以確定唯一性以及數(shù)據(jù)會被分片到哪一個節(jié)點上。

2. 壓縮塊也不再是按固定的時間切片了抡谐,引入了meta index裁奇,用以查詢每個數(shù)據(jù)塊的開始和結束時間。在一個時間段內攢夠了足夠的數(shù)據(jù)后麦撵,把整個數(shù)據(jù)塊進行壓縮刽肠。

3. 參考列存的思路,值索引到壓縮塊免胃。值索引不再像傳統(tǒng)數(shù)據(jù)庫那樣索引到行音五。

4. 多值索引和空間切分。

三羔沙,時序數(shù)據(jù)庫的時序算法

上面所述的存儲結構主要是為了方便進行時序數(shù)據(jù)的加工和分析躺涝。時序有一些特殊算法。

1.?????降采樣和插值:傳感器采樣出的點可能特別密集扼雏,在分析趨勢時坚嗜,會希望進行過濾夯膀。通過降采樣可以利用一段時間內的最小值/最大值/平均值來替代。

降采樣算法:min/max/avg苍蔬。

插值算法:補零/線性/貝塞爾曲線

2.?????聚合計算:由于采樣是精確到每個傳感器的棍郎,但有時需要的數(shù)據(jù)并不僅是精確到某個傳感器的。比如银室,希望比較兩個不同廠商的發(fā)電機涂佃,哪個在風場中產(chǎn)生了更多的電。那么就需要對傳感器數(shù)據(jù)進行聚合蜈敢。

邏輯聚合:min/max

算術聚合:sum/count/avg

統(tǒng)計:histogram/percentile/Standard Deviation

3.?????時間軸計算

變化率:rate

對時序數(shù)據(jù)進行加工的分析的重要目的是發(fā)現(xiàn)異常辜荠。下面介紹在異常檢測中如何定義問題。從異常檢測的角度來看時間序列數(shù)據(jù)抓狭,分為三個維度:time, object, metric伯病。

1.?????固定兩個維度,只考慮一個維度的數(shù)據(jù)否过。

·T: only consider time dim午笛,單一對象單一metric即單個時間序列):spikes & dips、趨勢變化苗桂、范圍變化药磺。

·M: only consider metric,找出不符合metric之間相互關系的數(shù)據(jù)煤伟。

·O: only consider object癌佩,找出與眾不同的對象。

2.?????固定一個維度便锨,只考慮兩個維度的數(shù)據(jù)围辙。

·MT:固定對象,考慮多個時間序列(每個對應一個metric)放案,并找出其相互變化方式不同的作為異常姚建。

·MO:不考慮時間特性,考慮多個對象且每個對象都可以用多個metric表示吱殉,如何從中找出不同的對象掸冤。

·TO:多個對象單一metric,找出變化趨勢不同的對象考婴。

在異常檢測中贩虾,面向問題有如下計算方法:

1.?????內置函數(shù)

·高壓縮比緩存直接作為窗口緩存

·對于滿足數(shù)據(jù)局部性的問題,直接在高壓縮比緩存上運行

·結果直接寫回

·定時調度 vs 數(shù)據(jù)觸發(fā)

2.?????外置計算

·定時查詢 vs 流式讀取

·使用同樣的查詢語言執(zhí)行查詢或定義數(shù)據(jù)源

·數(shù)據(jù)庫內置時間窗口

·數(shù)據(jù)流的觸發(fā)機制

針對時序數(shù)據(jù)沥阱,又可以將計算分為預計算和后計算缎罢。

預計算:事先將結果計算完并存儲。這是流計算中常用的方式。其特點如下:

·數(shù)據(jù)存儲量低

·查詢性能高

·需要手工編寫計算過程

·新的計算無法立即查看結果

·靈活性差

·不保存原始數(shù)據(jù)

后計算:先存數(shù)據(jù)策精,需要時進行計算舰始。這是數(shù)據(jù)庫中常用的方式。其特點如下:

·數(shù)據(jù)存儲量大

·查詢/聚合性能瓶頸

·任何查詢都可以隨時獲得結果

·使用DSL進行查詢

·靈活性好

·保存原始數(shù)據(jù)

四咽袜,時序數(shù)據(jù)庫的計算引擎

基于兩種計算的特點丸卷,在時序數(shù)據(jù)處理中,我們使用的是一種混合架構询刹。有數(shù)據(jù)進來時谜嫉,有預聚合規(guī)則,如果符合規(guī)則就進行預聚合凹联,把數(shù)據(jù)寫入數(shù)據(jù)庫中沐兰。在查詢時,如果符合預聚合規(guī)則蔽挠,就可以很快得到結果住闯。對于不滿足預聚合規(guī)則的數(shù)據(jù),會將其從數(shù)據(jù)庫中讀出澳淑,進行后聚合比原。中間的聚合引擎是一種類似流式計算的架構,數(shù)據(jù)庫或者數(shù)據(jù)源都可以作為數(shù)據(jù)源杠巡。數(shù)據(jù)源的來源對于引擎是不可見的量窘,它的功能是接收數(shù)據(jù),計算并產(chǎn)生結果忽孽。因此绑改,預計算和后計算都可以利用這一種邏輯進行,并放在同一個運行環(huán)境中兄一。

在邏輯上,上圖是可行的识腿。但實際上出革,如果要用這種方式進行流計算,由于數(shù)據(jù)源可能出現(xiàn)亂序等問題渡讼,就必須要利用窗口函數(shù)骂束,將數(shù)據(jù)放入時間窗口中整理好,但這種緩存的效率其實并不高成箫,實際情況下展箱,是按照下圖這種邏輯進行的。數(shù)據(jù)會被寫進數(shù)據(jù)庫蹬昌,由于數(shù)據(jù)庫有高壓縮比緩存混驰,是專門針對時序數(shù)據(jù)的。當一個時間窗口結束時,利用持續(xù)查詢來進行預計算栖榨。它會將高壓縮比緩存中的數(shù)據(jù)拿一部分出來做預聚合再寫回數(shù)據(jù)庫中昆汹。這樣,這個緩存機制就替代了原來的時間窗口婴栽,節(jié)省了很多內存满粗,降低了很多計算開銷。

使用類似于流的架構的好處是可以將其很快的接入異構計算的環(huán)境中愚争。正如大家熟知的映皆,流計算可以轉化為一個DAG。結合前面提到的降采樣和聚合的例子轰枝。以一個加法為例捅彻,可以把數(shù)據(jù)切成三片放入不同的工作節(jié)點上計算,計算完后再進行一次聚合輸出數(shù)據(jù)狸膏。工作節(jié)點既可能是CPU也可能是GPU沟饥。接入異構計算的環(huán)境中,可以加速數(shù)據(jù)的計算湾戳。

五贤旷,時序數(shù)據(jù)庫展望

下圖是對未來架構的展望。

1.?????存儲層

·類似lambda架構砾脑,基于一系列不可修改的文件

·針對不同的場景提供不同的存儲格式

2.?????計算層

·流式架構幼驶,基于內存的異構計算,自動填充熱數(shù)據(jù)

·數(shù)據(jù)分片韧衣,支持高QPS讀取

3.?????索引

·全局的索引 vs 文件局部索引

4.?????大數(shù)據(jù)

·可以直接在大量的文件上跑MR盅藻,也可以通過高壓縮比緩存以流的方式訂閱數(shù)據(jù)

未來,這個數(shù)據(jù)庫將會演化成時序數(shù)據(jù)平臺畅铭。它可以兼容SQL生態(tài)氏淑,一系列大數(shù)據(jù)平臺,以及融合邊緣計算硕噩。在部署時可以在云和邊緣部署一整套的管理架構假残,同時把用SQL描述的規(guī)則下放到云板和邊緣板上,形成一整套數(shù)據(jù)處理方案炉擅。

POLARDB:https://www.aliyun.com/product/polardb?spm=5176.8142029.388261.347.62136d3etcPz5x

HBASE:https://www.aliyun.com/product/hbase?spm=5176.155538.765261.355.57227e0dLAlXGl

云數(shù)據(jù)庫RDS PPAS 版 :https://www.aliyun.com/product/rds/ppas?spm=5176.54432.765261.351.6e1e28f5UFqADw

原文鏈接

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末辉懒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子谍失,更是在濱河造成了極大的恐慌眶俩,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件快鱼,死亡現(xiàn)場離奇詭異颠印,居然都是意外死亡纲岭,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門嗽仪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來荒勇,“玉大人,你說我怎么就攤上這事闻坚」料瑁” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵窿凤,是天一觀的道長仅偎。 經(jīng)常有香客問我,道長雳殊,這世上最難降的妖魔是什么橘沥? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮夯秃,結果婚禮上座咆,老公的妹妹穿的比我還像新娘。我一直安慰自己仓洼,他們只是感情好介陶,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著色建,像睡著了一般哺呜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上箕戳,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天某残,我揣著相機與錄音,去河邊找鬼陵吸。 笑死玻墅,一個胖子當著我的面吹牛,可吹牛的內容都是我干的壮虫。 我是一名探鬼主播椭豫,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼旨指!你這毒婦竟也來了?” 一聲冷哼從身側響起喳整,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤谆构,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后框都,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體搬素,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了熬尺。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摸屠。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖粱哼,靈堂內的尸體忽然破棺而出季二,到底是詐尸還是另有隱情,我是刑警寧澤揭措,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布胯舷,位于F島的核電站,受9級特大地震影響绊含,放射性物質發(fā)生泄漏桑嘶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一躬充、第九天 我趴在偏房一處隱蔽的房頂上張望逃顶。 院中可真熱鬧,春花似錦充甚、人聲如沸以政。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽妙蔗。三九已至,卻和暖如春疆瑰,著一層夾襖步出監(jiān)牢的瞬間眉反,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工穆役, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留寸五,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓耿币,卻偏偏與公主長得像梳杏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子淹接,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理十性,服務發(fā)現(xiàn),斷路器塑悼,智...
    卡卡羅2017閱讀 134,601評論 18 139
  • 【FQ金錢能量管理】 午餐38元劲适,無其他花費∠崴猓控制大消費霞势,只購買需求而非欲望烹植。 【PQ飲食、健身愕贡、事業(yè)經(jīng)營發(fā)展】 ...
    快樂的老露閱讀 99評論 0 0
  • 現(xiàn)在天氣的能見度真的超高草雕!(??????)??可以看到好遠好遠呢!瞬間感覺抑郁一掃而空固以!(? ̄ ?  ̄?) 好看不...
  • 文 | 私塾先生 先問個尖銳的問題:你有男/女朋友了嗎嘴纺? 很多朋友表示:瞎問啥……當然沒有…… 我也沒有败晴。 不過我...
    私塾先生lilz閱讀 364評論 2 4