InfluxDB®行协议写入
本文介绍通过InfluxDB®行协议将数据写入Lindorm时序引擎的方法和示例。
背景信息
Lindorm时序引擎兼容InfluxDB®的行协议(Line Protocol)格式。对于通过行协议发送数据的应用或设备,都可以将数据点写入Lindorm时序引擎中。
支持的数据类型
行协议写入语法的数据类型包括Float、Integer、String、Boolean和Timestamp。数据类型说明参见下表。
数据类型 | 说明 |
---|---|
Float | 默认解析类型,例如:1、1.0、1.e+78、1.E+78。 |
Integer | 支持64位整数,通过后缀i来识别,例如:12i、101i。 |
String | 字符串类型,使用双引号(“”)表示,例如:“hello world”。 |
Boolean | 取值包括True和False。
|
Timestamp | 时间戳。Timestamp目前协议上支持ns,数据存储时转换为ms存储。如果您需要修改时间戳精度,可通过precision来设置。 |
请求路径和方法
请求路径 | 请求方法 | 描述 |
---|---|---|
/api/v2/write | POST | 行协议写入。需要将数据按行协议写入格式编写后作为POST请求的请求体填入。 |
行协议写入格式
<table_name>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>]
一次写入多条数据使用反斜线n(\n)分隔。
通过行协议将数据写入Lindorm时序引擎时,时序引擎的Schema约束行为属于弱约束。
参数说明
参数 | 参数类型 | 是否必选 | 说明 |
---|---|---|---|
请求参数 | 是 | 数据写入的表名。 | |
否 | 数据标签,可用于搜索。 | ||
是 | 数据字段。 | ||
否 | 时间戳,默认为当前时间,默认单位为ns。 说明 如果您需要修改时间戳精度,可通过precision来设置。 | ||
查询参数 | 否 | 默认值ns,时间戳精度,取值包括ns、us、ms、s、m、h。 | |
db | 否 | 数据写入的数据库名。 |
示例
行协议写入的语句示例如下。
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。