influxdb是一款流行的時序資料庫應用,與prometheus最大的不同在於,influxdb採用推模型,即記錄方通過呼叫influxdb介面,將資料儲存到influxdb資料庫中。prometheus則是由自身不斷抓取記錄方的匯出資料。influxdb的查詢語句與sql類似,簡單易上手,prometheus的查詢語法promql學習曲線較為陡峭。這次主要學習了influxdb,記錄一下相關的知識點。
以一條資料插入語句為例:
insert 10d api,host=10.0.10.182,url=/user/get duration=20
insert後面依次接retention policy(可選),measurement、tag和field,measurement和tag用逗號隔開,tag之間也用逗號相隔,tag和field用空格相隔。如果插入語句沒有指定時間戳,influxdb將自動補充乙個時間戳字段。
measurement就是資料表,對應mysql中的table。tag是索引列,tag值都為string,field為沒有加索引的列,field的值型別可為int、float、string、boolean。當插入的field值為string時,需要加引號。
當採用apt方式安裝influxdb時,influxdb的配置檔案儲存在/etc/influxdb/influxdb.conf。
需要使自定義配置檔案生效時,可以指定對應配置檔案的路徑以啟動influxdb:
influxd -config /etc/influxdb/influxdb.conf
除了cli command外,influxdb也提供了查詢、編輯、寫入等操作的http api(官方文件:
)。基本格式如下:
curl -xpost http://localhost:8086/query?db=api_sum --data-urlencode "q=select * from api where time >= '2020-09-06t00:00:00z' tz(asia/shanghai)"
查詢引數
引數名必選
描述chunked=[true|number_of_ponits]
否返回的資料是否分塊,如果設定為true,influxdb將預設10000個資料點作為乙個分塊返回
db=依賴於資料庫的查詢語句必選,如select和show
指定influxdb資料庫
epoch=[ns,u,µ,ms,s,m,h]
否指定返回時間戳的精度,預設返回納秒精度的rfc3339時間,注意u,µ都是微秒
p=開啟認證的情況下必傳
指定使用者密碼
u=開啟認證的情況下必傳
指定使用者名稱
pretty=true
否返回結果以易於列印的json格式返回,該選項會產生額外的網路頻寬開銷,不推薦在生產環境使用q=是
influxdb執行語句
InfluxDB簡單學習
influxdb用go語言編寫的乙個開源分布式時序 事件和指標資料庫,和傳統是資料庫相比有不少不同的地方。類似的資料庫有elasticsearch graphite等。提供了http介面的api來運算元據 提供了類似sql的資料庫語句 其中,point由時間戳 time 資料 field 標籤 ta...
InfluxDB學習筆記
時序資料庫模型 temperature相當於關係型資料庫的表名 後面是保持key value的屬性 空格分開後面是真正的值與時間戳 最高精度到納秒 它是一種支援多值模型的資料庫 定義在database空間下 資料清理以分片為單位 autogen預設保留策略 系統預設分片時長取決於資料保留時間 筆記 ...
influxdb 備份與恢復 記錄
備份資料庫操作 備份元資料 influxd backup home environ backup 備份資料庫 influxd backup database environ home environ backup 恢復資料庫 1.停止服務 執行 service influxdb stop 2.進入元...