行协议写入
本文介绍通过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请求的请求体填入,参数说明如下:
参数 | 是否必选 | 说明 |
---|---|---|
否 | 默认值ns,时间戳精度,取值包括ns、us、ms、s、m、h。 | |
db | 否 | 数据写入的数据库名。 |
schema_policy | 否 | 默认为WEAK,WEAK模式下会自动创建时序表,取值为:
有关Schema约束策略请参见支持的Schema约束策略。 |
行协议写入格式
行协议写入格式和参数说明如下:
<table_name>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>]
参数 | 是否必选 | 说明 |
---|---|---|
是 | 数据写入的表名。 | |
否 | 数据标签,可用于搜索。 | |
是 | 数据字段。 | |
否 | 时间戳,默认为当前时间,默认单位为ns。 说明 如果您需要修改时间戳精度,可通过precision来设置。 |
一次写入多条数据使用反斜线n(\n)分隔。
通过行协议将数据写入Lindorm时序引擎时,时序引擎的Schema约束行为属于弱约束。
示例
行协议写入的语句示例如下。
POST /api/v2/write?precision=ms&db=default
sensor,device_id=F07A1260,region=north-cn temperature=12.1,humidity=45 1619076780000
sensor,device_id=F07A1260,region=north-cn temperature=13.2,humidity=47 1619076790000
sensor,device_id=F07A1260,region=north-cn temperature=10.6,humidity=46 1619076800000
sensor,device_id=F07A1260,region=north-cn temperature=18.1,humidity=44 1619076780000
sensor,device_id=F07A1260,region=north-cn temperature=19.7,humidity=44 1619076790000
行协议写入成功后返回状态码204。