0x00 什麼是InfluxDB
InfluxDB是一個由InfluxData開發的開源時序型數據庫,專一於海量時序數據的高性能讀、高性能寫、高效存儲與實時分析等,在DB-Engines Ranking時序型數據庫排行榜上排名第一,普遍應用於DevOps監控、IoT監控、實時分析等場景。
InfluxDB部署簡單、使用方便,在技術實現上充分利用了Go語言的特性,無需任何外部依賴便可獨立部署。提供相似於SQL的查詢語言,接口友好,使用方便。豐富的聚合運算和採樣能力,提供靈活的數據保存策略(Retention Policy)來設置數據的保留時間和副本數,在保障數據可靠性的同時,及時刪除過時數據,釋放存儲空間,提供靈活的連續查詢(Continues Query)來實現對海量數據的採樣。支持協議種類多,除了HTTP、UDP等原生協議,還兼容CollectD、Graphite、OpenTSDB、Prometheus等組件的通信協議。
強大完整的生態,TICK是一個集成了採集、存儲、分析、可視化等能力的開源時序中臺,由Telegraf、 InfluxDB、Chronograf、Kapacitor 4個組件以一種靈活鬆散組合、但緊密配合互爲補充的方式構成,各個模塊項目配合、互爲補充,專一於DevOps監控、IoT監控、實時分析等場景。
Telegraf是一個用於採集和上報指標的服務器程序,採集當前運行主機的指定指標,如,CPU負載等,經過標準的InfluxDB API上報InfluxDB。
InfluxDB是專一於時序數據場景(如,DevOps監控、IoT監控、實時分析等)的高性能時序型數據庫,支持靈活的自定義保留策略(Retention Policy)和類SQL的操做接口等。
Chronograf是可視化的UI界面層,經過圖形界面暫時InfluxDB中的數據,並支持Kapacitor告警等。
Kapacitor是一個事件處理和告警引擎,支持靈活強大的自定義功能,也支持集成對接第三系統,如,HipChat等。
0x01 InfluxDB的優點
InfluxDB專一於DevOps監控、IoT監控等場景,針對時序存儲、高性能讀寫、實時操做、高可用性而設計的一套軟件,從零設計架構和開發,InfluxDB經過實現高度可擴展的數據接收和存儲引擎,能夠高效地實時收集、存儲、查詢、可視化顯示和執行預約義操做。它經過採樣和數據保留策略,以支持將高價值、高精度數據保存在內存中,將低價值數據保存到磁盤。做爲一套精心設計、架構卓越的專用系統,相比OpenTSDB、MongoDB、Graphite、Cassandra等,InfluxDB的性能優點和成本優點明顯。
InfluxDB的寫性能是OpenTSDB的5倍,存儲效率是OpenTSDB的16.5倍,查詢效率是OpenTSDB的3.65倍。數據庫
InfluxDB的寫性能是MongoDB的2.4倍,存儲效率是MongoDB的20倍,查詢效率是MongoDB的5.7倍。服務器
InfluxDB的寫性能是Graphite的12倍,存儲效率是Graphite的6.3倍,查詢效率是Graphite的9倍。微信
InfluxDB的寫性能是Cassandra的4.5倍,存儲效率是Cassandra的2.1倍,查詢效率是Cassandra的45倍。架構
0x03 InfluxDB的特性
InfluxDB是一種時序數據高效讀寫、壓縮存儲、實時計算能力爲一體的數據庫服務,除了具備成本優點的高性能讀、高性能寫、高存儲率,InfluxDB還具備以下特色:
無系統環境依賴,部署方便。無結構化(SchemaLess)的數據模型,靈活強大。原生HTTP管理接口,免插件配置和免第三方依賴。強大的類SQL查詢語句的操做接口,學習成本低,上手快。豐富的權限管理功能,精細到「表」級別。豐富的時效管理功能,自動刪除過時數據,自定義刪除指標數據。低成本存儲,採樣時序數據,壓縮存儲。豐富的聚合函數,支持AVG、SUM、MAX、MIN等聚合函數。
後記:
歡迎交流討論:
微信公衆號:influxdb-dev。
InfluxDB技術交流羣(QQ):663274123。函數