從零開始學(xué)習(xí)系列之時(shí)間序列數(shù)據(jù)庫(kù)
大家好,又見面了。
監(jiān)控系統(tǒng)大家應(yīng)該都用過,而監(jiān)控里面記錄的比較重要的數(shù)據(jù)就是某個(gè)時(shí)間點(diǎn)發(fā)生了什么,而用來存儲(chǔ)這些數(shù)據(jù)的數(shù)據(jù)庫(kù),用專業(yè)術(shù)語(yǔ)講就是時(shí)間序列數(shù)據(jù)庫(kù)(Time Series Database,縮寫簡(jiǎn)稱 TSDB)。以下是一個(gè)更官方的解釋:
時(shí)間序列數(shù)據(jù)庫(kù)主要用于指處理帶時(shí)間標(biāo)簽(按照時(shí)間的順序變化,即時(shí)間序列化)的數(shù)據(jù),帶時(shí)間標(biāo)簽的數(shù)據(jù)也稱為時(shí)間序列數(shù)據(jù)。是新型的非關(guān)系型數(shù)據(jù)庫(kù),在大數(shù)據(jù)時(shí)代有著十分重要的意義。
Prometheus、InfluxDB、M3、TimescaleDB 都是時(shí)下流行的 TSDB。時(shí)序數(shù)據(jù)的壓縮算法很大程度上決定了 TSDB 的性能,以上幾個(gè)項(xiàng)目的實(shí)現(xiàn)都參考了 Facebook 2015 年發(fā)表的論文《Gorilla: A fast, scalable, in-memory time series database》中提到的差值算法。
今天要推薦的開源項(xiàng)目 mandodb 是一個(gè)最小化的 TSDB 實(shí)現(xiàn),從概念上來講它還算不上是一個(gè)完整的 TSDB,因?yàn)樗?/span>
沒有實(shí)現(xiàn)自己的查詢引擎(實(shí)現(xiàn)難度大)
缺少磁盤歸檔文件 Compact 操作(天氣好的話會(huì)實(shí)現(xiàn))
沒有 WAL 作為災(zāi)備保證高可用(心情好的話會(huì)實(shí)現(xiàn))
但是 mandodb 的意圖是希望完整介紹如何從零開始實(shí)現(xiàn)一個(gè)小型的 TSDB,希望能給大家?guī)砀嗟膯l(fā)。
mandodb 使用 Go 實(shí)現(xiàn),同時(shí)作者也針對(duì) mandodb 提供了如下詳盡的用法介紹、設(shè)計(jì)方案介紹等,其中還包含了對(duì)差值算法的講解,是非常不錯(cuò)的學(xué)習(xí)資料呢。

開源作者的整體文檔行文非常的風(fēng)趣幽默,同時(shí)細(xì)節(jié)講解也非常的詳細(xì),如果你對(duì)時(shí)間序列數(shù)據(jù)庫(kù)感興趣,推薦你了解一下這個(gè)項(xiàng)目,Star 一波絕對(duì)不虧。
更多項(xiàng)目詳情請(qǐng)查看如下鏈接。
開源項(xiàng)目地址:https://github.com/chenjiandongx/mandodb
開源書籍&資料:點(diǎn)擊
點(diǎn)如下卡片后臺(tái)回復(fù):1,與我交流開源項(xiàng)目&小程序開發(fā)等內(nèi)容。
