摘要:在前面時(shí)序列數(shù)據(jù)庫(kù)武斗大會(huì)之名錄我們已經(jīng)介紹了一些常見的,這里我們?cè)賹?duì)剩余的一些做些簡(jiǎn)單介紹。是一個(gè)多租戶的時(shí)間序列和資源數(shù)據(jù)庫(kù)。是基于的時(shí)序列數(shù)據(jù)庫(kù)。
【編者按】
劉斌,OneAPM后端研發(fā)工程師,擁有10多年編程經(jīng)驗(yàn),參與過(guò)大型金融、通信以及Android手機(jī)操作系的開發(fā),熟悉Linux及后臺(tái)開發(fā)技術(shù)。曾參與翻譯過(guò)《第一本Docker書》、《GitHub入門與實(shí)踐》、《Web應(yīng)用安全權(quán)威指南》、《WEB+DB PRESS》、《Software Design》等書籍,也是Docker入門與實(shí)踐課程主講人。本文所闡述的「時(shí)間序列數(shù)據(jù)庫(kù)」,系筆者所負(fù)責(zé)產(chǎn)品 Cloud Insight 對(duì)性能指標(biāo)進(jìn)行聚合、分組、過(guò)濾過(guò)程中的梳理和總結(jié)。
在前面《時(shí)序列數(shù)據(jù)庫(kù)武斗大會(huì)之 TSDB 名錄 Part 1》我們已經(jīng)介紹了一些常見的 TSDB,這里我們?cè)賹?duì)剩余的一些TSDB 做些簡(jiǎn)單介紹。
10.GerasGeras 是一個(gè)專注于 IoT 的領(lǐng)域(當(dāng)然不僅限于傳感器采集到的數(shù)據(jù))可擴(kuò)展的、分布式的時(shí)序列數(shù)據(jù)庫(kù),用于幫助用戶進(jìn)行快速分析。Geras 是一個(gè) SaaS 服務(wù),但是你也可以購(gòu)買軟件自己部署、托管。Geras 提供了免費(fèi)版,它不對(duì)數(shù)據(jù)存儲(chǔ)的時(shí)間和數(shù)據(jù)量做任何限制,只是不提供 SLA 而已。不過(guò)他們的 SaaS 主頁(yè)我卻一直沒(méi)打開過(guò),貌似該 DNS 記錄已經(jīng)不存在了,官方相關(guān)資料也不多,真懷疑這個(gè)項(xiàng)目已經(jīng)廢棄了,該產(chǎn)品已經(jīng)演化為新產(chǎn)品。
Geras 速度非常快,它支持對(duì)任何時(shí)間精度進(jìn)行 Rollup,也支持保存原始數(shù)據(jù)的精度。它專門為寫操作進(jìn)行了優(yōu)化,可以接收海量設(shè)備的數(shù)據(jù)輸入。
Geras 運(yùn)行在容錯(cuò)、分布式數(shù)據(jù)存儲(chǔ)之上,支持水平擴(kuò)展,可以在不停止服務(wù)的前提下對(duì)系統(tǒng)容量進(jìn)行調(diào)整。
Geras 也提供了一套可視化界面,方便的對(duì)設(shè)備、傳感器等進(jìn)行管理,對(duì) metric 進(jìn)行圖表的可視化等。
Geras 支持多種技術(shù)來(lái)進(jìn)行數(shù)據(jù)存儲(chǔ)、查詢和展示,比如 HTTPS、JSON、RESTful、SenML、MQTT、HyperCat,設(shè)備數(shù)據(jù)可以通過(guò) HTTP POST 或者輕量 MQTT 發(fā)布。
11.AkumuliAkumuli 名稱來(lái)自 accumulate,是一個(gè)數(shù)值型時(shí)間序列數(shù)據(jù)庫(kù),可以存儲(chǔ)、處理時(shí)序列數(shù)據(jù)。
它的特點(diǎn)如下:
基于日志結(jié)構(gòu)的存儲(chǔ)
支持無(wú)序數(shù)據(jù)
實(shí)時(shí)壓縮
基于HTTP的JSON查詢支持
支持面向行和面向列的存儲(chǔ)
將最新數(shù)據(jù)放入內(nèi)存存儲(chǔ)
通過(guò)metric和tag組織時(shí)序列數(shù)據(jù),并且可以通過(guò)tag進(jìn)行join操作。
Resampling (PAA transform),滑動(dòng)窗口
通過(guò)基于TCP或UDP的協(xié)議接收數(shù)據(jù)(支持百萬(wàn)數(shù)據(jù)點(diǎn)每秒)
Continuous queries (streaming)
Akumuli 由兩部分組成:存儲(chǔ)引擎和服務(wù)程序。目前只有存儲(chǔ)引擎被實(shí)現(xiàn)了,而且存儲(chǔ)引擎可以在沒(méi)有服務(wù)程序的情況下作為嵌入式數(shù)據(jù)庫(kù)多帶帶使用(類似sqlite),也就是說(shuō),你得通過(guò)自己編寫程序使用它的 API 來(lái)實(shí)現(xiàn)數(shù)據(jù)讀寫。
Akumuli 的數(shù)據(jù)協(xié)議基于 Redis,它的數(shù)據(jù)格式也和前面看到的不太一樣,比如:
每條數(shù)據(jù)由三部分組成,第一部分稱為 ID,可以是數(shù)值型(以“:”開始),或者是字符串(以“+”開始),比如這個(gè)例子中,cpu host=machine1 region= europe就是 ID,它由兩部分組成,cpu 是metric,host和region則被稱為 key。
數(shù)據(jù)的第二部分可以是時(shí)間戳(:1418224205),這里的格式為ISO 8601(+20141210T074343.999999)
第三部分為值部分。
類似上面的數(shù)據(jù)結(jié)構(gòu),它的query也比較容易理解:
Akumuli 目前還處于開發(fā)狀態(tài),不適合在生產(chǎn)環(huán)境下使用。
這個(gè)和波士頓動(dòng)力的機(jī)器人 Atlas,以及其他很多知名軟件(HashiCorp、O"reilly)都重名了。
Atlas 用于存儲(chǔ)帶維度信息的時(shí)序列數(shù)據(jù),由 Netflix 開發(fā),用于實(shí)時(shí)分析。Atlas 使用了基于內(nèi)存的存儲(chǔ),速度非常快。在 2011 年的時(shí)候,Netflix 使用自己開發(fā)的 Epic 工具來(lái)管理時(shí)序列數(shù)據(jù),這是一個(gè)采用 perl、RRDTool 和 MySQL 構(gòu)建的系統(tǒng),但是隨著數(shù)據(jù)量的增大(2M->1.2B),他們創(chuàng)建了這個(gè)新項(xiàng)目。
如果說(shuō)商業(yè)智能(business intelligence)是從數(shù)據(jù)基于時(shí)間分析出趨勢(shì)的話,那么 Atlas 可以說(shuō)是一種運(yùn)維智能(operational intelligence),能給用戶描述出當(dāng)前系統(tǒng)所發(fā)生的所有情況。
Atlas 的設(shè)計(jì)目標(biāo)主要有3點(diǎn):
通用API
可擴(kuò)展
維度支持
Atlas 具備和 OpenTSDB 以及 InfluxDB 類似的metric/datapoint/tag的概念,同時(shí)它也有自己獨(dú)自的特性,比如增加了步長(zhǎng)(step-size)的概念。
Atlas 采用了類似 RRDtool 的查詢語(yǔ)法,它們都通過(guò)一種對(duì) URL 友好的語(yǔ)法來(lái)支持復(fù)雜的數(shù)據(jù)查詢。
一句話點(diǎn)評(píng):背靠大樹好乘涼,可以試試。
13.BluefloodBlueflood 由 Rackspace 的 Cloud Monitoring 團(tuán)隊(duì)創(chuàng)建,用于管理 Cloud Monitoring 系統(tǒng)產(chǎn)生的 metric 數(shù)據(jù)。如果你還不熟悉 Rackspace 這個(gè)公司的話,可以去網(wǎng)上了解一下,它也是比較大的云計(jì)算公司。
除了自己使用,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 - 聚合計(jì)算
Query - 處理用戶查詢
不過(guò)遺憾的是 Blueflood 現(xiàn)在沒(méi)有一個(gè)類似 tag 的多維度方案。
一句話點(diǎn)評(píng):背靠大樹好乘涼,可以試試。
14.GnocchiGnocchi 是 OpenStack 項(xiàng)目的一部分,但它也能獨(dú)立工作。
Gnocchi 是一個(gè)多租戶的時(shí)間序列、metric 和資源(resource)數(shù)據(jù)庫(kù)。它提供了一組 HTTP REST API 來(lái)創(chuàng)建和管理數(shù)據(jù)。
Gnocchi 以在云就算環(huán)境中存儲(chǔ)大量 metric 信息為設(shè)計(jì)出發(fā)點(diǎn),為用戶提供 metric 和資源展示功能,同時(shí)它也很容易擴(kuò)展。
Gnocchi 特點(diǎn)如下:
HTTP RES 接口
水平擴(kuò)展
Metric 聚合
支持批處理
支持歸檔功能
按 Metric 值查找(這個(gè)在 TSDB 很少見)
多租戶支持
對(duì) Grafan 的支持
支持 Statsd 協(xié)議
Gnocchi 后端存儲(chǔ)支持一下4種方式:
File
Swift
Ceph (推薦方式)
InfluxDB (實(shí)驗(yàn)功能)
前三種方式基于一個(gè)名為 Carbonara 的庫(kù),這個(gè)庫(kù)負(fù)責(zé)對(duì)時(shí)間序列數(shù)據(jù)的管理,因?yàn)檫@三種存儲(chǔ)方案本身并不關(guān)心數(shù)據(jù)的特點(diǎn)。InfluxDB 前面已經(jīng)說(shuō)過(guò),本身就是一個(gè) TSDB。
15.NewtsNewts 是基于 Cassandra 的時(shí)序列數(shù)據(jù)庫(kù)。正如其名所示,它是一個(gè) “New-fangled Timeseries Data Store”。它的開發(fā)者是 OpenNMS,這也是一個(gè)知名的開源網(wǎng)絡(luò)監(jiān)控和管理平臺(tái)。
Newts 基于 Cassandra,對(duì)寫優(yōu)化、完全分布式,吞吐量非常高;通過(guò)將類似的 metric 分組存儲(chǔ),讓寫和讀更高效。
16.SiteWhereSiteWhere 是一個(gè)開源的 IoT 開放平臺(tái),幫助用戶快速將 IoT 應(yīng)用推向市場(chǎng)。SiteWhere 提供了一套完整的設(shè)備管理解決方案,通過(guò) MQTT、AMQP、Stomp 和其他協(xié)議連接設(shè)備,支持自注冊(cè)、REST 和批處理方式注冊(cè)設(shè)備。
SiteWhere 也提供了可擴(kuò)展的大數(shù)據(jù)解決方案,底層采用經(jīng)優(yōu)化的 MongoDB 和 HBase,為存儲(chǔ)設(shè)備事件提供了時(shí)序列數(shù)據(jù)庫(kù),且經(jīng)過(guò) Hortonworks 和 Cloudera 的測(cè)試。
SiteWhere 還內(nèi)嵌了 Siddhi 用于 Complex Event Processing (CEP),提供了 Azure EventHub、Apache Solr 以及 Twilio 的集成,以及 Android 和 Arduino 平臺(tái)開發(fā)用的 SDK。
SiteWhere 的部署方式也很靈活,支持公有云、私有機(jī)房,Ubuntu Juju 和 Docker 的部署方式。
SiteWhere 也支持多租戶,不同的租戶數(shù)據(jù)分開存儲(chǔ),還能為不同的租戶提供不同的處理引擎,租戶的啟動(dòng)、停止互不影響。
SiteWhere 的 service provider interfaces(SPIs) 提供了平臺(tái)的核心對(duì)象模型,第三方可以對(duì)平臺(tái)進(jìn)行擴(kuò)展。
一句話點(diǎn)評(píng):開源、功能強(qiáng)大、一體化方案。作為 IoT 平臺(tái),SiteWhere 算是這幾個(gè)中不錯(cuò)的。
建議你接著看一下它的 System Overview 和 System Architecture 以對(duì)這個(gè)系統(tǒng)有更深入的了解。
17.TempoIQTempoIQ 也是一個(gè) IoT 平臺(tái)服務(wù),它能幫助用戶快速、靈活的的創(chuàng)建 IoT 應(yīng)用,提供了實(shí)時(shí)的數(shù)據(jù)分析、報(bào)警、儀表盤、報(bào)告功能。2014 年 7 月從 TempoDB 改名為 TempoIQ,它的很多組件都有 IQ 結(jié)尾,代表智商很高?
TempoIQ 主要由以下幾個(gè)部分組成:
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è)備來(lái)源,可以及時(shí)進(jìn)行數(shù)據(jù)流處理,不需要提前安裝和配置。
DataIQ
對(duì)所有 IoT 數(shù)據(jù)和分析報(bào)告進(jìn)行安全、持久的存儲(chǔ),并提供報(bào)告下載功能。
AnalyzeIQ
用戶可以創(chuàng)建分析流(custom analytics streams)來(lái)洞悉 IoT 數(shù)據(jù)實(shí)時(shí)狀態(tài),自動(dòng)將數(shù)據(jù)存儲(chǔ)到 DataIQ。并可以創(chuàng)建報(bào)警來(lái)持續(xù)監(jiān)控分析流,當(dāng)有超預(yù)期的變動(dòng)或者達(dá)到致命條件時(shí)進(jìn)行實(shí)時(shí)報(bào)警。
ViewIQ
用戶使用 ViewIQ 可以創(chuàng)建實(shí)時(shí)的 IoT 儀表盤、應(yīng)用和可視化組件,而且不需要任何編碼工作。
Riak 作為 NoSQL 和 K/V 存儲(chǔ)可能更有名,而 Riak TS 是一個(gè)為時(shí)序列和為存儲(chǔ) IoT 數(shù)據(jù)進(jìn)行了優(yōu)化的 NoSQL 數(shù)據(jù)庫(kù)軟件。
在官方主頁(yè)上寫道:“Riak TS is engineered to be faster than Cassandra”。
由于其非開源性,網(wǎng)上(包括官網(wǎng))詳細(xì)資料都不是特別多。
19.CyaniteCyanite 是一個(gè)用于接收和存儲(chǔ)時(shí)序列數(shù)據(jù)的守護(hù)進(jìn)程,它的設(shè)計(jì)目標(biāo)是兼容 Graphite 生態(tài)系統(tǒng)。
Cyanite 默認(rèn)使用 Apache Cassandra 來(lái)存儲(chǔ)時(shí)序列數(shù)據(jù),它的特點(diǎn)如下:
可擴(kuò)展性
基于 Cassandra,Cyanite 可以實(shí)現(xiàn)高可用、具有彈性,以及低延遲的存儲(chǔ)。
兼容性
由于 Graphite 已經(jīng)成為事實(shí)上管理時(shí)序列數(shù)據(jù)的標(biāo)準(zhǔn),不管是使用 graphite-web 還是 Grafana。Cyanite 將會(huì)盡可能的保持與這些生態(tài)系統(tǒng)的兼容以提供簡(jiǎn)單地交互模式。
Cyanite 是一個(gè)典型的流式處理模型,它接收數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化,然后進(jìn)行輸出。它的交互圖如下所示:
它的工作流程如下:
每條輸入都會(huì)產(chǎn)生規(guī)范化的 metrics,并添加到消息隊(duì)列
核心引擎從隊(duì)列取出數(shù)據(jù)并處理。
通過(guò)存儲(chǔ)和索引組件進(jìn)行時(shí)序列數(shù)據(jù)的存儲(chǔ)和 metric 名的索引
API 組件用于處理引擎和其他查詢、存儲(chǔ)模塊的交互
Cyanite 的輸入模塊支持 Carbon(Graphite組件),而 Kafka 和 Pickle 則還在計(jì)劃中。
索引(Index)模塊則用于對(duì) metric 名進(jìn)行索引和查詢。這一模塊有兩種實(shí)現(xiàn)方式:
memory 用于在內(nèi)存中存儲(chǔ)反向索引
elasticsearch 用于在 elasticsearch 中存儲(chǔ) metric 名(path-names)
一句話總結(jié):新生事物、值得關(guān)注。
20.總結(jié)這里只是簡(jiǎn)單的羅列了一些項(xiàng)目,及其簡(jiǎn)單說(shuō)明。
在后續(xù)的文章中,我們還會(huì)選擇一些常見的 TSDB 進(jìn)行實(shí)例講解。
本系列其他文章:
時(shí)序列數(shù)據(jù)庫(kù)武斗大會(huì)之TSDB名錄 Part 1
時(shí)序列數(shù)據(jù)庫(kù)武斗大會(huì)之TSDB名錄 Part 2
時(shí)序列數(shù)據(jù)庫(kù)武斗大會(huì)之 OpenTSDB 篇
時(shí)序列數(shù)據(jù)庫(kù)武斗大會(huì)之 KairosDB 篇
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/17520.html
摘要:本文所闡述的時(shí)間序列數(shù)據(jù)庫(kù),系筆者所負(fù)責(zé)產(chǎn)品對(duì)性能指標(biāo)進(jìn)行聚合分組過(guò)濾過(guò)程中的梳理和總結(jié)。而帶有標(biāo)志的,則是數(shù)據(jù)采集源,將數(shù)據(jù)發(fā)給服務(wù)。左面的則是的特點(diǎn)之一,其規(guī)則為以上屬性值均為對(duì)應(yīng)名稱的。 【編者按】 劉斌,OneAPM后端研發(fā)工程師,擁有10多年編程經(jīng)驗(yàn),參與過(guò)大型金融、通信以及Android手機(jī)操作系的開發(fā),熟悉Linux及后臺(tái)開發(fā)技術(shù)。曾參與翻譯過(guò)《第一本Docker書》、《...
摘要:本文所闡述的時(shí)間序列數(shù)據(jù)庫(kù),系筆者所負(fù)責(zé)產(chǎn)品對(duì)性能指標(biāo)進(jìn)行聚合分組過(guò)濾過(guò)程中的梳理和總結(jié)。列出這個(gè)能列出系統(tǒng)中所有的。 【編者按】劉斌,OneAPM后端研發(fā)工程師,擁有10多年編程經(jīng)驗(yàn),參與過(guò)大型金融、通信以及Android手機(jī)操作系的開發(fā),熟悉Linux及后臺(tái)開發(fā)技術(shù)。曾參與翻譯過(guò)《第一本Docker書》、《GitHub入門與實(shí)踐》、《Web應(yīng)用安全權(quán)威指南》、《WEB+DB PRE...
閱讀 1272·2021-10-15 09:39
閱讀 3176·2021-09-10 10:50
閱讀 3533·2019-08-30 15:53
閱讀 1964·2019-08-30 15:52
閱讀 2633·2019-08-29 15:31
閱讀 2043·2019-08-26 13:43
閱讀 2662·2019-08-26 13:37
閱讀 1511·2019-08-23 18:31