数据读写 API
更新时间:2026-07-24
TSDB 专享版的数据写入与查询接口兼容开源 InfluxDB 3 V3 API。兼容性仅指数据访问协议,不表示产品基于或等同于 InfluxDB 3。
认证
HTTP 请求推荐使用:
Http
1Authorization: Bearer <token>
Flight gRPC 使用 metadata:
Text
1authorization: Bearer <token>
接口清单
| 能力 | Method | URL 或协议 | 所需权限 |
|---|---|---|---|
| 写入 Line Protocol | POST |
/api/v3/write_lp |
目标数据库 write |
| 执行 HTTP SQL | GET / POST |
/api/v3/query_sql |
目标数据库 read |
| 执行 Flight SQL | Flight gRPC | 集群连接地址 | 目标数据库 read |
请求约定
- 写入请求体为 Line Protocol 文本,支持 gzip。
- 配置类 JSON 字段使用
snake_case。 - 查询输出支持
pretty、json、json_lines(别名jsonl)、csv和parquet。 - 请求体上限由集群配置决定,默认是 10 MiB;gzip 请求按解压后的大小计算,超出限制返回
413。
Line Protocol 写入
Http
1POST /api/v3/write_lp?db=mydb&precision=nanosecond&accept_partial=true&no_sync=false
2Authorization: Bearer <token>
3Content-Type: text/plain
| Query 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
db |
string | 是 | 目标 Database。 |
precision |
string | 否 | auto、second、millisecond、microsecond 或 nanosecond,默认为 auto。 |
accept_partial |
boolean | 否 | 是否跳过非法行并接受其余数据,默认为 true。 |
no_sync |
boolean | 否 | 是否跳过同步持久化确认后立即返回,默认为 false。需要持久化确认时不要设为 true。 |
写入全部成功返回 204 No Content。发生部分写入时,错误体中的 data 会列出失败行、行号和原因;普通解析错误返回 400,触发 Database、Table 或 Column 数量限制时返回 422。调用方必须处理部分写入,不能仅重试整个请求,否则可能重复写入已成功的数据。
HTTP SQL 查询
GET 请求使用 Query 参数,POST 请求使用 JSON 请求体:
JSON
1{
2 "db": "mydb",
3 "q": "SELECT host, usage FROM cpu WHERE host = $host LIMIT 10",
4 "format": "json",
5 "params": {"host": "s1"}
6}
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
db |
string | 是 | 目标 Database。 |
q |
string | 是 | 要执行的 SQL。 |
format |
string | 否 | 输出格式。省略时根据 Accept 协商;未提供 Accept 时默认为 json。 |
params |
object | 否 | SQL 绑定参数。 |
查询成功返回 200 OK。TSDB 专享版仅支持 SQL,不支持 InfluxQL。
Flight SQL 查询
Flight gRPC 与 HTTP API 使用同一个集群连接地址,通过 HTTP/2 和 content-type: application/grpc 区分协议。支持以下两种调用方式:
- InfluxDB 3 官方客户端使用 IOx 原生
DoGetticket,在 ticket 中携带database、sql_query、query_type和可选params。 - 标准 Arrow Flight SQL 客户端使用
GetFlightInfo/DoGet,并通过databasemetadata 指定 Database;支持即时查询、Prepared Statement、GetCatalogs、GetDbSchemas、GetTables和GetSqlInfo。
查询结果以 Arrow RecordBatch 流返回。无效令牌对应 gRPC Unauthenticated,权限不足对应 PermissionDenied;GetTables 只返回当前令牌可见的用户表,不返回系统表。
常见状态码
| 状态码 | 说明 |
|---|---|
200 |
查询成功。 |
204 |
写入成功。 |
400 |
请求参数、SQL 或 Line Protocol 不合法。 |
401 |
缺少或使用了无效令牌。 |
403 |
权限不足。 |
404 |
数据库、表或路径不存在,或资源对当前令牌不可见。 |
413 |
请求体超过上限。 |
415 |
请求体 Content-Type 不受支持。 |
422 |
部分写入触发资源数量限制。 |
500 |
查询或服务执行错误。 |
完整写入和查询示例请参见使用 Line Protocol 写入数据和使用 SQL 与 Flight SQL 查询数据。
连接协议、主机和端口应以集群详情返回的连接地址为准。SDK 的支持语言、版本和是否需要显式启用 V3 写入模式,参见SDK 使用说明。
评价此篇文章
