InfluxDB是用Go編寫的一個開源分佈式時序、事件和指標數據庫,無需外部依賴。它與Elasticsearch、Graphite等相似。比較適用於與事件緊密相關的數據,例如實時日誌數據、實時監控數據等,詳細信息能夠自行網上搜索。html
基本信息:linux
InfluxDB支持三種方式的通訊方式:web
下面演示採用InfluxDB客戶端命令行方式。數據庫
在windows系統中使用InfluxDB客戶端命令行鏈接數據庫,並進行認證:
編程
注意,本地必須存在influxdb的一套指令程序,包括下面幾個:
windows
其中db_name表示具體的數據庫名。
實際操做以下:服務器
InfluxDB中的measurement相似於關係數據庫中的數據表,後文中所有稱其爲數據表。編程語言
其中,measurement_name表明具體的表名。在插入數據時有特定的格式要求,例如:分佈式
insert server_info,server_name=server1 cpu=intel,ram_capacity=64 timestamp
其中,從左到右依次爲表名、逗號、tags<key-value,可多個>、空格、fields<key-value,可多個>、空格、timestamp,其中多個tags之間使用逗號分隔,多個fields之間使用逗號分隔。測試
假設數據表格式以下面語句所示:
insert server_info,server_name=server1 cpu=intel,ram_capacity=64 timestamp
由上圖結果可知,在插入數據時,能夠不指定timestamp,此時數據庫會自動添加。
查詢數據使用SQL語句實現,同關係型數據庫的查詢方式幾乎相同。如上圖中所示。
因爲InfluxDB是時序數據庫,因此未提供修改和刪除數據的操做。不過,數據刪除能夠經過數據保存策略(Retention Policies)來自動實現。
series表示數據表中特定tags對應的數據,好比上面的表server_info,該表中保存了多個服務器的數據,不一樣服務器經過tags中的server_name不一樣值來表示,假如如今表中數據以下:
則此時series則表示不一樣服務器的cpu、ram_capacity隨時間變化的一系列值。
其中,帳號支持兩種書寫方式:英文雙引號括起來、直接帳號字符串,而密碼則必須以英文單引號括起來,不然會出錯。