時(shí)間序列數(shù)據(jù)庫(kù)簡(jiǎn)稱時(shí)序數(shù)據(jù)庫(kù)(Time Series Database),用于處理帶時(shí)間標(biāo)簽(按照時(shí)間的順序變化奖亚,即時(shí)間序列化)的數(shù)據(jù),帶時(shí)間標(biāo)簽的數(shù)據(jù)也稱為時(shí)間序列數(shù)據(jù)。
時(shí)序數(shù)據(jù)的幾個(gè)特點(diǎn)
1. 基本上都是插入雁仲,沒有更新的需求。
2. 數(shù)據(jù)基本上都有時(shí)間屬性琐脏,隨著時(shí)間的推移不斷產(chǎn)生新的數(shù)據(jù)攒砖。
3. 數(shù)據(jù)量大,每秒鐘需要寫入成千萬上億條數(shù)據(jù)
業(yè)務(wù)方常見需求
1. 獲取最新狀態(tài)日裙,查詢最近的數(shù)據(jù)(例如傳感器最新的狀態(tài))
2. 展示區(qū)間統(tǒng)計(jì)吹艇,指定時(shí)間范圍,查詢統(tǒng)計(jì)信息昂拂,例如平均值受神,最大值,最小值格侯,計(jì)數(shù)等鼻听。财著。。
3. 獲取異常數(shù)據(jù)撑碴,根據(jù)指定條件撑教,篩選異常數(shù)據(jù)
常見業(yè)務(wù)場(chǎng)景
監(jiān)控軟件系統(tǒng):?虛擬機(jī)、容器醉拓、服務(wù)伟姐、應(yīng)用
監(jiān)控物理系統(tǒng):?水文監(jiān)控、工廠的設(shè)備監(jiān)控亿卤、國(guó)家安全相關(guān)的數(shù)據(jù)監(jiān)控愤兵、通訊監(jiān)控、傳感器數(shù)據(jù)怠噪、血糖儀恐似、血壓變化、心率等
資產(chǎn)跟蹤應(yīng)用:?汽車傍念、卡車矫夷、物理容器、運(yùn)貨托盤
金融交易系統(tǒng):?傳統(tǒng)證券憋槐、新興的加密數(shù)字貨幣
事件應(yīng)用程序:?跟蹤用戶双藕、客戶的交互數(shù)據(jù)
商業(yè)智能工具:?跟蹤關(guān)鍵指標(biāo)和業(yè)務(wù)的總體健康情況
在互聯(lián)網(wǎng)行業(yè)中,也有著非常多的時(shí)序數(shù)據(jù)阳仔,例如用戶訪問網(wǎng)站的行為軌跡忧陪,應(yīng)用程序產(chǎn)生的日志數(shù)據(jù)等等。
一些基本概念(不同的時(shí)序數(shù)據(jù)庫(kù)稱呼略有不同)
Metric:? 度量近范,相當(dāng)于關(guān)系型數(shù)據(jù)庫(kù)中的 table嘶摊。
Data point:? 數(shù)據(jù)點(diǎn),相當(dāng)于關(guān)系型數(shù)據(jù)庫(kù)中的 row评矩。
Timestamp:時(shí)間戳叶堆,代表數(shù)據(jù)點(diǎn)產(chǎn)生的時(shí)間。
Field:? 度量下的不同字段斥杜。比如位置這個(gè)度量具有經(jīng)度和緯度兩個(gè) field虱颗。一般情況下存放的是隨時(shí)間戳而變化的數(shù)據(jù)。
Tag:? 標(biāo)簽蔗喂。一般存放的是不隨時(shí)間戳變化的信息忘渔。timestamp 加上所有的 tags 可以視為 table 的 primary key。
例如采集有關(guān)風(fēng)的數(shù)據(jù)缰儿,度量為 Wind畦粮,每條數(shù)據(jù)都有時(shí)間戳timestamp,兩個(gè)字段 field:direction(風(fēng)向)、speed(風(fēng)速)锈玉,兩個(gè)tag:sensor(傳感器編號(hào))爪飘、city(城市)义起。第一行和第三行拉背,存放的都是 sensor 編號(hào)為86F-2RT8的設(shè)備,城市是深圳默终。隨著時(shí)間的變化椅棺,風(fēng)向和風(fēng)速發(fā)生了改變,風(fēng)向從56.4變?yōu)?5.6齐蔽,風(fēng)速?gòu)?.9變?yōu)?.6两疚。
需要解決的幾個(gè)問題
時(shí)序數(shù)據(jù)的寫入:如何支持每秒鐘成千上億條數(shù)據(jù)的寫入。
時(shí)序數(shù)據(jù)的讀群巍:如何支持在秒級(jí)對(duì)上億條數(shù)據(jù)的分組聚合運(yùn)算诱渤。
成本敏感:海量數(shù)據(jù)存儲(chǔ)帶來的成本問題。如何以更低成本存儲(chǔ)數(shù)據(jù)谈况,將成為時(shí)序數(shù)據(jù)庫(kù)需要解決的重中之重勺美。
常見時(shí)序數(shù)據(jù)庫(kù)
時(shí)序數(shù)據(jù)庫(kù)出現(xiàn)的時(shí)間較晚,目前較成熟的時(shí)序數(shù)據(jù)庫(kù)都僅有1碑韵、2年的歷史赡茸。
InfluxDB(單機(jī)版免費(fèi),集群版收費(fèi))最成熟祝闻,Kairosdb(底層使用Cassandra)占卧,OpenTsdb(底層使用Hbase),beringei(FB開源)联喘,TimeScaleDB(底層基于PostgreSQL)华蜒,TSDB(百度開源),HiTSDB(阿里開源豁遭,底層是PostgreSQL)叭喜。