行协议写入

本文介绍通过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。

  • True支持的语法包括t、T、true、True、TRUE。

  • False支持的语法包括f、F、false、False、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模式下会自动创建时序表。支持的取值为:

  • WEAK:弱约束策略。

  • STRONG:强约束策略。

  • NONE:无约束策略。

详情请参见支持的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。

说明

如果您需要修改时间戳精度,可通过precision来设置。

说明
  • 一次写入多条数据使用换行符\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=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
'