- InfluxDB原理與實戰
- 韓健
- 888字
- 2020-04-30 17:41:09
1.3 InfluxDB的特性
作為一個開源系統,InfluxDB究竟有什么魅力吸引了如此多的用戶,從而在時序型數據庫DB-Engines Ranking上排名第一呢?
1.3.1 InfluxDB的特點
InfluxDB是支持時序數據高效讀寫、壓縮存儲、實時計算能力的數據庫服務,除了具有成本優勢的高性能讀、高性能寫、高存儲率,InfluxDB還具有如下特點:
?無系統環境依賴,部署方便。
?無模式(schema-less)的數據模型,靈活強大。
?原生HTTP管理接口,免插件配置和免第三方依賴。
?強大的類SQL查詢語句,學習成本低,上手快。
?豐富的權限管理功能:精細到“表”級別。
?豐富的時效管理功能:自動刪除過期數據,自定義刪除指標數據。
?低成本存儲,采樣時序數據,壓縮存儲。
?豐富的聚合函數,支持AVG、SUM、MAX、MIN等聚合函數。
1.3.2 核心概念
InfluxDB實現了類SQL的接口,盡管與傳統關系型數據庫(如MySQL)語法相似,但InfluxDB在語義體系上有些差別,接下來將以一條CPU利用率的時序數據為例介紹相關的核心概念,如代碼清單1-3所示。
代碼清單1-3 一條CPU利率的時序數據
> insert cpu_usage, host=server01, location=cn-sz user=23.0, system=57.0 > select * from cpu_usage name: cpu_usage time host location system user ---- ---- -------- ------ ---- 1557834774258860710 server01 cn-sz 55 25 >
?時間(Time):如代碼清單1-3中的“1557834774258860710”,表示數據生成時的時間戳,與MySQL不同的是,在InfluxDB中,時間幾乎可以看作主鍵的代名詞。
?表(Measurement):如代碼清單1-3中的“cpu_usage”,表示一組有關聯的時序數據,類似于MySQL中表(Table)的概念。
?標簽(Tag):如代碼清單1-3中的“host=server01”和“location=cn-sz”,用于創建索引,提升查詢性能,一般存放的是標示數據點來源的屬性信息,在代碼清單1-3中,host和location分別是表中的兩個標簽鍵,對應的標簽值分別為server01和cn-sz。
?指標(Field):如代碼清單1-3中的“user=23.0”和“system=57.0”,一般存放的是具體的時序數據,即隨著時間戳的變化而變化的數據,與標簽不同的是,未對指標數據創建索引,在代碼清單1-3中,user和system分別是表中的兩個指標鍵,對應的指標值分別為23.0和57.0。
?時序數據記錄(Point):如代碼清單1-3中的“1557834774258860710 server01 cn-sz 55 25”,表示一條具體的時序數據記錄,由時序(Series)和時間戳(Timestamp)唯一標識,類似于MySQL中的一行記錄。
?保留策略(Retention Policy):定義InfluxDB的數據保留時長和數據存儲的副本數,通過設置合理的保存時間(Duration)和副本數(Replication),在提升數據存儲可用性的同時,避免數據爆炸。
?時間序列線(Series):表示表名、保留策略、標簽集都相同的一組數據。
- 在你身邊為你設計Ⅲ:騰訊服務設計思維與實戰
- 程序員修煉之道:從小工到專家
- Python數據分析入門:從數據獲取到可視化
- Python金融大數據分析(第2版)
- 文本挖掘:基于R語言的整潔工具
- 大數據:規劃、實施、運維
- Remote Usability Testing
- 企業級容器云架構開發指南
- 一本書講透Elasticsearch:原理、進階與工程實踐
- Gideros Mobile Game Development
- Scratch 2.0 Game Development HOTSHOT
- Swift Functional Programming(Second Edition)
- 數據挖掘算法實踐與案例詳解
- Delphi High Performance
- 數據庫技術與應用:SQL Server 2008