InfluxDB是一個開源的時序數據庫,使用GO語言開發,特別適合用於處理和分析資源監控數據這種時序相關數據。而InfluxDB自帶的各種特殊函數如求標準差,隨機取樣數據,統計數據變化比等,使數據統計和實時分析變得十分方便。
安裝
- 數據庫安裝
根據不同的系統安裝方式不太一樣, 具體參考官網, 這個官網提供的挺詳細的。
如果有指定版本的requests, 注意一下requests版本, influxdb不支持舊版的requests庫, 版本不支持安裝時會有提示。
-
Python安裝操作庫
python3 -m pip install influxdb pip install --upgrade influxdb # 升級 pip uninstall influxdb # 卸載
使用準備
-
操作準備
需要先創建數據庫,可以使用命令行進行創建create database database_name;
也可以使用python命令直接創建
from influxdb import InfluxDBClient
# 首先連接influxdb
client = InfluxDBClient(host='服務器IP', port=8086, username='myuser', password='mypass' ssl=True, verify_ssl=True)
# 創建數據庫
client.create_database('database_name')
# 查詢數據庫
client.get_list_database()
操作
-
連接數據庫
from influxdb import InfluxDBClient client = InfluxDBClient('服務器IP', '8086', 'myuser', 'mypass', 'database_name')
- 寫入數據
InfluxDB的每條數據可以看成一個json數據(其實寫入的時候就是個json數據),每條數據中包含了'measurement','time','tags','fields'
屬性 | 含義 |
---|---|
measurement | 相當於數據庫中的表 |
time | 數據的記錄時間,是數據的主索引 |
tags | 一個有索引的值 |
fields | 沒有索引的值 |
w_json = [{
"measurement": 'table_name',
"time": now_time,
"tags": {
'name': '名字',
'categories': '類型'
},
"fields": {
'price': "價格",
'unit': "單位",
}
}]
寫入數據庫
client.write_points(w_json)