本文介紹通過InfluxDB行協議將資料寫入Lindorm時序引擎的方法和樣本。
背景資訊
Lindorm時序引擎相容InfluxDB的行協議(Line Protocol)格式。對於通過行協議發送資料的應用或裝置,都可以將資料寫入Lindorm時序引擎中。
支援的資料類型
行協議寫入文法的資料類型包括Float、Integer、String、Boolean和Timestamp。資料類型說明參見下表。
資料類型 | 說明 |
Float | 預設解析類型,例如:1、1.0、1.e+10、1.E+10。 |
Integer | 支援64位整數,通過尾碼i來識別,無尾碼會被識別為浮點數,例如:12i、101i。 |
String | 字串類型,使用雙引號(“”)表示,例如:“hello world”。 |
Boolean | 取值包括True和False。
|
Timestamp | 時間戳記。Timestamp目前協議上支援ns,資料存放區時轉換為ms儲存。如果您需要修改時間戳記精度,可通過precision來設定。 |
請求路徑
請求路徑:/api/v2/write
要求方法:POST
發送行協議寫入請求時,需要將資料按行協議寫入格式編寫後作為POST請求的請求體填入,參數說明如下:
參數 | 是否必選 | 說明 |
precision | 否 | 時間戳記精度。預設值為ns,支援的取值為ns、us、ms、s、m、h。 |
db | 否 | 資料寫入的資料庫名。 |
schema_policy | 否 | Schema約束策略。預設值為WEAK,WEAK模式下會自動建立時序表。支援的取值為:
詳情請參見支援的Schema約束策略。 |
使用者認證資訊指定
當Lindorm時序引擎開啟使用者鑒權時,通過/api/v2/write發送SQL請求時需要向HTTP要求標頭中填入使用者認證資訊。目前/api/v2/write遵循的是BASIC AUTH認證方式,編碼後的認證資訊需要指定在HTTP要求標頭的Authorization欄位中。
基本認證憑據的格式如下:
BASIC {BASE64編碼的認證資訊}其中BASE64編碼的認證資訊為${使用者名稱}:${對應的使用者密碼},以半形冒號(:)分隔。
各程式設計語言編碼並填充BASIC AUTH認證資訊的方法,請查詢所用語言的相關類庫的使用文檔,不在此羅列。
對於初始使用者名稱root和初始密碼root,BASE64編碼後HTTP要求標頭的Authorization欄位應包含的資訊如下所示:
Authorization: Basic cm9vdDpyb290行協議寫入格式
行協議寫入格式和參數說明如下:
<table_name>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>] 參數 | 是否必選 | 說明 |
table_name | 是 | 資料寫入的表名。 |
tag_set | 否 | 資料標籤,可用於搜尋。 |
field_set | 是 | 資料欄位。 |
timestamp | 否 | 時間戳記,預設為目前時間,預設單位為納秒(ns)。 重要
|
一次寫入多條資料使用分行符號
\n分隔。通過行協議將資料寫入Lindorm時序引擎時,時序引擎的Schema約束預設為弱約束,您也可以通過schema_policy參數修改Schema約束策略。
樣本
行協議寫入的語句樣本如下。
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=45i 1619076780000000000
sensor7,device_id=F07A1260,region=north-cn temperature=13.2,humidity=47i 1619076790000000000
sensor7,device_id=F07A1260,region=north-cn temperature=10.6,humidity=46i 1619076800000000000
sensor7,device_id=F07A1260,region=north-cn temperature=18.1,humidity=44i 1619076780000000000
sensor7,device_id=F07A1260,region=north-cn temperature=19.7,humidity=44i 1619076790000000000
'