日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

通過(guò)HTTP API寫入數(shù)據(jù)

更新時(shí)間:

有很多方法可以向TSDB For InfluxDB?寫入數(shù)據(jù),包括通過(guò)命令行界面(command line interface)和客戶端(client libraries)。在這一章中,我們將向您展示如何使用內(nèi)嵌的HTTP API寫入數(shù)據(jù)。

說(shuō)明

本章節(jié)中的示例使用了curl,一種通過(guò)URL來(lái)傳輸數(shù)據(jù)的命令行工具。

通過(guò)HTTP API發(fā)送POST請(qǐng)求到/write路徑是數(shù)據(jù)寫入TSDB For InfluxDB?的主要方式。假設(shè)已經(jīng)成功創(chuàng)建好數(shù)據(jù)庫(kù)mydb,現(xiàn)在我們來(lái)探索如何通過(guò)HTTP API將數(shù)據(jù)寫入mydb

單點(diǎn)寫入

下面的例子展示了如何將一個(gè)數(shù)據(jù)點(diǎn)寫入mydb數(shù)據(jù)庫(kù)。其中,該數(shù)據(jù)點(diǎn)的measurement為cpu_load_short,有兩個(gè)tag,tag key分別為hostregion,對(duì)應(yīng)的tag value分別為server01us-west,field key是value,field value是0.64,timestamp是1434055562000000000

curl -i -XPOST 'https://<網(wǎng)絡(luò)地址>:3242/write?db=mydb&u=<賬號(hào)名稱>&p=<密碼>' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'
  • <網(wǎng)絡(luò)地址>是您購(gòu)買的TSDB For InfluxDB?實(shí)例的地址。

  • <賬號(hào)名稱>和<密碼>分別是您設(shè)置的用戶賬號(hào)和密碼。

  • TSDB For InfluxDB?默認(rèn)使用端口3242

  • 數(shù)據(jù)寫入的時(shí)候,需要設(shè)置參數(shù)db的值,該值必須是一個(gè)已有的數(shù)據(jù)庫(kù)。如果您沒(méi)有通過(guò)參數(shù)rp來(lái)設(shè)置數(shù)據(jù)保留策略的話,那么數(shù)據(jù)會(huì)寫到db默認(rèn)的數(shù)據(jù)保留策略中。

想要獲得完整的參數(shù)信息,請(qǐng)參閱文檔HTTP API

我們稱POST的主體內(nèi)容,包含你想要存儲(chǔ)的時(shí)序數(shù)據(jù),為行協(xié)議(Line Protocol),它的組成部分有measurement、tags、fields和timestamp。TSDB For InfluxDB?要求時(shí)序數(shù)據(jù)必須有measurement。嚴(yán)格來(lái)講,tag是可選的,但是大多數(shù)時(shí)序數(shù)據(jù)都會(huì)包含tag,用于區(qū)分?jǐn)?shù)據(jù)的來(lái)源,使查詢變得簡(jiǎn)單和高效。tag key和tag value都必須是字符串。field key也是必須的,并且必須是字符串,field value默認(rèn)的數(shù)據(jù)類型是float。時(shí)間戳放在行的最后,是一個(gè)從UTC 1970年1月1日起到現(xiàn)在的納秒級(jí)的Unix時(shí)間,它是可選的,如果沒(méi)有明確給出時(shí)間戳,TSDB For InfluxDB?會(huì)把服務(wù)器本地的納秒級(jí)的Unix時(shí)間當(dāng)作數(shù)據(jù)點(diǎn)的時(shí)間戳。在TSDB For InfluxDB?中,任何時(shí)間戳都是UTC時(shí)間(協(xié)調(diào)世界時(shí))。

多點(diǎn)寫入

通過(guò)用換行符來(lái)分隔多個(gè)數(shù)據(jù)點(diǎn),可以將它們同時(shí)發(fā)送到多個(gè)時(shí)間序列,這種批量發(fā)送的方式可以獲得更高的性能。

下面的例子展示了將3個(gè)數(shù)據(jù)點(diǎn)寫入數(shù)據(jù)庫(kù)mydb

  • 第一個(gè)點(diǎn)屬于measurement為cpu_load_short、tag為host=server0的時(shí)間序列,timestamp是服務(wù)器本地的時(shí)間戳。

  • 第二個(gè)點(diǎn)屬于measurement為cpu_load_short、tag為host=server02,region=us-west的時(shí)間序列,有明確的時(shí)間戳,timestamp為142256854370290025

  • 第三個(gè)點(diǎn)跟第二個(gè)點(diǎn)的時(shí)間戳一樣,但是該數(shù)據(jù)點(diǎn)屬于measurement為cpu_load_short、tag為direction=in,host=server01,region=us-west的時(shí)間序列。

curl -i -XPOST 'https://<網(wǎng)絡(luò)地址>:3242/write?db=mydb&u=<賬號(hào)名稱>&p=<密碼>' --data-binary 'cpu_load_short,host=server02 value=0.67
cpu_load_short,host=server02,region=us-west value=0.55 1422568543702900257
cpu_load_short,direction=in,host=server01,region=us-west value=2.0 1422568543702900257'

文件寫入

curl通過(guò)@filename的方式,將文件中的數(shù)據(jù)點(diǎn)寫入TSDB For InfluxDB?。文件中的數(shù)據(jù)需要滿足行協(xié)議的語(yǔ)法。

以下是格式正確的文件(cpu_data.txt)的一個(gè)示例:

cpu_load_short,host=server02 value=0.67
cpu_load_short,host=server02,region=us-west value=0.55 1422568543702900257
cpu_load_short,direction=in,host=server01,region=us-west value=2.0 1422568543702900257

通過(guò)以下命令將文件cpu_data.txt里的數(shù)據(jù)寫入數(shù)據(jù)庫(kù)mydb

curl -i -XPOST 'https://<網(wǎng)絡(luò)地址>:3242/write?db=mydb&u=<賬號(hào)名稱>&p=<密碼>' --data-binary @cpu_data.txt
說(shuō)明

如果您的一個(gè)文件中有超過(guò)5000個(gè)數(shù)據(jù)點(diǎn),建議將該文件拆分成多個(gè)文件,以便將數(shù)據(jù)批量寫進(jìn)TSDB For InfluxDB?,因?yàn)镠TTP請(qǐng)求默認(rèn)在5秒后超時(shí),雖然寫入請(qǐng)求超時(shí)后,TSDB For InfluxDB?依舊會(huì)嘗試將這些數(shù)據(jù)點(diǎn)寫入數(shù)據(jù)庫(kù),但是并不保障數(shù)據(jù)一定會(huì)寫入成功。

Schemaless(無(wú)模式)的設(shè)計(jì)

TSDB For InfluxDB?是一個(gè)Schemaless的數(shù)據(jù)庫(kù)。您可以在任意時(shí)間添加新的measurement、tags和fields。

注意

如果您嘗試寫入跟之前類型不同的數(shù)據(jù)(例如,field原來(lái)接收的是整型數(shù)據(jù),現(xiàn)在卻寫了一個(gè)字符串進(jìn)去),TSDB For InfluxDB?會(huì)拒絕這些數(shù)據(jù)。

關(guān)于REST的說(shuō)明

TSDB For InfluxDB?使用HTTP作為方便且廣泛支持的數(shù)據(jù)傳輸協(xié)議。

現(xiàn)代Web的API都基于REST的設(shè)計(jì),因?yàn)樗鉀Q了一個(gè)共同的需求。隨著終端數(shù)量的增加,對(duì)組織系統(tǒng)的需求變得越來(lái)越迫切。REST是一個(gè)工業(yè)界認(rèn)定的用來(lái)組織大量終端的標(biāo)準(zhǔn)。這種一致性對(duì)于API的開(kāi)發(fā)者和消費(fèi)者都有好處:每個(gè)參與者都知道期望的是什么。

然而,REST只是一個(gè)慣例。TSDB For InfluxDB?是一個(gè)簡(jiǎn)單、易懂的系統(tǒng),只提供三個(gè)API端點(diǎn),使用HTTP作為InfluxQL的傳輸方法。所以TSDB For InfluxDB? API并不試圖完全符合RESTful的標(biāo)準(zhǔn)。

HTTP返回值概要

  • 2xx:如果您發(fā)送寫請(qǐng)求后返回信息HTTP 204 No Content,說(shuō)明數(shù)據(jù)成功寫入TSDB For InfluxDB?了!

  • 4xx:表示TSDB For InfluxDB?不知道您發(fā)的是什么請(qǐng)求。

  • 5xx:系統(tǒng)過(guò)載或著嚴(yán)重受損。

下面舉幾個(gè)返回錯(cuò)誤的例子:

  • field value原來(lái)是布爾類型的,現(xiàn)在寫入浮點(diǎn)數(shù):

curl -i -XPOST 'https://<網(wǎng)絡(luò)地址>:3242/write?db=<數(shù)據(jù)庫(kù)名稱>&u=<賬號(hào)名稱>&p=<密碼>' --data-binary 'tobeornottobe booleanonly=true'

curl -i -XPOST 'https://<網(wǎng)絡(luò)地址>:3242/write?db=<數(shù)據(jù)庫(kù)名稱>&u=<賬號(hào)名稱>&p=<密碼>' --data-binary 'tobeornottobe booleanonly=5'

系統(tǒng)會(huì)返回:

HTTP/1.1 400 Bad Request
Content-Type: application/json
Request-Id: [...]
X-Influxdb-Version: 1.7.x
Date: Wed, 01 Mar 2017 19:38:01 GMT
Content-Length: 150

{"error":"field type conflict: input field \"booleanonly\" on measurement \"tobeornottobe\" is type float, already exists as type boolean dropped=1"}
  • 將數(shù)據(jù)寫入到一個(gè)不存在的數(shù)據(jù)庫(kù):

curl -i -XPOST 'https://<網(wǎng)絡(luò)地址>:3242/write?db=atlantis&u=<賬號(hào)名稱>&p=<密碼>' --data-binary 'liters value=10'

系統(tǒng)會(huì)返回:

HTTP/1.1 404 Not Found
Content-Type: application/json
Request-Id: [...]
X-Influxdb-Version: 1.7.x
Date: Wed, 01 Mar 2017 19:38:35 GMT
Content-Length: 45

{"error":"database not found: \"atlantis\""}

后續(xù)任務(wù)

現(xiàn)在您已經(jīng)知道了如何使用TSDB For InfluxDB?內(nèi)置的HTTP API來(lái)寫入數(shù)據(jù),下一步,我們將在文檔通過(guò)HTTP API查詢數(shù)據(jù)中學(xué)習(xí)如何將數(shù)據(jù)讀出來(lái)。若想獲取更多關(guān)于如何使用HTTP API寫入數(shù)據(jù)的信息,請(qǐng)查閱文檔HTTP API

InfluxDB? is a trademark registered by InfluxData, which is not affiliated with, and does not endorse, TSDB for InfluxDB?.