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

HTTP API

更新時(shí)間:

TSDB For InfluxDB?提供了一種與數(shù)據(jù)庫(kù)進(jìn)行交互的簡(jiǎn)易方法,它使用了HTTP響應(yīng)碼、HTTP認(rèn)證、JWT令牌和基本(basic)認(rèn)證,并以JSON格式返回結(jié)果。

以下章節(jié)假設(shè)TSDB For InfluxDB?實(shí)例運(yùn)行在<網(wǎng)絡(luò)地址>上,端口為3242,并且開(kāi)啟HTTPS。

TSDB For InfluxDB? HTTP路徑(endpoint)

路徑

描述

/ping

使用/ping檢查T(mén)SDB For InfluxDB?實(shí)例的狀態(tài)和TSDB For InfluxDB?的版本

/query

使用/query查詢數(shù)據(jù)和管理數(shù)據(jù)庫(kù)、保留策略和用戶

/write

使用/write將數(shù)據(jù)寫(xiě)入到一個(gè)已經(jīng)存在的數(shù)據(jù)庫(kù)

/ping HTTP路徑

/ping路徑接受GETHEAD的HTTP請(qǐng)求。使用這個(gè)路徑,檢查T(mén)SDB For InfluxDB?實(shí)例的狀態(tài)和TSDB For InfluxDB?的版本。

定義

GET https://<網(wǎng)絡(luò)地址>:3242/ping?u=<賬號(hào)名稱>&p=<密碼>
HEAD https://<網(wǎng)絡(luò)地址>:3242/ping?u=<賬號(hào)名稱>&p=<密碼>

選項(xiàng)verbose

默認(rèn)情況下,/ping HTTP路徑返回一個(gè)簡(jiǎn)單的HTTP 204狀態(tài),讓客戶端知道服務(wù)器正在運(yùn)行。verbose的默認(rèn)值是false。當(dāng)verbose設(shè)置為true時(shí)(/ping?verbose=true),返回HTTP 200狀態(tài)。

示例

您可以使用/ping路徑查看TSDB For InfluxDB?實(shí)例的版本(version)。頭部字段X-Influxdb-Version顯示了TSDB For InfluxDB?的版本。

~ curl -sl -I https://<網(wǎng)絡(luò)地址>:3242/ping?u=<賬號(hào)名稱>&p=<密碼>

HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: 9c353b0e-aadc-11e8-8023-000000000000
X-Influxdb-Build: OSS
X-Influxdb-Version: v1.7.x
X-Request-Id: 9c353b0e-aadc-11e8-8023-000000000000
Date: Tue, 05 Nov 2018 16:08:32 GMT

狀態(tài)碼和響應(yīng)

響應(yīng)的正文是空的。

HTTP狀態(tài)碼

描述

204

成功!TSDB For InfluxDB?實(shí)例已經(jīng)啟動(dòng)并正在運(yùn)行

/query HTTP路徑

/query路徑接受GETPOST的HTTP請(qǐng)求。使用這個(gè)路徑,查詢數(shù)據(jù)和管理數(shù)據(jù)庫(kù)、保留策略和用戶。

定義

GET https://<網(wǎng)絡(luò)地址>:3242/query?u=<賬號(hào)名稱>&p=<密碼>
POST https://<網(wǎng)絡(luò)地址>:3242/query?u=<賬號(hào)名稱>&p=<密碼>

動(dòng)詞用法(Verb usage)

動(dòng)詞(Verb)

查詢類型

GET

用于以如下關(guān)鍵字開(kāi)頭的所有查詢: SELECT SHOW

POST

用于以如下關(guān)鍵字開(kāi)頭的所有查詢: ALTER CREATE DELETE DROP GRANT KILL REVOKE

* 唯一的例外是包含INTO子句的SELECT查詢,這些查詢需要使用POST請(qǐng)求。

示例

使用SELECT語(yǔ)句查詢數(shù)據(jù)

$ curl -G 'https://<網(wǎng)絡(luò)地址>:3242/query?db=mydb&u=<賬號(hào)名稱>&p=<密碼>' --data-urlencode 'q=SELECT * FROM "mymeas"'

{"results":[{"statement_id":0,"series":[{"name":"mymeas","columns":["time","myfield","mytag1","mytag2"],"values":[["2017-03-01T00:16:18Z",33.1,null,null],["2017-03-01T00:17:18Z",12.4,"12","14"]]}]}]}

measurement mymeas中有兩個(gè)數(shù)據(jù)點(diǎn)。在第一個(gè)數(shù)據(jù)點(diǎn)中,時(shí)間戳是2017-03-01T00:16:18Z,field key myfield的值是33.1,tag key mytag1mytag2沒(méi)有tag value。在第二個(gè)數(shù)據(jù)點(diǎn)中,時(shí)間戳是2017-03-01T00:17:18Z,field key myfield的值是12.4,tag key mytag1mytag2的值分別為1214

相同的查詢?cè)赥SDB For InfluxDB?的命令行界面中則返回:

name: mymeas
time                  myfield  mytag1  mytag2
----                  -------  ------  ------
2017-03-01T00:16:18Z  33.1
2017-03-01T00:17:18Z  12.4     12      14

使用SELECT語(yǔ)句和INTO子句查詢數(shù)據(jù)

$ curl -XPOST 'https://<網(wǎng)絡(luò)地址>:3242/query?db=mydb&u=<賬號(hào)名稱>&p=<密碼>' --data-urlencode 'q=SELECT * INTO "newmeas" FROM "mymeas"'

{"results":[{"statement_id":0,"series":[{"name":"result","columns":["time","written"],"values":[["1970-01-01T00:00:00Z",2]]}]}]}

包含INTO子句的SELECT查詢需要使用POST請(qǐng)求。

返回結(jié)果顯示,TSDB For InfluxDB?寫(xiě)入兩個(gè)數(shù)據(jù)點(diǎn)到measurement newmeas。請(qǐng)注意,系統(tǒng)使用epoch 01970-01-01T00:00:00Z)作為空時(shí)間戳。

字符串類型的查詢參數(shù)

字符串類型的查詢參數(shù)

可選/必需

描述

chunked=[true, number_of_points]

可選。

批量流式地返回?cái)?shù)據(jù)點(diǎn),而不是將所有數(shù)據(jù)一次性返回。如果設(shè)置為true,TSDB For InfluxDB?按序列或按10,000個(gè)數(shù)據(jù)點(diǎn)(哪個(gè)條件最先滿足就以哪個(gè)條件來(lái)分塊)分批返回結(jié)果。如果設(shè)置為一個(gè)特定的值,TSDB For InfluxDB?按序列或按指定數(shù)量的數(shù)據(jù)點(diǎn)分批返回結(jié)果。

db=database_name

對(duì)依賴數(shù)據(jù)庫(kù)的查詢是必需的(大多數(shù)SELECT查詢和SHOW查詢需要此參數(shù))。

設(shè)置查詢的目標(biāo)數(shù)據(jù)庫(kù)

epoch=[ns,u,μ,ms,s,m,h]

可選。

返回具有特定精度的epoch時(shí)間戳。TSDB For InfluxDB?默認(rèn)返回RFC3339格式的時(shí)間戳,精度為納秒。uμ都表示微秒。

p=password

如果沒(méi)有開(kāi)啟認(rèn)證,這是可選的。開(kāi)啟認(rèn)證后,這是必需的。

如果開(kāi)啟了認(rèn)證,請(qǐng)?jiān)O(shè)置用于認(rèn)證的密碼。需要與參數(shù)u同時(shí)使用。

pretty=true

可選。

開(kāi)啟JSON輸出的美觀打印(pretty-printed)。雖然它在調(diào)試的時(shí)候非常有用,但是不建議用于生產(chǎn),因?yàn)樗鼤?huì)消耗不必要的網(wǎng)絡(luò)帶寬。

q=query

必需。

需要執(zhí)行的InfluxQL命令。

u=username

如果沒(méi)有開(kāi)啟認(rèn)證,這是可選的。開(kāi)啟認(rèn)證后,這是必需的。

如果開(kāi)啟了認(rèn)證,請(qǐng)?jiān)O(shè)置用于認(rèn)證的用戶名。用戶必須具有讀數(shù)據(jù)庫(kù)的權(quán)限。需要與參數(shù)p同時(shí)使用。

* 如果沒(méi)有使用參數(shù)chunked,TSDB For InfluxDB?不會(huì)截?cái)嗾?qǐng)求返回的行數(shù)。

示例

使用SELECT語(yǔ)句查詢數(shù)據(jù)并返回美觀打印的JSON

$ curl -G 'https://<網(wǎng)絡(luò)地址>:3242/query?db=mydb&pretty=true&u=<賬號(hào)名稱>&p=<密碼>' --data-urlencode 'q=SELECT * FROM "mymeas"'

{
    "results": [
        {
            "statement_id": 0,
            "series": [
                {
                    "name": "mymeas",
                    "columns": [
                        "time",
                        "myfield",
                        "mytag1",
                        "mytag2"
                    ],
                    "values": [
                        [
                            "2017-03-01T00:16:18Z",
                            33.1,
                            null,
                            null
                        ],
                        [
                            "2017-03-01T00:17:18Z",
                            12.4,
                            "12",
                            "14"
                        ]
                    ]
                }
            ]
        }
    ]
}

使用SELECT語(yǔ)句查詢數(shù)據(jù)并返回除納秒外其它精度的epoch時(shí)間戳

$ curl -G 'https://<網(wǎng)絡(luò)地址>:3242/query?db=mydb&epoch=s&u=<賬號(hào)名稱>&p=<密碼>' --data-urlencode 'q=SELECT * FROM "mymeas"'

{"results":[{"statement_id":0,"series":[{"name":"mymeas","columns":["time","myfield","mytag1","mytag2"],"values":[[1488327378,33.1,null,null],[1488327438,12.4,"12","14"]]}]}]}

Request body

--data-urlencode "q=<InfluxQL query>"

所有查詢都必須進(jìn)行URL編碼,并遵循InfluxQL語(yǔ)法。本頁(yè)面的所有示例都使用了curl,在curl命令中使用參數(shù)--data-urlencode

選項(xiàng)(options)

請(qǐng)求多個(gè)查詢

用分號(hào)(;)將多個(gè)查詢隔開(kāi)。

發(fā)送文件中的查詢

API支持使用multipart POST請(qǐng)求發(fā)送文件中的查詢。文件中的多個(gè)查詢必須用分號(hào)隔開(kāi)。

語(yǔ)法:

curl -F "q=@<path_to_file>" -F "async=true" https://<網(wǎng)絡(luò)地址>:3242/query?u=<賬號(hào)名稱>&p=<密碼>

請(qǐng)求返回CSV格式的查詢結(jié)果

語(yǔ)法:

curl -H "Accept: application/csv" -G 'https://<網(wǎng)絡(luò)地址>:3242/query?u=<賬號(hào)名稱>&p=<密碼>' [...]

請(qǐng)注意,當(dāng)請(qǐng)求中包含-H Accept: application/csv,系統(tǒng)將返回epoch格式的時(shí)間戳,而不是RFC3339格式。

綁定參數(shù)

API支持將參數(shù)綁定到WHERE子句中特定的field value或tag value。使用語(yǔ)法$<placeholder_key>作為查詢中的占位符(placeholder),并且URL會(huì)對(duì)request body中的placeholder key和placeholder value的映射(Map)進(jìn)行編碼:

查詢語(yǔ)法:

--data-urlencode 'q= SELECT [...] WHERE [ <field_key> | <tag_key> ] = $<placeholder_key>'

映射語(yǔ)法:

--data-urlencode 'params={"<placeholder_key>":[ <placeholder_float_field_value> | <placeholder_integer_field_value> | "<placeholder_string_field_value>" | <placeholder_boolean_field_value> | "<placeholder_tag_value>" ]}'

使用逗號(hào)(,)將多個(gè)placeholder key-value pair隔開(kāi)。

示例

請(qǐng)求多個(gè)查詢

$ curl -G 'https://<網(wǎng)絡(luò)地址>:3242/query?db=mydb&epoch=s&u=<賬號(hào)名稱>&p=<密碼>' --data-urlencode 'q=SELECT * FROM "mymeas";SELECT mean("myfield") FROM "mymeas"'

{"results":[{"statement_id":0,"series":[{"name":"mymeas","columns":["time","myfield","mytag1","mytag2"],"values":[[1488327378,33.1,null,null],[1488327438,12.4,"12","14"]]}]},{"statement_id":1,"series":[{"name":"mymeas","columns":["time","mean"],"values":[[0,22.75]]}]}]}

該請(qǐng)求包含兩個(gè)查詢:SELECT * FROM "mymeas"SELECT mean("myfield") FROM "mymeas"。從結(jié)果中我們可以看到,系統(tǒng)為每個(gè)返回的查詢分配一個(gè)statement標(biāo)識(shí)符:statement_id。第一個(gè)查詢返回的結(jié)果對(duì)應(yīng)的statement_id是0,第二個(gè)查詢返回的結(jié)果對(duì)應(yīng)的statement_id是1。

請(qǐng)求返回CSV格式的查詢結(jié)果

$ curl -H "Accept: application/csv" -G 'https://<網(wǎng)絡(luò)地址>:3242/query?db=mydb&u=<賬號(hào)名稱>&p=<密碼>' --data-urlencode 'q=SELECT * FROM "mymeas"'

name,tags,time,myfield,mytag1,mytag2
mymeas,,1488327378000000000,33.1,mytag1,mytag2
mymeas,,1488327438000000000,12.4,12,14

第一個(gè)數(shù)據(jù)點(diǎn)的兩個(gè)tag key mytag1mytag2都沒(méi)有tag value。

發(fā)送文件中的查詢語(yǔ)句

$ curl -F "q=@queries.txt" -F "async=true" 'https://<網(wǎng)絡(luò)地址>:3242/query?u=<賬號(hào)名稱>&p=<密碼>'

其中,文件queries.txt中的查詢?nèi)缦拢?/p>

SELECT * FROM "mymeas";
SELECT mean("myfield") FROM "mymeas";

將WHERE子句中的參數(shù)綁定到指定的tag value

$ curl -G 'https://<網(wǎng)絡(luò)地址>:3242/query?db=mydb&u=<賬號(hào)名稱>&p=<密碼>' --data-urlencode 'q=SELECT * FROM "mymeas" WHERE "mytag1" = $tag_value' --data-urlencode 'params={"tag_value":"12"}'

{"results":[{"statement_id":0,"series":[{"name":"mymeas","columns":["time","myfield","mytag1","mytag2"],"values":[["2017-03-01T00:17:18Z",12.4,"12","14"]]}]}]}

該請(qǐng)求將$tag_value映射到12。TSDB For InfluxDB?將tag value存儲(chǔ)為字符串,所以必須使用雙引號(hào)將請(qǐng)求中的tag value括起來(lái)。

將WHERE子句中的參數(shù)綁定到數(shù)值類型的field value

$ curl -G 'https://<網(wǎng)絡(luò)地址>:3242/query?db=mydb&u=<賬號(hào)名稱>&p=<密碼>' --data-urlencode 'q=SELECT * FROM "mymeas" WHERE "myfield" > $field_value' --data-urlencode 'params={"field_value":30}'

{"results":[{"statement_id":0,"series":[{"name":"mymeas","columns":["time","myfield","mytag1","mytag2"],"values":[["2017-03-01T00:16:18Z",33.1,null,null]]}]}]}

該請(qǐng)求將$field_value映射到30。不需要使用雙引號(hào)將30括起來(lái),因?yàn)樵?code data-tag="code" class="code">myfield中存儲(chǔ)的是數(shù)值類型的field value。

將WHERE子句中的兩個(gè)參數(shù)分別綁定到指定的tag value和數(shù)值類型的field value

$ curl -G 'https://<網(wǎng)絡(luò)地址>:3242/query?db=mydb&u=<賬號(hào)名稱>&p=<密碼>' --data-urlencode 'q=SELECT * FROM "mymeas" WHERE "mytag1" = $tag_value AND  "myfield" < $field_value' --data-urlencode 'params={"tag_value":"12","field_value":30}'

{"results":[{"statement_id":0,"series":[{"name":"mymeas","columns":["time","myfield","mytag1","mytag2"],"values":[["2017-03-01T00:17:18Z",12.4,"12","14"]]}]}]}

該請(qǐng)求將$tag_value映射到12,并且將$field_value映射到30。

狀態(tài)碼和響應(yīng)

響應(yīng)以JSON格式返回。通過(guò)添加參數(shù)pretty=true,可開(kāi)啟JSON的美觀打印(pretty-print)。

總結(jié)

HTTP狀態(tài)碼

描述

200 OK

成功!返回的JSON提供更多信息。

400 Bad Request

無(wú)法處理該請(qǐng)求。可能是查詢的語(yǔ)法不正確引起的。返回的JSON提供更多信息。

401 Unauthorized

無(wú)法處理該請(qǐng)求。可能是認(rèn)證憑證無(wú)效引起的。

示例

成功返回?cái)?shù)據(jù)的請(qǐng)求

$ curl -i -G 'https://<網(wǎng)絡(luò)地址>:3242/query?db=mydb&u=<賬號(hào)名稱>&p=<密碼>' --data-urlencode 'q=SELECT * FROM "mymeas"'

HTTP/1.1 200 OK
Connection: close
Content-Type: application/json
Request-Id: [...]
X-Influxdb-Version: 1.7.x
Date: Wed, 08 Nov 2017 19:22:54 GMT
Transfer-Encoding: chunked

{"results":[{"statement_id":0,"series":[{"name":"mymeas","columns":["time","myfield","mytag1","mytag2"],"values":[["2017-03-01T00:16:18Z",33.1,null,null],["2017-03-01T00:17:18Z",12.4,"12","14"]]}]}]}

成功返回錯(cuò)誤的請(qǐng)求

$ curl -i -G 'https://<網(wǎng)絡(luò)地址>:3242/query?db=mydb1&u=<賬號(hào)名稱>&p=<密碼>' --data-urlencode 'q=SELECT * FROM "mymeas"'

HTTP/1.1 200 OK
Connection: close
Content-Type: application/json
Request-Id: [...]
X-Influxdb-Version: 1.7.x
Date: Wed, 08 Nov 2017 19:23:48 GMT
Transfer-Encoding: chunked

{"results":[{"statement_id":0,"error":"database not found: mydb1"}]}

格式錯(cuò)誤的查詢

$ curl -i -G 'https://<網(wǎng)絡(luò)地址>:3242/query?db=mydb&u=<賬號(hào)名稱>&p=<密碼>' --data-urlencode 'q=SELECT *'

HTTP/1.1 400 Bad Request
Content-Type: application/json
Request-Id: [...]
X-Influxdb-Version: 1.7.x
Date: Wed, 08 Nov 2017 19:24:25 GMT
Content-Length: 76

{"error":"error parsing query: found EOF, expected FROM at line 1, char 9"}

使用無(wú)效的認(rèn)證憑證查詢數(shù)據(jù)

$ curl -i  -XPOST 'https://<網(wǎng)絡(luò)地址>:3242/query?u=myusername&p=notmypassword' --data-urlencode 'q=CREATE DATABASE "mydb"'

HTTP/1.1 401 Unauthorized
Content-Type: application/json
Request-Id: [...]
Www-Authenticate: Basic realm="InfluxDB"
X-Influxdb-Version: 1.7.x
Date: Wed, 08 Nov 2017 19:11:26 GMT
Content-Length: 33

{"error":"authorization failed"}

/write HTTP路徑

/write路徑接受POST的HTTP請(qǐng)求。使用這個(gè)路徑,將數(shù)據(jù)寫(xiě)入已經(jīng)創(chuàng)建好的數(shù)據(jù)庫(kù)。

定義

POST https://<網(wǎng)絡(luò)地址>:3242/write?u=<賬號(hào)名稱>&p=<密碼>

字符串類型的查詢參數(shù)

字符串類型的查詢參數(shù)

可選/必需

描述

db=\

必需

設(shè)置寫(xiě)入的目標(biāo)數(shù)據(jù)庫(kù)。

p=\

如果沒(méi)有開(kāi)啟認(rèn)證,這是可選的。開(kāi)啟認(rèn)證后,這是必需的。

如果開(kāi)啟了認(rèn)證,請(qǐng)?jiān)O(shè)置用于認(rèn)證的密碼。需要與參數(shù)u同時(shí)使用。

precision=[ns,u,ms,s,m,h]

可選

設(shè)置所提供的Unix時(shí)間的精度。如果您不指定精度,TSDB For InfluxDB?假設(shè)時(shí)間戳的精度為納秒。

rp=\

可選

設(shè)置寫(xiě)入的目標(biāo)保留策略。如果您不指定保留策略,TSDB For InfluxDB?會(huì)將數(shù)據(jù)寫(xiě)入默認(rèn)(DEFAULT)保留策略。

u=\

如果沒(méi)有開(kāi)啟認(rèn)證,這是可選的。開(kāi)啟認(rèn)證后,這是必需的。

如果開(kāi)啟了認(rèn)證,請(qǐng)?jiān)O(shè)置用于認(rèn)證的用戶名。用戶必須具有寫(xiě)數(shù)據(jù)庫(kù)的權(quán)限。需要與參數(shù)p同時(shí)使用。

** 我們建議盡量使用最低的精度,因?yàn)檫@可以顯著提高壓縮效果。

示例

將時(shí)間戳精確到秒的數(shù)據(jù)點(diǎn)寫(xiě)入數(shù)據(jù)庫(kù)mydb

$ curl -i -XPOST "https://<網(wǎng)絡(luò)地址>:3242/write?db=mydb&precision=s&u=<賬號(hào)名稱>&p=<密碼>" --data-binary 'mymeas,mytag=1 myfield=90 1463683075'

HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: [...]
X-Influxdb-Version: 1.7.x
Date: Wed, 08 Nov 2017 17:33:23 GMT

將數(shù)據(jù)點(diǎn)寫(xiě)入數(shù)據(jù)庫(kù)mydb和保留策略myrp

$ curl -i -XPOST "https://<網(wǎng)絡(luò)地址>:3242/write?db=mydb&rp=myrp&u=<賬號(hào)名稱>&p=<密碼>" --data-binary 'mymeas,mytag=1 myfield=90'

HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: [...]
X-Influxdb-Version: 1.7.x
Date: Wed, 08 Nov 2017 17:34:31 GMT

使用HTTP認(rèn)證,將數(shù)據(jù)點(diǎn)寫(xiě)入數(shù)據(jù)庫(kù)mydb

有效的憑證:

$ curl -i -XPOST "https://<網(wǎng)絡(luò)地址>:3242/write?db=mydb&u=myusername&p=mypassword" --data-binary 'mymeas,mytag=1 myfield=91'

HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: [...]
X-Influxdb-Version: 1.7.x
Date: Wed, 08 Nov 2017 17:34:56 GMT

無(wú)效的憑證:

$ curl -i -XPOST "https://<網(wǎng)絡(luò)地址>:3242/write?db=mydb&u=myusername&p=notmypassword" --data-binary 'mymeas,mytag=1 myfield=91'

HTTP/1.1 401 Unauthorized
Content-Type: application/json
Request-Id: [...]
Www-Authenticate: Basic realm="InfluxDB"
X-Influxdb-Version: 1.7.x
Date: Wed, 08 Nov 2017 17:40:30 GMT
Content-Length: 33

{"error":"authorization failed"}

使用基本(basic)認(rèn)證,將數(shù)據(jù)點(diǎn)寫(xiě)入數(shù)據(jù)庫(kù)mydb

有效的憑證:

$ curl -i -XPOST -u myusername:mypassword "https://<網(wǎng)絡(luò)地址>:3242/write?db=mydb" --data-binary 'mymeas,mytag=1 myfield=91'

HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: [...]
X-Influxdb-Version: 1.7.x
Date: Wed, 08 Nov 2017 17:36:40 GMT

無(wú)效的憑證:

$ curl -i -XPOST -u myusername:notmypassword "https://<網(wǎng)絡(luò)地址>:3242/write?db=mydb" --data-binary 'mymeas,mytag=1 myfield=91'

HTTP/1.1 401 Unauthorized
Content-Type: application/json
Request-Id: [...]
Www-Authenticate: Basic realm="InfluxDB"
X-Influxdb-Version: 1.7.x
Date: Wed, 08 Nov 2017 17:46:40 GMT
Content-Length: 33

{"error":"authorization failed"}

Request body

--data-binary '<Data in Line Protocol format>'

所有數(shù)據(jù)必須采用二進(jìn)制編碼并采用行協(xié)議格式。本頁(yè)面的所有示例都使用了curl,在curl命令中使用參數(shù)--data-binary。使用除--data-binary外的其它編碼方式,可能會(huì)導(dǎo)致錯(cuò)誤;-d--data-urlencode--data-ascii可能會(huì)將換行符去掉或者引入新的、非預(yù)期的格式。

選項(xiàng):

  • 通過(guò)用換行符分隔多個(gè)數(shù)據(jù)點(diǎn),可在一個(gè)請(qǐng)求中將這些數(shù)據(jù)點(diǎn)寫(xiě)入數(shù)據(jù)庫(kù)。

  • 將文件中的數(shù)據(jù)點(diǎn)寫(xiě)入數(shù)據(jù)庫(kù),該文件需帶標(biāo)記@。文件中的數(shù)據(jù)點(diǎn)需要使用行協(xié)議格式。每個(gè)數(shù)據(jù)點(diǎn)必須占據(jù)一行,多個(gè)數(shù)據(jù)點(diǎn)用換行符(\n)隔開(kāi)。文件中包含回車鍵會(huì)導(dǎo)致解析錯(cuò)誤。

我們建議分批寫(xiě)入數(shù)據(jù),每批數(shù)據(jù)5,000或10,000個(gè)數(shù)據(jù)點(diǎn)。如果每一批數(shù)據(jù)的數(shù)據(jù)點(diǎn)變少,會(huì)產(chǎn)生更多的HTTP請(qǐng)求,導(dǎo)致性能無(wú)法達(dá)到最優(yōu)。

示例

將時(shí)間戳精確到納秒的數(shù)據(jù)點(diǎn)寫(xiě)入數(shù)據(jù)庫(kù)mydb

$ curl -i -XPOST "https://<網(wǎng)絡(luò)地址>:3242/write?db=mydb&u=<賬號(hào)名稱>&p=<密碼>" --data-binary 'mymeas,mytag=1 myfield=90 1463683075000000000'

HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: [...]
X-Influxdb-Version: 1.7.x
Date: Wed, 08 Nov 2017 18:02:57 GMT

將使用本地服務(wù)器時(shí)間戳(精確到納秒)的數(shù)據(jù)點(diǎn)寫(xiě)入數(shù)據(jù)庫(kù)mydb

$ curl -i -XPOST "https://<網(wǎng)絡(luò)地址>:3242/write?db=mydb&u=<賬號(hào)名稱>&p=<密碼>" --data-binary 'mymeas,mytag=1 myfield=90'

HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: [...]
X-Influxdb-Version: 1.7.x
Date: Wed, 08 Nov 2017 18:03:44 GMT

使用換行符,將多個(gè)數(shù)據(jù)點(diǎn)寫(xiě)入數(shù)據(jù)庫(kù)mydb

$ curl -i -XPOST "https://<網(wǎng)絡(luò)地址>:3242/write?db=mydb&u=<賬號(hào)名稱>&p=<密碼>" --data-binary 'mymeas,mytag=3 myfield=89 1463689152000000000
mymeas,mytag=2 myfield=34 1463689152000000000'

HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: [...]
X-Influxdb-Version: 1.7.x
Date: Wed, 08 Nov 2017 18:04:02 GMT

從文件data.txt中,將多個(gè)數(shù)據(jù)點(diǎn)寫(xiě)入數(shù)據(jù)庫(kù)mydb

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

HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: [...]
X-Influxdb-Version: 1.7.x
Date: Wed, 08 Nov 2017 18:08:11 GMT

其中,文件data.txt中的示例數(shù)據(jù)如下:

mymeas,mytag1=1 value=21 1463689680000000000
mymeas,mytag1=1 value=34 1463689690000000000
mymeas,mytag2=8 value=78 1463689700000000000
mymeas,mytag3=9 value=89 1463689710000000000

狀態(tài)碼和響應(yīng)

一般來(lái)說(shuō),2xx形式的狀態(tài)碼表示成功,4xx表示TSDB For InfluxDB?無(wú)法理解請(qǐng)求,5xx表示系統(tǒng)過(guò)載或嚴(yán)重受損。錯(cuò)誤以JSON格式返回。

總結(jié)

HTTP狀態(tài)碼

描述

204 No Content

成功!

400 Bad Request

無(wú)法處理該請(qǐng)求。可能寫(xiě)協(xié)議語(yǔ)法錯(cuò)誤引起的,或者是用戶嘗試將數(shù)據(jù)寫(xiě)入之前接受不同數(shù)據(jù)類型的field引起的。返回的JSON提供更多信息。

401 Unauthorized

無(wú)法處理該請(qǐng)求。可能是認(rèn)證憑證無(wú)效引起的。

404 Not Found

無(wú)法處理該請(qǐng)求。可能是用戶嘗試將數(shù)據(jù)寫(xiě)入不存在的數(shù)據(jù)庫(kù)引起的。返回的JSON提供更多信息。

500 Internal Server Error

系統(tǒng)過(guò)載或嚴(yán)重受損。可能是用戶嘗試將數(shù)據(jù)寫(xiě)入不存在的保留策略引起的。返回的JSON提供更多信息。

示例

寫(xiě)入成功

HTTP/1.1 204 No Content

寫(xiě)入時(shí)間戳不正確的數(shù)據(jù)點(diǎn)

HTTP/1.1 400 Bad Request
[...]
{"error":"unable to parse 'mymeas,mytag=1 myfield=91 abc123': bad timestamp"}

將整數(shù)寫(xiě)入到之前接受浮點(diǎn)數(shù)的field

HTTP/1.1 400 Bad Request
[...]
{"error":"field type conflict: input field \"myfield\" on measurement \"mymeas\" is type int64, already exists as type float"}

使用無(wú)效的認(rèn)證憑證寫(xiě)入數(shù)據(jù)

HTTP/1.1 401 Unauthorized
[...]
{"error":"authorization failed"}

將數(shù)據(jù)點(diǎn)寫(xiě)入不存在的數(shù)據(jù)庫(kù)

HTTP/1.1 404 Not Found
[...]
{"error":"database not found: \"mydb1\""}

將數(shù)據(jù)點(diǎn)寫(xiě)入不存在的保留策略

HTTP/1.1 500 Internal Server Error
[...]
{"error":"retention policy not found: myrp"}

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