InfluxDB 简介、安装和简单使用
簡介
InfluxDB是一個由InfluxData開發的開源時序型數據庫。它由Go寫成,著力于高性能地查詢與存儲時序型數據。InfluxDB被廣泛應用于存儲系統的監控數據,IoT行業的實時數據等場景。可以理解為按時間記錄一些數據(常用的監控數據、埋點統計數據等),然后做統計- 與傳統數據庫的概念對比
| database | 數據庫 |
| measurement | 數據庫中的表 |
| points | 表中的一行數據 |
-
Point
Point由時間戳(time)、數據(field)、標簽(tags)組成。
| time | 每個數據記錄時間,是數據庫中的主索引(會自動生成) |
| field | 各種記錄值(沒有索引的屬性) |
| tags | 各種有索引的屬性 |
-
Series
Series 相當于是 InfluxDB 中一些數據的集合。 在同一個 database 中,retention policy、measurement、tag sets 完全相同的數據同屬于一個 series。 同一個 series 的數據在物理上會按照時間順序排列存儲在一起。 -
組件
TSM 存儲引擎主要由幾個部分組成: cache、wal、tsm file、compactor。
Cache:
cache 相當于是 LSM Tree 中的 memtabl。插入數據時,實際上是同時往 cache 與 wal 中寫入數據,可以認為 cache 是 wal 文件中數據在內存中的緩存。當 InfluxDB 啟動時,會遍歷所有的 wal 文件,重新構造 cache,這樣即使系統出現故障,也不會導致數據的丟失。
cache 中的數據并不是無限增長的,有一個 maxSize 參數(默認為 25MB)用于控制當 cache 中的數據占用多少內存后就會將數據寫入 tsm 文件。每當 cache 中的數據達到閥值后,會將當前的 cache 進行一次快照,之后清空當前 cache 中的內容,再創建一個新的 wal 文件用于寫入,剩下的 wal 文件最后會被刪除,快照中的數據會經過排序寫入一個新的 tsm 文件中。
WAL
wal 文件的內容與內存中的 cache 相同,其作用就是為了持久化數據,當系統崩潰后可以通過 wal 文件恢復還沒有寫入到 tsm 文件中的數據。
TSM File
單個 tsm file 大小最大為 2GB,用于存放數據。
Compactor
compactor 組件在后臺持續運行,每隔 1 秒會檢查一次是否有需要壓縮合并的數據。
主要進行兩種操作,一種是 cache 中的數據大小達到閥值后,進行快照,之后轉存到一個新的 tsm 文件中。
另外一種就是合并當前的 tsm 文件,將多個小的 tsm 文件合并成一個,使每一個文件盡量達到單個文件的最大大小,減少文件的數量,并且一些數據的刪除操作也是在這個時候完成。
-
目錄與文件結構
InfluxDB 的數據存儲主要有三個目錄。默認情況下是 meta, wal 以及 data。
meta 用于存儲數據庫的一些元數據,meta 目錄下有一個 meta.db 文件。
wal 目錄存放預寫日志文件。
data 目錄存放實際存儲的數據文件。
安裝及配置
-
環境
ubuntu 20.04
-
安裝
sudo apt install influxdb
sudo apt install influxdb-client
-
查看狀態、啟動、關閉
// 查看狀態 q退出 / 啟動 / 關閉 / 重啟
sudo service influxdb status / start / stop / restart以服務方式啟動 sudo service influxdb start
以非服務方式啟動 sudo influxd
-
查看配置文件
influxd config
官方詳細配置文件
- 進入命令行客戶端
簡單使用
- 數據庫與表的操作
- 增查
- 數據保存策略(Retention Policies)
- 連續查詢(Continuous Queries)
添加用戶認證
- 首先創建一個admin用戶
-
默認情況下,認證在配置文件是禁用的
需要在配置文件里把 [http] 下的 auth-enabled 選項設置為 true 。
-
重啟 influxd
進入influx : influx -username username -password password
總結
以上是生活随笔為你收集整理的InfluxDB 简介、安装和简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: logitray.exe进程是什么文件
- 下一篇: matcli.exe是什么进程 有什么用