在 InfluxDB學習 的上一篇文章:InfluxDB學習之InfluxDB的HTTP API寫入操作 中,我們介紹了使用InfluxDB的HTTP API進行數據寫入操作的過程,本文我們再來介紹下使用InfluxDB的HTTP API進行數據查詢操作的過程。更多InfluxDB詳細教程請看:In ...
在 InfluxDB學習 的上一篇文章:InfluxDB學習之InfluxDB的HTTP API寫入操作 中,我們介紹了使用InfluxDB的HTTP API進行數據寫入操作的過程,本文我們再來介紹下使用InfluxDB的HTTP API進行數據查詢操作的過程。更多InfluxDB詳細教程請看:InfluxDB系列學習教程目錄
InfluxDB技術交流群:580487672(點擊加入)
一、說明
官方文檔上介紹說,使用HTTP API進行查詢是比較初級的一種方式。推薦使用第三方語言庫和客戶端管理程式進行查詢操作。
二、InfluxDB進行HTTP API查詢方法
使用HTTP API在InfluxDB進行查詢主要是發送 GET 請求到 InfluxDB的 /query 端,調用示例如下所示:
curl -GET 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west'"
參數db指定了需查詢的資料庫,q代表了需執行的查詢語句。
在頁面中也提供了生成HTTP 請求URL的方法,如下所示:
在界面上輸入語句後,點擊生成url就會生成http請求URL。
在瀏覽器執行後,會返回json格式的串。
如果查詢出錯的話,則會返回關鍵詞“error”+錯誤信息。
三、InfluxDB進行HTTP API查詢多條數據
我們可能需要用InfluxDB進行多條查詢,HTTP API提供的多條查詢的格式如下所示:
curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west'; SELECT count(value) FROM cpu_load_short WHERE region='us-west'"
格式與單條查詢相同,只是在多條語句之間要用分號“;”分隔。
返回值也是包含結果的json串。
四、InfluxDB HTTP 查詢的格式化輸出
1)規定時間格式
在使用HTTP查詢時可以使用 epoch
參數指定輸出的時間格式。可選值有 epoch=[h,m,s,ms,u,ns]。
例如:
curl -G 'http://localhost:8086/query' --data-urlencode "db=mydb" --data-urlencode "epoch=s" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west'"
這樣會獲取到以秒為單位的時間數據。
2)指定每次查詢數據大小
可以使用 chunk_size
參數來指定每次結果的大小。比如,我要結果每次返回200個點的數據,則如下所示:
curl -G 'http://localhost:8086/query' --data-urlencode "db=mydb" --data-urlencode "chunk_size=200" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west'"
這樣查詢結果就會返回200個點的數據。
好了,有關 InfluxDB 有關HTTP API操作的相關知識就先為大家介紹到這裡,更多有關InfluxDB的內容請看 Linux大學接下來的文章。
更多InfluxDB詳細教程請看:InfluxDB系列學習教程目錄
InfluxDB技術交流群:580487672(點擊加入)