【InfluxDB】InfluxDB學習實踐筆記

 

InfluxDB是用Go編寫的一個開源分佈式時序、事件和指標數據庫,無需外部依賴。它與Elasticsearch、Graphite等相似。比較適用於與事件緊密相關的數據,例如實時日誌數據、實時監控數據等,詳細信息能夠自行網上搜索。html

0x00 環境信息

基本信息:linux

  • 系統:CentOS7.2
  • IP地址:xx.xx.xx.xx
  • 端口號:30040
  • 運行環境:K8S測試集羣中
  • InfluxDB版本:1.5.1(該版本再也不提供web界面)
  • InfluxDB用戶名:admin
  • InfluxDB密碼:admin

0x01 基本操做

InfluxDB支持三種方式的通訊方式:web

  • InfluxDB客戶端命令行
  • HTTP API
  • 各編程語言庫

下面演示採用InfluxDB客戶端命令行方式。數據庫

一、鏈接、認證

在windows系統中使用InfluxDB客戶端命令行鏈接數據庫,並進行認證:
編程

注意,本地必須存在influxdb的一套指令程序,包括下面幾個:
windows

二、數據庫操做

  • show databases 查看數據庫
  • create database db_name 建立數據庫
  • drop database db_name 刪除數據庫
  • use db_name 選擇數據庫

其中db_name表示具體的數據庫名。
實際操做以下:服務器

三、measurement操做

InfluxDB中的measurement相似於關係數據庫中的數據表,後文中所有稱其爲數據表。編程語言

  • show measurements 查看錶
  • insert measurement_name,tags fields timestamp 由於沒有顯示的建立表語句,因此經過向表中插入數據來建立表
  • drop measurement measurement_name 刪除表

其中,measurement_name表明具體的表名。在插入數據時有特定的格式要求,例如:分佈式

insert server_info,server_name=server1 cpu=intel,ram_capacity=64 timestamp

其中,從左到右依次爲表名、逗號、tags<key-value,可多個>、空格、fields<key-value,可多個>、空格、timestamp,其中多個tags之間使用逗號分隔,多個fields之間使用逗號分隔。測試

四、數據操做(增刪改查)

(1)新增數據

假設數據表格式以下面語句所示:

insert server_info,server_name=server1 cpu=intel,ram_capacity=64 timestamp

由上圖結果可知,在插入數據時,能夠不指定timestamp,此時數據庫會自動添加。

(2)查詢數據

查詢數據使用SQL語句實現,同關係型數據庫的查詢方式幾乎相同。如上圖中所示。

(3)修改和刪除數據

因爲InfluxDB是時序數據庫,因此未提供修改和刪除數據的操做。不過,數據刪除能夠經過數據保存策略(Retention Policies)來自動實現。

五、series操做

series表示數據表中特定tags對應的數據,好比上面的表server_info,該表中保存了多個服務器的數據,不一樣服務器經過tags中的server_name不一樣值來表示,假如如今表中數據以下:

則此時series則表示不一樣服務器的cpu、ram_capacity隨時間變化的一系列值。

六、帳號管理

  • 查看帳號:show users
  • 建立普通帳號:create user 「username」/username with password ‘password’,貌似建立的普通帳號並無什麼數據庫操做權限
  • 建立管理和帳號:create user 「username」/username with password ‘password’ with all privileges
  • 刪除帳號:drop user 「username」/username
  • 設置帳號密碼:set password for username=’password’

其中,帳號支持兩種書寫方式:英文雙引號括起來、直接帳號字符串,而密碼則必須以英文單引號括起來,不然會出錯。

0x02 參考連接

相關文章
相關標籤/搜索