行協(xié)議寫入
本文介紹通過InfluxDB行協(xié)議將數(shù)據(jù)寫入Lindorm時序引擎的方法和示例。
背景信息
Lindorm時序引擎兼容InfluxDB的行協(xié)議(Line Protocol)格式。對于通過行協(xié)議發(fā)送數(shù)據(jù)的應(yīng)用或設(shè)備,都可以將數(shù)據(jù)寫入Lindorm時序引擎中。
支持的數(shù)據(jù)類型
行協(xié)議寫入語法的數(shù)據(jù)類型包括Float、Integer、String、Boolean和Timestamp。數(shù)據(jù)類型說明參見下表。
數(shù)據(jù)類型 | 說明 |
Float | 默認(rèn)解析類型,例如:1、1.0、1.e+10、1.E+10。 |
Integer | 支持64位整數(shù),通過后綴i來識別,例如:12i、101i。 |
String | 字符串類型,使用雙引號(“”)表示,例如:“hello world”。 |
Boolean | 取值包括True和False。
|
Timestamp | 時間戳。Timestamp目前協(xié)議上支持ns,數(shù)據(jù)存儲時轉(zhuǎn)換為ms存儲。如果您需要修改時間戳精度,可通過precision來設(shè)置。 |
請求路徑
請求路徑:/api/v2/write
請求方法:POST
發(fā)送行協(xié)議寫入請求時,需要將數(shù)據(jù)按行協(xié)議寫入格式編寫后作為POST請求的請求體填入,參數(shù)說明如下:
參數(shù) | 是否必選 | 說明 |
precision | 否 | 時間戳精度。默認(rèn)值為ns,支持的取值為ns、us、ms、s、m、h。 |
db | 否 | 數(shù)據(jù)寫入的數(shù)據(jù)庫名。 |
schema_policy | 否 | Schema約束策略。默認(rèn)值為WEAK,WEAK模式下會自動創(chuàng)建時序表。支持的取值為:
詳情請參見支持的Schema約束策略。 |
用戶認(rèn)證信息指定
當(dāng)Lindorm時序引擎開啟用戶鑒權(quán)時,通過/api/v2/write
發(fā)送SQL請求時需要向HTTP請求頭中填入用戶認(rèn)證信息。目前/api/v2/write
遵循的是BASIC AUTH
認(rèn)證方式,編碼后的認(rèn)證信息需要指定在HTTP請求頭的Authorization
字段中。
基本認(rèn)證憑據(jù)的格式如下:
BASIC {BASE64編碼的認(rèn)證信息}
其中BASE64編碼的認(rèn)證信息為${用戶名}:${對應(yīng)的用戶密碼}
,以半角冒號(:)分隔。
各編程語言編碼并填充BASIC AUTH認(rèn)證信息的方法,請查詢所用語言的相關(guān)類庫的使用文檔,不在此羅列。
對于初始用戶名root和初始密碼root,BASE64編碼后HTTP請求頭的Authorization
字段應(yīng)包含的信息如下所示:
Authorization: Basic cm9vdDpyb290
行協(xié)議寫入格式
行協(xié)議寫入格式和參數(shù)說明如下:
<table_name>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>]
參數(shù) | 是否必選 | 說明 |
table_name | 是 | 數(shù)據(jù)寫入的表名。 |
tag_set | 否 | 數(shù)據(jù)標(biāo)簽,可用于搜索。 |
field_set | 是 | 數(shù)據(jù)字段。 |
timestamp | 否 | 時間戳,默認(rèn)為當(dāng)前時間,默認(rèn)單位為ns。 說明 如果您需要修改時間戳精度,可通過precision來設(shè)置。 |
一次寫入多條數(shù)據(jù)使用換行符
\n
分隔。通過行協(xié)議將數(shù)據(jù)寫入Lindorm時序引擎時,時序引擎的Schema約束默認(rèn)為弱約束,您也可以通過schema_policy參數(shù)修改Schema約束策略。
示例
行協(xié)議寫入的語句示例如下。
curl -X POST \
'http://ld-bp1489gr5t*****-proxy-tsdb.lindorm.rds.aliyuncs.com:8242/api/v2/write?precision=ms&db=default' \
-d '
sensor7,device_id=F07A1260,region=north-cn temperature=12.1,humidity=45 1619076780000
sensor7,device_id=F07A1260,region=north-cn temperature=13.2,humidity=47 1619076790000
sensor7,device_id=F07A1260,region=north-cn temperature=10.6,humidity=46 1619076800000
sensor7,device_id=F07A1260,region=north-cn temperature=18.1,humidity=44 1619076780000
sensor7,device_id=F07A1260,region=north-cn temperature=19.7,humidity=44 1619076790000
'