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

行協議參考

更新時間:

行協議(Line Protocol)是一種基于文本的格式,用于將數據點寫入TSDB For InfluxDB?。

行協議

語法

<measurement>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>]

使用換行符\n分隔每一行,每一行表示TSDB For InfluxDB?中的一個數據點。行協議是對空格敏感的。

語法描述

行協議告訴TSDB For InfluxDB?數據的measurement、tag set、field set和時間戳。

元素(element)

可選/必需

描述

類型(請查看數據類型獲得更多信息)

Measurement

必需。

measurement的名字。TSDB For InfluxDB?中每個數據點接受一個measurement。

字符串。

Tag set

可選。

一個數據點上全部的tag key-value pairs。

tag key和tag value都是字符串。

Field set

必需。數據點必須至少有一個field。

一個數據點上全部的field key-value pairs。

field key是字符串,field value可以是浮點數、整數或者布爾值。

時間戳

可選。如果沒有指定數據點的時間戳,那么TSDB For InfluxDB?使用服務器本地的納秒級時間戳(UTC格式)作為數據點的時間戳。

數據點的時間戳。TSDB For InfluxDB?中每個數據點接受一個時間戳。

Unix納秒級時間戳。使用HTTP API指定除納秒之外其它精度的時間戳。

說明

性能和設置提示: 在將數據點發送到數據庫之前,將tag按tag key進行排序。排序結果應該與Go bytes.Compare function的結果匹配。 時間戳盡量使用最粗的精度,因為這可以顯著提高壓縮效果。 使用網絡時間協議(Network Time Protocol,NTP)來同步主機(host)之間的時間。TSDB For InfluxDB?使用主機的本地UTC時間為數據分配時間戳,如果主機的時鐘與NTP不同步,寫入TSDB For InfluxDB?的數據的時間戳可能會不準確。

數據類型

數據類型

元素(element)

描述

浮點數

Field value

IEEE-754 64位浮點數。這是默認的數值類型。

例如:11.01.e+781.E+78

整數

Field value

有符號的64位整數(從-9223372036854775808到9223372036854775807)。在數字后面加上i來指定整數。

例如:1i

字符串

Measurement,tag key,tag value,field key,Field value

長度限制為64 KB。

布爾值

Field value

存儲TRUE或FALSE的值。

  • TRUE寫入語法:[t, T, true, True, TRUE]

  • FALSE寫入語法:[f, F, false, False, FALSE]

時間戳

時間戳

Unix納秒級時間戳。使用HTTP API指定除納秒之外其它精度的時間戳。

  • 最小的有效時間戳是-92233720368547758061677-09-21T00:12:43.145224194Z

  • 最大的有效時間戳是92233720368547758062262-04-11T23:47:16.854775806Z

寫入和查詢布爾值的語法

寫入和查詢布爾值的語法不一樣。請查看FAQ獲得更多相關信息。

field type差異

在measurement中,一個field的數據類型在一個shard內不會不一致,但是在不同的shard,它的數據類型可以不同。若想了解field value的數據類型差異如何影響SELECT *查詢,請參見FAQ的相關章節。

示例

示例一:將field value 1.0作為浮點數寫入TSDB For InfluxDB?

> INSERT mymeas value=1.0

示例二:將field value 1作為浮點數寫入TSDB For InfluxDB?

> INSERT mymeas value=1

示例三:將field value -1.234456e+78作為浮點數寫入TSDB For InfluxDB?

> INSERT mymeas value=-1.234456e+78

TSDB For InfluxDB?支持使用科學計數法指定field value。

示例四:將field value 1作為整數寫入TSDB For InfluxDB?

> INSERT mymeas value=1i

示例五:將field value stringing along作為字符串寫入TSDB For InfluxDB?

> INSERT mymeas value="stringing along"

始終使用雙引號將字符串類型的field value括起來。更多關于引號的介紹,請查看下文引號一節。

示例六:將field value true作為布爾值寫入TSDB For InfluxDB?

> INSERT mymeas value=true

請不要用引號將布爾類型的field value括起來。以下語句把true作為字符串寫入TSDB For InfluxDB?:

> INSERT mymeas value="true"

示例七:嘗試將字符串寫入之前接受浮點數的field

如果浮點數和字符串上的時間戳存儲在同一個shard:

> INSERT mymeas value=3 1465934559000000000
> INSERT mymeas value="stringing along" 1465934559000000001
ERR: {"error":"field type conflict: input field \"value\" on measurement \"mymeas\" is type string, already exists as type float"}

如果浮點數和字符串上的時間戳不是存儲在同一個shard:

> INSERT mymeas value=3 1465934559000000000
> INSERT mymeas value="stringing along" 1466625759000000000
>

引號、特殊字符和其它命名指南

引號

元素(element)

雙引號

單引號

時間戳

不使用

不使用

measurement, tag key, tag value, field key

不使用

不使用

field value

字符串類型的field value需要用雙引號括起來。不要用雙引號將浮點數、整數或布爾值括起來。

不使用

  • 行協議允許用戶使用雙引號和單引號將measurement的名字、tag key、tag value和field key括起來。然而,它會把雙引號和單引號當作是名字、key或value的一部分。這會使查詢語法復雜化(請看下面的示例)。

示例

示例一:無效的行協議 - 用雙引號將時間戳括起來

> INSERT mymeas value=9 "1466625759000000000"
ERR: {"error":"unable to parse 'mymeas value=9 \"1466625759000000000\"': bad timestamp"}

用雙引號(或單引號)將時間戳括起來,會產生bad timestamp錯誤。

示例二:語義錯誤 - 用雙引號將布爾類型的field value括起來

> INSERT mymeas value="true"
> SHOW FIELD KEYS FROM "mymeas"
name: mymeas
------------
fieldKey         fieldType
value            string

TSDB For InfluxDB?假設所有用雙引號括起來的field value都是字符串。

示例三:語義錯誤 - 用雙引號將measurement的名字括起來

> INSERT "mymeas" value=200
> SHOW MEASUREMENTS
name: measurements
------------------
name
"mymeas"
> SELECT * FROM mymeas
> SELECT * FROM "mymeas"
> SELECT * FROM "\"mymeas\""
name: "mymeas"
--------------
time                                                    value
2016-06-14T20:36:21.836131014Z   200

如果您使用雙引號將行協議中的measurement括起來,那么對該measurement的任意查詢都需要在FROM子句中使用雙引號并且將雙引號轉義(\)。

特殊字符

對于tag key、tag value和field key,始終使用反斜杠\來轉義:

  • 逗號 ,

  • 等號 =

  • 空格

對于measurement,始終使用反斜杠\來轉義:

  • 逗號 ,

  • 空格

對于字符串類型的field value,使用反斜杠\來轉義:

  • 雙引號 "

行協議不需要用戶將反斜杠\轉義。用戶也不需要將其它的特殊字符轉義。

示例

示例一:寫入帶特殊字符的數據點

> INSERT "measurement\ with\ quo??es\ and\ emoji",tag\ key\ with\ sp??ces=tag\,value\,with"commas" field_k\ey="string field value, only \" need be esc??ped"

系統寫入一個數據點,其measurement為"measurement with quo??es and emoji",tag key為tag key with sp??ces,tag value為tag,value,with"commas",field key為field_k\ey,field value為string field value, only " need be esc??ped

其它命名指南

在行的開頭,#是行協議的有效注釋字符。TSDB For InfluxDB?會忽略所有的后續字符,直到遇到下一個換行符\n

measurement的名字、tag key、tag value、field key和field value都是大小寫敏感的。

行協議將InfluxQL關鍵字作為標識符名字。通常,我們建議避免在schema中使用InfluxQL關鍵字,因為它可能會在查詢數據時引起混淆。

關鍵字time是一個特例。time可以是一個連續查詢名字、數據庫名字、measurement的名字、保留策略名字、subscription的名字和用戶名。在這些情況下,不需要在查詢中用雙引號將time括起來。time不能是field key或tag key;TSDB For InfluxDB?拒絕寫入將time作為field key或tag key的數據,對于這種數據寫入,TSDB For InfluxDB?會返回錯誤。請參見FAQ獲得更多相關信息。

在實踐中的行協議

關于如何將行協議數據寫入數據庫,請查看工具章節。

重復數據點

measurement的名字、tag set和時間戳唯一標識一個數據點。如果您提交的數據具有相同measurement、tag set和時間戳但具有不同field set,那么數據的field set會變為舊field set和新field set的并集,如果有任何沖突以新field set為準。

有關此行為的完整示例和如何避免這種情況,請參見FAQ相關章節。

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