InfluxDB是一個由InfluxData頁面存檔備份,存於網際網路檔案館)開發的開源時序型資料庫[note 1]。它最早由Go寫成,後來切換成用Rust編寫,著力於高性能地查詢與存儲時序型數據。InfluxDB被廣泛應用於存儲系統的監控數據,IoT行業的實時數據等場景。

InfluxDB
開發者InfluxData
首次發布2013年9月24日 (2013-09-24)
當前版本1.7.3(2019年1月13日,​5年前​(2019-01-13
程式語言Rust
作業系統跨平台
類型時序型資料庫
許可協議MIT許可證
網站influxdata.com/time-series-platform/influxdb/

歷史

Errplane公司[1]在2013年下半年開始以開源項目的形式開始了InfluxDB的開發。其目的是為了提供一個高性能的監控以及告警的解決方案。在2014年11月,Errplane獲得了由梅菲爾德風險投資公司英語Mayfield FundTrinity Ventures領投的A輪投資,金額高達810萬美元[2]。在次年的2015年,Errplane正式更名為InfluxData Inc.,而更名後的InfluxData又分別於2016年9月,2018年2月獲得了金額高達1600萬美元和3500萬美元的B輪英語Venture round#Round names,C輪投資。[3] 2019年2月,InfluxData, Inc.完成 Norwest Venture Partners 領投的6000萬美元D輪融資,Battery Ventures、Sapphire Ventures、Mayfield Fund、Trinity Ventures等跟投。[4]

技術概覽

  • InfluxDB在技術實現上充分利用了Go語言的特性,無需任何外部依賴即可獨立部署[5]
  • InfluxDB提供了一個類似於SQL的查詢語言並且一系列內置函數方便用戶進行數據查詢。
  • InfluxDB存儲的數據從邏輯上由 Measurement, tag組以及 field組以及一個時間戳組成的:
    • Measurement: 由一個字符串表示該條記錄對應的含義。比如它可以是監控數據"cpu_load",也可以是測量數據"average_temperature"
    • tag組: 由一組鍵值對組成,表示的是該條記錄的一系列屬性信息。同樣的measurement數據所擁有的tag組不一定相同,它是無模式的(Schema-free)。tag信息是默認被索引的。
    • field組:也是由一組鍵值對組成,表示的是該條記錄具體的value信息(有名稱)。field組中可定義的value類型包括:64位整型,64位浮點型,字符串以及布爾型。Field信息是無法被索引的。
    • 時間戳:就是該條記錄的時間屬性。如果插入數據時沒有明確指定時間戳,則默認存儲在資料庫中的時間戳則為該條記錄的入庫時間。
  • InfluxDB支持基於HTTP的數據插入與查詢。同時也接受直接基於TCP或UDP協議的連接.比如下面的示例就顯示了一個基於HTTP協議的POST請求的數據插入操作:
$curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'
  • InfluxDB允許用戶定義數據保存策略(Retention Policies)來實現對存儲超過指定時間的數據進行刪除[note 2]或者降採樣

閉源的集群組件

在向InfluxDB開源社區貢獻了一個名為InfluxDB-Relay[note 3]高可用套件後。2016年3月,InfluxData宣布他們會將用於支撐InfluxDB集群水平擴展的組件作為閉源產品單獨銷售,從而為InfluxDB的持續開發建立一個穩定的收入來源[6]

附註

  1. ^ InfluxDB的代碼託管於Github。請參見: https://github.com/influxdata/influxdb頁面存檔備份,存於網際網路檔案館
  2. ^ 作為時序型資料庫,InfluxDB不提供用戶直接刪除或更新數據的途徑
  3. ^ Influx-relay的代碼也託管於Github. 請參見:https://github.com/influxdata/influxdb-relay頁面存檔備份,存於網際網路檔案館

參考資料

  1. ^ Lardinois, Frederic. Y Combinator-Backed Errplane Launches Comprehensive Performance Monitoring And Alert Service For Web Apps. TechCrunch. [2016-09-07]. (原始內容存檔於2019-10-17). 
  2. ^ Miller, Ron. Errplane Snags $8.1M To Continue Building Open Source InfluxDB Time Series Database. TechCrunch. [2016-09-07]. (原始內容存檔於2019-10-17). 
  3. ^ Mannes, John. InfluxData closes $16 million Series B led by Battery Ventures to organize IOT data. TechCrunch. [2016-10-13]. (原始內容存檔於2020-11-24). 
  4. ^ 开源时间序列数据库InfluxDB开发商:InfluxData, Inc.. mg21.com. 2021-08-08 [2021-08-08]. (原始內容存檔於2021-08-14). 
  5. ^ Michael Duffy. DevOps Automation Cookbook. Packt Publishing. 26 November 2015: 176–. ISBN 978-1-78439-839-2. 
  6. ^ Update on InfluxDB Clustering, High-Availability and Monetization. GitHub. influxdata. 2016-03-10 [2016-08-08]. (原始內容存檔於2020-11-11).