時序列數(shù)據(jù)庫武斗大會之TSDB名錄 Part 2

【編者按】
劉斌婴噩,OneAPM后端研發(fā)工程師是尖,擁有10多年編程經(jīng)驗(yàn),參與過大型金融、通信以及Android手機(jī)操作系的開發(fā)徙垫,熟悉Linux及后臺開發(fā)技術(shù)讥裤。曾參與翻譯過《第一本Docker書》、《GitHub入門與實(shí)踐》姻报、《Web應(yīng)用安全權(quán)威指南》己英、《WEB+DB PRESS》、《Software Design》等書籍吴旋,也是Docker入門與實(shí)踐課程主講人损肛。本文所闡述的「時間序列數(shù)據(jù)庫」,系筆者所負(fù)責(zé)產(chǎn)品 Cloud Insight 對性能指標(biāo)進(jìn)行聚合荣瑟、分組治拿、過濾過程中的梳理和總結(jié)。

在前面《時序列數(shù)據(jù)庫武斗大會之 TSDB 名錄 Part 1》我們已經(jīng)介紹了一些常見的 TSDB笆焰,這里我們再對剩余的一些TSDB 做些簡單介紹劫谅。

10.Geras

Geras 是一個專注于 IoT 的領(lǐng)域(當(dāng)然不僅限于傳感器采集到的數(shù)據(jù))可擴(kuò)展的、分布式的時序列數(shù)據(jù)庫嚷掠,用于幫助用戶進(jìn)行快速分析捏检。Geras 是一個 SaaS 服務(wù),但是你也可以購買軟件自己部署不皆、托管贯城。Geras 提供了免費(fèi)版,它不對數(shù)據(jù)存儲的時間和數(shù)據(jù)量做任何限制霹娄,只是不提供 SLA 而已冤狡。不過他們的 SaaS 主頁我卻一直沒打開過,貌似該 DNS 記錄已經(jīng)不存在了项棠,官方相關(guān)資料也不多悲雳,真懷疑這個項目已經(jīng)廢棄了,該產(chǎn)品已經(jīng)演化為新產(chǎn)品香追。

Geras 速度非澈掀埃快,它支持對任何時間精度進(jìn)行 Rollup透典,也支持保存原始數(shù)據(jù)的精度晴楔。它專門為寫操作進(jìn)行了優(yōu)化,可以接收海量設(shè)備的數(shù)據(jù)輸入峭咒。

Geras 運(yùn)行在容錯税弃、分布式數(shù)據(jù)存儲之上,支持水平擴(kuò)展凑队,可以在不停止服務(wù)的前提下對系統(tǒng)容量進(jìn)行調(diào)整则果。

Geras 也提供了一套可視化界面,方便的對設(shè)備、傳感器等進(jìn)行管理西壮,對 metric 進(jìn)行圖表的可視化等遗增。

Geras 支持多種技術(shù)來進(jìn)行數(shù)據(jù)存儲、查詢和展示款青,比如 HTTPS做修、JSON、RESTful抡草、SenML饰及、MQTT、HyperCat康震,設(shè)備數(shù)據(jù)可以通過 HTTP POST 或者輕量 MQTT 發(fā)布燎含。

11.Akumuli

Akumuli 名稱來自 accumulate,是一個數(shù)值型時間序列數(shù)據(jù)庫签杈,可以存儲瘫镇、處理時序列數(shù)據(jù)。

它的特點(diǎn)如下:

  • 基于日志結(jié)構(gòu)的存儲
  • 支持無序數(shù)據(jù)
  • 實(shí)時壓縮
  • 基于HTTP的JSON查詢支持
  • 支持面向行和面向列的存儲
  • 將最新數(shù)據(jù)放入內(nèi)存存儲
  • 通過metric和tag組織時序列數(shù)據(jù)答姥,并且可以通過tag進(jìn)行join操作铣除。
  • Resampling (PAA transform),滑動窗口
  • 通過基于TCP或UDP的協(xié)議接收數(shù)據(jù)(支持百萬數(shù)據(jù)點(diǎn)每秒)
  • Continuous queries (streaming)

Akumuli 由兩部分組成:存儲引擎和服務(wù)程序鹦付。目前只有存儲引擎被實(shí)現(xiàn)了尚粘,而且存儲引擎可以在沒有服務(wù)程序的情況下作為嵌入式數(shù)據(jù)庫單獨(dú)使用(類似sqlite),也就是說敲长,你得通過自己編寫程序使用它的 API 來實(shí)現(xiàn)數(shù)據(jù)讀寫郎嫁。

Akumuli 的數(shù)據(jù)協(xié)議基于 Redis,它的數(shù)據(jù)格式也和前面看到的不太一樣祈噪,比如:

每條數(shù)據(jù)由三部分組成泽铛,第一部分稱為 ID,可以是數(shù)值型(以“:”開始)辑鲤,或者是字符串(以“+”開始)盔腔,比如這個例子中,cpu host=machine1 region= europe就是 ID月褥,它由兩部分組成弛随,cpu 是metric,hostregion則被稱為 key宁赤。

數(shù)據(jù)的第二部分可以是時間戳(:1418224205)舀透,這里的格式為ISO 8601(+20141210T074343.999999)

第三部分為值部分。

類似上面的數(shù)據(jù)結(jié)構(gòu)决左,它的query也比較容易理解:


Akumuli 目前還處于開發(fā)狀態(tài)愕够,不適合在生產(chǎn)環(huán)境下使用走贪。

12.Atlas

這個和波士頓動力的機(jī)器人 Atlas,以及其他很多知名軟件(HashiCorp链烈、O'reilly)都重名了厉斟。

Atlas 用于存儲帶維度信息的時序列數(shù)據(jù)挚躯,由 Netflix 開發(fā)强衡,用于實(shí)時分析。Atlas 使用了基于內(nèi)存的存儲码荔,速度非充銮冢快。在 2011 年的時候缩搅,Netflix 使用自己開發(fā)的 Epic 工具來管理時序列數(shù)據(jù)越败,這是一個采用 perl、RRDTool 和 MySQL 構(gòu)建的系統(tǒng)硼瓣,但是隨著數(shù)據(jù)量的增大(2M->1.2B)究飞,他們創(chuàng)建了這個新項目。

如果說商業(yè)智能(business intelligence)是從數(shù)據(jù)基于時間分析出趨勢的話堂鲤,那么 Atlas 可以說是一種運(yùn)維智能(operational intelligence)亿傅,能給用戶描述出當(dāng)前系統(tǒng)所發(fā)生的所有情況。

Atlas 的設(shè)計目標(biāo)主要有3點(diǎn):

  • 通用API
  • 可擴(kuò)展
  • 維度支持

Atlas 具備和 OpenTSDB 以及 InfluxDB 類似的metric/datapoint/tag的概念瘟栖,同時它也有自己獨(dú)自的特性葵擎,比如增加了步長(step-size)的概念。

Atlas 采用了類似 RRDtool 的查詢語法半哟,它們都通過一種對 URL 友好的語法來支持復(fù)雜的數(shù)據(jù)查詢酬滤。

一句話點(diǎn)評:背靠大樹好乘涼,可以試試寓涨。

13.Blueflood

Blueflood 由 Rackspace 的 Cloud Monitoring 團(tuán)隊創(chuàng)建盯串,用于管理 Cloud Monitoring 系統(tǒng)產(chǎn)生的 metric 數(shù)據(jù)。如果你還不熟悉 Rackspace 這個公司的話戒良,可以去網(wǎng)上了解一下体捏,它也是比較大的云計算公司。

除了自己使用蔬墩,Rackspace 還提供了免費(fèi)的 Blueflood-as-a-Service译打,此外還有一些大公司也在準(zhǔn)備使用 Blueflood。

Blueflood 特點(diǎn)如下:

  • built on top of Cassandra
  • 基于HTTP API/JSON的數(shù)據(jù)采集(ingest)和讀取
  • 支持?jǐn)?shù)值拇颅、布爾和字符串metric data
  • 多租戶
  • 水平擴(kuò)展

Blueflood 主要由以下模塊構(gòu)成:

  • Ingest - 采集/寫入數(shù)據(jù)
  • Rollup - 聚合計算
  • Query - 處理用戶查詢

不過遺憾的是 Blueflood 現(xiàn)在沒有一個類似 tag 的多維度方案奏司。

一句話點(diǎn)評:背靠大樹好乘涼,可以試試樟插。

14.Gnocchi

Gnocchi 是 OpenStack 項目的一部分韵洋,但它也能獨(dú)立工作竿刁。

Gnocchi 是一個多租戶的時間序列、metric 和資源(resource)數(shù)據(jù)庫搪缨。它提供了一組 HTTP REST API 來創(chuàng)建和管理數(shù)據(jù)食拜。

Gnocchi 以在云就算環(huán)境中存儲大量 metric 信息為設(shè)計出發(fā)點(diǎn),為用戶提供 metric 和資源展示功能副编,同時它也很容易擴(kuò)展负甸。

Gnocchi 特點(diǎn)如下:

  • HTTP RES 接口
  • 水平擴(kuò)展
  • Metric 聚合
  • 支持批處理
  • 支持歸檔功能
  • 按 Metric 值查找(這個在 TSDB 很少見)
  • 多租戶支持
  • 對 Grafan 的支持
  • 支持 Statsd 協(xié)議

Gnocchi 后端存儲支持一下4種方式:

  • File
  • Swift
  • Ceph (推薦方式)
  • InfluxDB (實(shí)驗(yàn)功能)

前三種方式基于一個名為 Carbonara 的庫,這個庫負(fù)責(zé)對時間序列數(shù)據(jù)的管理痹届,因?yàn)檫@三種存儲方案本身并不關(guān)心數(shù)據(jù)的特點(diǎn)呻待。InfluxDB 前面已經(jīng)說過,本身就是一個 TSDB队腐。

15.Newts

Newts 是基于 Cassandra 的時序列數(shù)據(jù)庫蚕捉。正如其名所示,它是一個 “New-fangled Timeseries Data Store”柴淘。它的開發(fā)者是 OpenNMS迫淹,這也是一個知名的開源網(wǎng)絡(luò)監(jiān)控和管理平臺。

Newts 基于 Cassandra为严,對寫優(yōu)化敛熬、完全分布式,吞吐量非常高梗脾;通過將類似的 metric 分組存儲荸型,讓寫和讀更高效。

16.SiteWhere

SiteWhere 是一個開源的 IoT 開放平臺炸茧,幫助用戶快速將 IoT 應(yīng)用推向市場瑞妇。SiteWhere 提供了一套完整的設(shè)備管理解決方案,通過 MQTT梭冠、AMQP辕狰、Stomp 和其他協(xié)議連接設(shè)備,支持自注冊控漠、REST 和批處理方式注冊設(shè)備蔓倍。

SiteWhere 也提供了可擴(kuò)展的大數(shù)據(jù)解決方案,底層采用經(jīng)優(yōu)化的 MongoDB 和 HBase盐捷,為存儲設(shè)備事件提供了時序列數(shù)據(jù)庫偶翅,且經(jīng)過 Hortonworks 和 Cloudera 的測試。

SiteWhere 還內(nèi)嵌了 Siddhi 用于 Complex Event Processing (CEP)碉渡,提供了 Azure EventHub聚谁、Apache Solr 以及 Twilio 的集成,以及 Android 和 Arduino 平臺開發(fā)用的 SDK滞诺。

SiteWhere 的部署方式也很靈活形导,支持公有云环疼、私有機(jī)房,Ubuntu Juju 和 Docker 的部署方式朵耕。

SiteWhere 也支持多租戶炫隶,不同的租戶數(shù)據(jù)分開存儲,還能為不同的租戶提供不同的處理引擎阎曹,租戶的啟動伪阶、停止互不影響。

SiteWhere 的 service provider interfaces(SPIs) 提供了平臺的核心對象模型芬膝,第三方可以對平臺進(jìn)行擴(kuò)展望门。

一句話點(diǎn)評:開源形娇、功能強(qiáng)大锰霜、一體化方案。作為 IoT 平臺桐早,SiteWhere 算是這幾個中不錯的癣缅。

建議你接著看一下它的 System Overview 和 System Architecture 以對這個系統(tǒng)有更深入的了解。

17.TempoIQ

TempoIQ 也是一個 IoT 平臺服務(wù)哄酝,它能幫助用戶快速友存、靈活的的創(chuàng)建 IoT 應(yīng)用,提供了實(shí)時的數(shù)據(jù)分析陶衅、報警屡立、儀表盤、報告功能搀军。2014 年 7 月從 TempoDB 改名為 TempoIQ膨俐,它的很多組件都有 IQ 結(jié)尾,代表智商很高罩句?

TempoIQ 主要由以下幾個部分組成:

  • CloudIQ

TempoIQ 采用第四代 CoDA(Context Delivery Architecture)架構(gòu)焚刺,用戶可以不必心系復(fù)雜的基礎(chǔ)設(shè)施就可以部署 IoT 應(yīng)用。

  • ConnectIQ

基于數(shù)據(jù)事件的 API门烂,用于連接任何設(shè)備乳愉,支持靈活的事件數(shù)據(jù)模型:REST API、HTTPs 和 MQTT屯远。它不關(guān)心設(shè)備來源蔓姚,可以及時進(jìn)行數(shù)據(jù)流處理,不需要提前安裝和配置慨丐。

  • DataIQ

對所有 IoT 數(shù)據(jù)和分析報告進(jìn)行安全坡脐、持久的存儲,并提供報告下載功能咖气。

  • AnalyzeIQ

用戶可以創(chuàng)建分析流(custom analytics streams)來洞悉 IoT 數(shù)據(jù)實(shí)時狀態(tài)挨措,自動將數(shù)據(jù)存儲到 DataIQ挖滤。并可以創(chuàng)建報警來持續(xù)監(jiān)控分析流,當(dāng)有超預(yù)期的變動或者達(dá)到致命條件時進(jìn)行實(shí)時報警浅役。

  • ViewIQ
    用戶使用 ViewIQ 可以創(chuàng)建實(shí)時的 IoT 儀表盤斩松、應(yīng)用和可視化組件觉既,而且不需要任何編碼工作惧盹。

18.Riak TS

Riak 作為 NoSQL 和 K/V 存儲可能更有名,而 Riak TS 是一個為時序列和為存儲 IoT 數(shù)據(jù)進(jìn)行了優(yōu)化的 NoSQL 數(shù)據(jù)庫軟件瞪讼。

在官方主頁上寫道:“Riak TS is engineered to be faster than Cassandra”钧椰。

由于其非開源性,網(wǎng)上(包括官網(wǎng))詳細(xì)資料都不是特別多符欠。

19.Cyanite

Cyanite 是一個用于接收和存儲時序列數(shù)據(jù)的守護(hù)進(jìn)程嫡霞,它的設(shè)計目標(biāo)是兼容 Graphite 生態(tài)系統(tǒng)。

Cyanite 默認(rèn)使用 Apache Cassandra 來存儲時序列數(shù)據(jù)希柿,它的特點(diǎn)如下:

  • 可擴(kuò)展性

基于 Cassandra诊沪,Cyanite 可以實(shí)現(xiàn)高可用、具有彈性曾撤,以及低延遲的存儲端姚。

  • 兼容性
    由于 Graphite 已經(jīng)成為事實(shí)上管理時序列數(shù)據(jù)的標(biāo)準(zhǔn),不管是使用 graphite-web 還是 Grafana挤悉。Cyanite 將會盡可能的保持與這些生態(tài)系統(tǒng)的兼容以提供簡單地交互模式渐裸。

Cyanite 是一個典型的流式處理模型,它接收數(shù)據(jù)装悲,對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化昏鹃,然后進(jìn)行輸出。它的交互圖如下所示:

它的工作流程如下:

  • 每條輸入都會產(chǎn)生規(guī)范化的 metrics衅斩,并添加到消息隊列
  • 核心引擎從隊列取出數(shù)據(jù)并處理盆顾。
  • 通過存儲和索引組件進(jìn)行時序列數(shù)據(jù)的存儲和 metric 名的索引
  • API 組件用于處理引擎和其他查詢、存儲模塊的交互
  • Cyanite 的輸入模塊支持 Carbon(Graphite組件)畏梆,而 Kafka 和 Pickle 則還在計劃中您宪。

索引(Index)模塊則用于對 metric 名進(jìn)行索引和查詢。這一模塊有兩種實(shí)現(xiàn)方式:

  • memory 用于在內(nèi)存中存儲反向索引
  • elasticsearch 用于在 elasticsearch 中存儲 metric 名(path-names)

一句話總結(jié):新生事物奠涌、值得關(guān)注宪巨。

20.總結(jié)

這里只是簡單的羅列了一些項目,及其簡單說明溜畅。
在后續(xù)的文章中捏卓,我們還會選擇一些常見的 TSDB 進(jìn)行實(shí)例講解。

本系列其他文章:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末慈格,一起剝皮案震驚了整個濱河市怠晴,隨后出現(xiàn)的幾起案子遥金,更是在濱河造成了極大的恐慌,老刑警劉巖蒜田,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件稿械,死亡現(xiàn)場離奇詭異,居然都是意外死亡冲粤,警方通過查閱死者的電腦和手機(jī)美莫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來梯捕,“玉大人厢呵,你說我怎么就攤上這事】耍” “怎么了襟铭?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長锣笨。 經(jīng)常有香客問我蝌矛,道長,這世上最難降的妖魔是什么错英? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮隆豹,結(jié)果婚禮上椭岩,老公的妹妹穿的比我還像新娘。我一直安慰自己璃赡,他們只是感情好判哥,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著碉考,像睡著了一般塌计。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上侯谁,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天锌仅,我揣著相機(jī)與錄音,去河邊找鬼墙贱。 笑死热芹,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的惨撇。 我是一名探鬼主播伊脓,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼魁衙!你這毒婦竟也來了报腔?” 一聲冷哼從身側(cè)響起株搔,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎纯蛾,沒想到半個月后邪狞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡茅撞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年帆卓,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片米丘。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡剑令,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拄查,到底是詐尸還是另有隱情吁津,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布堕扶,位于F島的核電站碍脏,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏稍算。R本人自食惡果不足惜典尾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望糊探。 院中可真熱鬧钾埂,春花似錦、人聲如沸科平。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瞪慧。三九已至髓考,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間弃酌,已是汗流浹背氨菇。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留矢腻,地道東北人门驾。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像多柑,于是被迫代替她去往敵國和親奶是。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

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