InfluxDB 3 Core 的 InfluxDB HTTP API 提供了一个与 InfluxDB 3 Core 数据库和资源交互的编程接口。使用此 API 可以
API 包含以下路径下的终结点
/api/v3: InfluxDB 3 Core 原生终结点/: InfluxDB v1 工作负载和客户端的兼容性终结点/api/v2/write: InfluxDB v2 工作负载和客户端的兼容性终结点创建管理员令牌以授权 API 请求。
curl -X POST "https://:8181/api/v3/configure/token/admin"curl "https://:8181/health" \
--header "Authorization: Bearer ADMIN_TOKEN"写入数据到 InfluxDB。
curl "https://:8181/api/v3/write_lp?db=sensors&precision=auto"
--header "Authorization: Bearer ADMIN_TOKEN" \
--data-raw "home,room=Kitchen temp=72.0
home,room=Living\ room temp=71.5"如果所有数据都已写入,响应为 204 No Content。
查询数据从 InfluxDB。
curl -G "https://:8181/api/v3/query_sql" \
--header "Authorization: Bearer ADMIN_TOKEN" \
--data-urlencode "db=sensors" \
--data-urlencode "q=SELECT * FROM home WHERE room='Living room'" \
--data-urlencode "format=jsonl"输出
{"room":"Living room","temp":71.5,"time":"2025-02-25T20:19:34.984098"}有关使用 InfluxDB 3 Core 的更多信息,请参阅 入门 指南。
根据您的工作流程,使用以下一种方案对 InfluxDB 3 API 进行身份验证
| 身份验证方案 | 适用于 |
|---|---|
| Bearer 身份验证 | 所有终结点 |
| 令牌身份验证 | v1、v2 终结点 |
| Basic 身份验证 | v1 终结点 |
| 查询字符串身份验证 | v1 终结点 |
使用 Authorization 标头和 Basic 方案对 v1 API 请求进行身份验证。
适用于 InfluxDB 3 中的 v1 兼容性 /write 和 /query 终结点。
在验证请求时,InfluxDB 3 会检查解码凭证的 password 部分是否为授权令牌,并忽略解码凭证的 username 部分。
curl "https://:8181/write?db=DATABASE_NAME&precision=s" \
--user "":"AUTH_TOKEN" \
--header "Content-type: text/plain; charset=utf-8" \
--data-binary 'home,room=kitchen temp=72 1641024000'替换以下内容:
DATABASE_NAME:您的 InfluxDB 3 Core 数据库AUTH_TOKEN:管理员令牌| 安全方案类型 | HTTP |
|---|---|
| HTTP 授权方案 | basic |
使用 InfluxDB 1.x API 参数通过查询字符串为 v1 API 请求提供凭证。
查询字符串身份验证适用于 v1 兼容的 /write 和 /query 终结点。
在验证请求时,InfluxDB 3 会检查 p(password)查询参数是否为授权令牌,并忽略 u(username)查询参数。
http://:8181/query/?[u=any]&p=DATABASE_TOKEN
http://:8181/write/?[u=any]&p=DATABASE_TOKENcurl "https://:8181/write?db=DATABASE_NAME&precision=s&p=AUTH_TOKEN" \
--header "Content-type: text/plain; charset=utf-8" \
--data-binary 'home,room=kitchen temp=72 1641024000'替换以下内容:
DATABASE_NAME:您的 InfluxDB 3 Core 数据库AUTH_TOKEN:管理员令牌#######################################
# Use an InfluxDB 1.x compatible username and password
# to query the InfluxDB v1 HTTP API
#######################################
# Use authentication query parameters:
# ?p=DATABASE_TOKEN
#######################################
curl --get "https://:8181/query" \
--data-urlencode "p=AUTH_TOKEN" \
--data-urlencode "db=DATABASE_NAME" \
--data-urlencode "q=SELECT * FROM MEASUREMENT"替换以下内容:
DATABASE_NAME:要查询的数据库AUTH_TOKEN:管理员令牌| 安全方案类型 | API 密钥 |
|---|---|
| 查询参数名称 | u=&p= |
使用 OAuth Bearer 身份验证方案向 InfluxDB 3 提供授权令牌。
Bearer 身份验证适用于所有终结点。
在您的 API 请求中,发送一个 Authorization 标头。对于标头值,提供单词 Bearer,后跟一个空格和一个管理员令牌。
Authorization: Bearer AUTH_TOKENcurl https://:8181/api/v3/query_influxql \
--header "Authorization: Bearer AUTH_TOKEN"| 安全方案类型 | HTTP |
|---|---|
| HTTP 授权方案 | bearer |
| Bearer 格式 | "JWT" |
使用 InfluxDB v2 令牌身份验证向 InfluxDB 3 提供授权令牌。
v2 令牌方案适用于 InfluxDB 3 中的 v1 和 v2 兼容性终结点。
在您的 API 请求中,发送一个 Authorization 标头。对于标头值,提供单词 Token,后跟一个空格和一个数据库令牌。单词 Token 区分大小写。
Authorization: Token AUTH_TOKEN########################################################
# Use the Token authentication scheme with /api/v2/write
# to write data.
########################################################
curl --request post "https://:8181/api/v2/write?bucket=DATABASE_NAME&precision=s" \
--header "Authorization: Token AUTH_TOKEN" \
--data-binary 'home,room=kitchen temp=72 1463683075'| 安全方案类型 | API 密钥 |
|---|---|
| 标头参数名称 | Authorization |
管理内存缓存。
唯一值缓存 (DVC) 允许您缓存表中一个或多个列的唯一值,从而提高返回唯一标签和字段值的查询性能。
DVC 是一个内存缓存,用于存储表中特定列的唯一值。创建 DVC 时,您可以指定要缓存的列的唯一值、要缓存的唯一值组合的最大数量以及缓存值的最大年龄。DVC 与一个表相关联,一个表可以有多个 DVC。
最后值缓存 (LVC) 允许您缓存表中特定字段的最新值,从而提高返回特定序列字段的最新值或字段最后 N 个值的查询性能。
LVC 是一个内存缓存,用于存储表中序列的特定字段的最后 N 个值。创建 LVC 时,您可以指定要缓存的字段、用于标识每个序列的标签以及每个唯一序列要缓存的值的数量。LVC 与一个表相关联,一个表可以有多个 LVC。
为表创建最后值缓存。
| count | 整数 可选的计数。 |
| db 必需 | 字符串 |
| key_columns | 字符串数组字符串 可选的键列列表。 |
| name | 字符串 可选的缓存名称。 |
| table 必需 | 字符串 |
| ttl | 整数 可选的生存时间(秒)。 |
| value_columns | 字符串数组字符串 可选的值列列表。 |
{- "db": "mydb",
- "table": "mytable",
- "key_columns": [
- "tag1"
], - "value_columns": [
- "field1"
], - "count": 100,
- "ttl": 3600
}{- "error": "string",
- "data": { }
}InfluxDB 3 为 InfluxDB 1.x 和 InfluxDB 2.x 工作负载和客户端提供了兼容性终结点。
/api/v2/write 终结点,以及将现有 InfluxDB v2 写入工作负载迁移到 InfluxDB 3 时使用。/write 终结点,以及将现有 InfluxDB v1 写入工作负载迁移到 InfluxDB 3 时使用。对于新工作负载,请使用 /api/v3/write_lp 终结点。
所有终结点都接受相同的行协议格式。
使用 HTTP /query 终结点 用于 InfluxDB v1 客户端和使用 InfluxQL 的 v1 查询工作负载。
对于新工作负载,请使用以下任一方式
/api/v3/query_sql 终结点。/api/v3/query_influxql 终结点。/health 和 metrics 等服务器信息终结点与 InfluxDB 1.x 和 InfluxDB 2.x 客户端兼容。
将行协议写入指定的数据库。
此终结点为使用 InfluxDB 1.x 客户端库、Telegraf outputs.influxdb 输出插件或第三方工具等工具的 InfluxDB 1.x 写入工作负载提供向后兼容性。
使用此终结点以 行协议 格式将数据发送到 InfluxDB。使用查询参数指定写入数据的选项。
| consistency | 字符串 写入一致性级别。InfluxDB 3 忽略此参数。为与 InfluxDB 1.x 客户端兼容而提供。 |
| db 必需 | 字符串 数据库名称。如果数据库尚不存在,InfluxDB 会创建它,然后将批处理中的所有点写入该数据库。 |
| p | 字符串 v1 兼容身份验证的密码。对于查询字符串身份验证,传递管理员令牌。InfluxDB 3 验证 |
| precision 必需 | 字符串 (PrecisionWriteCompatibility) 枚举: "ms" "s" "us" "ns" 行协议批处理中 Unix 时间戳的精度。 |
| rp | 字符串 保留策略名称。已尊重但已弃用。InfluxDB 3 不使用保留策略。 |
| u | 字符串 v1 兼容身份验证的用户名。在使用基本身份验证或查询字符串身份验证时,InfluxDB 3 会忽略此参数,但允许任何任意字符串以与 InfluxDB 1.x 客户端兼容。 |
| Accept | 字符串 默认: application/json 值: "application/json" 客户端可以理解的内容类型。写入操作只有在失败时(部分或全部)才会返回响应正文——例如,由于语法问题或类型不匹配。 |
| Authorization | 字符串 用于令牌身份验证的授权标头。支持的方案
|
| Content-Encoding | 字符串 (ContentEncoding) 默认: identity 枚举: "gzip" "identity" 请求正文中的行协议所应用的压缩。要发送 gzip 载荷,请传递 |
| Content-Length | 整数 (ContentLength) 发送到 InfluxDB 的 entity-body 的大小(以字节为单位)。 |
| Content-Type | 字符串 (LineProtocol) 默认: text/plain; charset=utf-8 枚举: "text/plain" "text/plain; charset=utf-8" 请求正文的内容类型。 |
measurement,tag=value field=1 1234567890
"{\n \"error\": \"write of line protocol failed\",\n \"data\": [\n {\n \"original_line\": \"dquote> home,room=Kitchen temp=hi\",\n \"line_number\": 2,\n \"error_message\": \"No fields were provided\"\n }\n ]\n}\n"将行协议写入指定的数据库。
此终结点为使用 InfluxDB 2.x 客户端库、Telegraf outputs.influxdb_v2 输出插件或第三方工具等工具的 InfluxDB 2.x 写入工作负载提供向后兼容性。
使用此终结点以 行协议 格式将数据发送到 InfluxDB。使用查询参数指定写入数据的选项。
| accept_partial | 布尔值 (AcceptPartial) 默认: true 接受部分写入。 |
| db 必需 | 字符串 数据库名称。如果数据库尚不存在,InfluxDB 会创建它,然后将批处理中的所有点写入该数据库。 |
| precision 必需 | 字符串 (PrecisionWriteCompatibility) 枚举: "ms" "s" "us" "ns" 行协议批处理中 Unix 时间戳的精度。 |
| Accept | 字符串 默认: application/json 值: "application/json" 客户端可以理解的内容类型。写入操作只有在失败时(部分或全部)才会返回响应正文——例如,由于语法问题或类型不匹配。 |
| Content-Encoding | 字符串 默认: identity 枚举: "gzip" "identity" 请求正文中的行协议所应用的压缩。要发送 gzip 载荷,请传递 |
| Content-Length | 整数 发送到 InfluxDB 的 entity-body 的大小(以字节为单位)。 |
| Content-Type | 字符串 (LineProtocol) 默认: text/plain; charset=utf-8 枚举: "text/plain" "text/plain; charset=utf-8" 请求正文的内容类型。 |
measurement,tag=value field=1 1234567890
{- "error": "string",
- "data": { }
}执行 InfluxQL 查询以从指定数据库检索数据。
此终结点与 InfluxDB 1.x 客户端库和 Grafana 等第三方集成兼容。使用查询参数指定数据库和 InfluxQL 查询。
| chunk_size | 整数 默认: 10000 将进入块的记录数。仅当 |
| chunked | 布尔值 默认: false 如果为 true,则响应将分为 |
| db | 默认: application/json 要查询的数据库。如果未提供,则 InfluxQL 查询字符串必须指定数据库。 |
| epoch | 字符串 (EpochCompatibility) 枚举: "ns" "u" "µ" "ms" "s" "m" "h" 将时间戳格式化为具有指定精度的Unix(epoch)时间戳,而不是具有纳秒精度的RFC3339 时间戳。 |
| p | 字符串 v1 兼容身份验证的密码。对于查询字符串身份验证,传递管理员令牌。InfluxDB 3 验证 |
| pretty | 布尔值 默认: false 如果为 true,则 JSON 响应将以人类可读的格式进行格式化。 |
| q 必需 | 字符串 InfluxQL 查询字符串。 |
| rp | 字符串 保留策略名称。已尊重但已弃用。InfluxDB 3 不使用保留策略。 |
| u | 字符串 v1 兼容身份验证的用户名。在使用基本身份验证或查询字符串身份验证时,InfluxDB 3 会忽略此参数,但允许任何任意字符串以与 InfluxDB 1.x 客户端兼容。 |
| Accept | 字符串 默认: application/json 枚举: "application/json" "application/csv" "text/csv" 客户端可以理解的内容类型。 如果指定了 如果格式无效或非 UTF-8,则返回错误。 |
| Authorization | 字符串 用于令牌身份验证的授权标头。支持的方案
|
{- "results": [
- {
- "series": [
- {
- "name": "mytable",
- "columns": [
- "time",
- "value"
], - "values": [
- [
- "2024-02-02T12:00:00Z",
- 42
]
]
}
]
}
]
}| Accept | 字符串 默认: application/json 枚举: "application/json" "application/csv" "text/csv" 客户端可以理解的内容类型。 如果指定了 如果格式无效或非 UTF-8,则返回错误。 |
| chunk_size | 整数 默认: 10000 将进入块的记录数。仅当 |
| chunked | 布尔值 如果为 true,则响应将分为 |
| db | 字符串 要查询的数据库。如果未提供,则 InfluxQL 查询字符串必须指定数据库。 |
| epoch | 字符串 枚举: "ns" "u" "µ" "ms" "s" "m" "h" Unix 时间戳精度。
将时间戳格式化为具有指定精度的Unix(epoch)时间戳,而不是具有纳秒精度的RFC3339 时间戳。 |
| pretty | 布尔值 如果为 true,则 JSON 响应将以人类可读的格式进行格式化。 |
| q 必需 | 字符串 InfluxQL 查询字符串。 |
{- "db": "string",
- "q": "string",
- "chunked": true,
- "chunk_size": 10000,
- "epoch": "ns",
- "pretty": true
}{- "results": [
- {
- "series": [
- {
- "name": "mytable",
- "columns": [
- "time",
- "value"
], - "values": [
- [
- "2024-02-02T12:00:00Z",
- 42
]
]
}
]
}
]
}{- "error": "string",
- "data": { }
}管理处理引擎触发器、测试插件以及发送请求以触发按需插件。
InfluxDB 3 Core 提供 InfluxDB 3 处理引擎,这是一个嵌入式 Python 虚拟机,可以动态加载和触发 Python 插件以响应数据库中的事件。使用处理引擎插件和触发器来运行代码并为不同的数据库事件执行任务。
要开始使用处理引擎,请参阅 处理引擎和 Python 插件 指南。
| db 必需 | 字符串 |
| disabled | 布尔值 默认: false 触发器是否被禁用。 |
| plugin_filename 必需 | 字符串 要执行的插件的路径和文件名——例如, 插件文件必须实现与触发器规范关联的触发器接口。 |
object 传递给插件的可选参数。 | |
| trigger_name 必需 | 字符串 |
必需 | object 触发器错误处理和执行行为的配置。 |
| trigger_specification 必需 | string^(cron:[0-9 *,/-]+|every:[0-9]+[smhd]|all_tab... 指定处理引擎触发器何时以及如何被调用。 支持的触发器规范基于 Cron 的调度格式: 使用扩展(6 字段)cron 格式(秒 分 时 月日 月 周日) 示例
基于间隔的调度格式: 支持的持续时间:
最大间隔:1 年 基于表的触发器
按需触发器格式: 创建一个 HTTP 端点
|
在 "cron:CRON_EXPRESSION" 中,CRON_EXPRESSION 使用扩展的 6 字段 cron 格式。cron 表达式 0 0 6 * * 1-5 表示触发器将在每个工作日(周一至周五)早上 6:00 运行。
{- "db": "mydb",
- "plugin_filename": "schedule.py",
- "trigger_name": "schedule_cron_trigger",
- "trigger_specification": "cron:0 0 6 * * 1-5",
- "trigger_settings": {
- "run_async": false,
- "error_behavior": "Log"
}
}{- "error": "string",
- "data": { }
}禁用处理引擎触发器。
| Content-Type | 字符串 值: "application/json" 请求体中数据的格式。 |
| db 必需 | 字符串 |
| disabled | 布尔值 默认: false 触发器是否被禁用。 |
| plugin_filename 必需 | 字符串 要执行的插件的路径和文件名——例如, 插件文件必须实现与触发器规范关联的触发器接口。 |
object 传递给插件的可选参数。 | |
| trigger_name 必需 | 字符串 |
必需 | object 触发器错误处理和执行行为的配置。 |
| trigger_specification 必需 | string^(cron:[0-9 *,/-]+|every:[0-9]+[smhd]|all_tab... 指定处理引擎触发器何时以及如何被调用。 支持的触发器规范基于 Cron 的调度格式: 使用扩展(6 字段)cron 格式(秒 分 时 月日 月 周日) 示例
基于间隔的调度格式: 支持的持续时间:
最大间隔:1 年 基于表的触发器
按需触发器格式: 创建一个 HTTP 端点
|
{- "db": "string",
- "plugin_filename": "string",
- "trigger_name": "string",
- "trigger_settings": {
- "run_async": false,
- "error_behavior": "Log"
}, - "trigger_specification": "cron:0 0 6 * * 1-5",
- "trigger_arguments": { },
- "disabled": false
}{- "error": "string",
- "data": { }
}启用处理引擎触发器。
| Content-Type | 字符串 值: "application/json" 请求体中数据的格式。 |
| db 必需 | 字符串 |
| disabled | 布尔值 默认: false 触发器是否被禁用。 |
| plugin_filename 必需 | 字符串 要执行的插件的路径和文件名——例如, 插件文件必须实现与触发器规范关联的触发器接口。 |
object 传递给插件的可选参数。 | |
| trigger_name 必需 | 字符串 |
必需 | object 触发器错误处理和执行行为的配置。 |
| trigger_specification 必需 | string^(cron:[0-9 *,/-]+|every:[0-9]+[smhd]|all_tab... 指定处理引擎触发器何时以及如何被调用。 支持的触发器规范基于 Cron 的调度格式: 使用扩展(6 字段)cron 格式(秒 分 时 月日 月 周日) 示例
基于间隔的调度格式: 支持的持续时间:
最大间隔:1 年 基于表的触发器
按需触发器格式: 创建一个 HTTP 端点
|
{- "db": "string",
- "plugin_filename": "string",
- "trigger_name": "string",
- "trigger_settings": {
- "run_async": false,
- "error_behavior": "Log"
}, - "trigger_specification": "cron:0 0 6 * * 1-5",
- "trigger_arguments": { },
- "disabled": false
}{- "error": "string",
- "data": { }
}从需求文件(也称为“pip requirements 文件”)中安装需求到处理引擎插件环境中。
此端点是同步的,会阻塞直到需求安装完成。
| Content-Type | 字符串 值: "application/json" 请求体中数据的格式。 |
| requirements_location 必需 | 字符串 包含要安装的 Python 包的需求文件的路径。可以是相对路径(相对于插件目录)或绝对路径。 |
{- "requirements_location": "requirements.txt"
}{- "error": "string",
- "data": { }
}{- "error": "string",
- "data": { }
}{- "error": "string",
- "data": { }
}执行触发器 plugin_filename 中指定的按需处理引擎插件。请求可以包括请求标头、查询字符串参数和请求正文,InfluxDB 会将这些传递给插件。
按需插件实现以下签名
def process_request(influxdb3_local, query_parameters, request_headers, request_body, args=None)响应取决于插件实现。
| request_path 必需 | 字符串 在请求触发器规范中为插件配置的路径。 例如,如果您定义了一个如下触发器: 然后,HTTP API 会公开以下插件端点: |
{- "error": "string",
- "data": { }
}执行触发器 plugin_filename 中指定的按需处理引擎插件。请求可以包括请求标头、查询字符串参数和请求正文,InfluxDB 会将这些传递给插件。
按需插件实现以下签名
def process_request(influxdb3_local, query_parameters, request_headers, request_body, args=None)响应取决于插件实现。
| request_path 必需 | 字符串 在请求触发器规范中为插件配置的路径。 例如,如果您定义了一个如下触发器: 然后,HTTP API 会公开以下插件端点: |
| Content-Type | 字符串 值: "application/json" 请求体中数据的格式。 |
| property name* | any |
{ }{- "error": "string",
- "data": { }
}{- "error": "string",
- "data": { }
}{- "error": "string",
- "data": { }
}{- "version": "0.1.0",
- "revision": "f3d3d3d"
}为表创建最后值缓存。
| count | 整数 可选的计数。 |
| db 必需 | 字符串 |
| key_columns | 字符串数组字符串 可选的键列列表。 |
| name | 字符串 可选的缓存名称。 |
| table 必需 | 字符串 |
| ttl | 整数 可选的生存时间(秒)。 |
| value_columns | 字符串数组字符串 可选的值列列表。 |
{- "db": "mydb",
- "table": "mytable",
- "key_columns": [
- "tag1"
], - "value_columns": [
- "field1"
], - "count": 100,
- "ttl": 3600
}{- "error": "string",
- "data": { }
}{- "id": 0,
- "name": "_admin",
- "token": "apiv3_00xx0Xx0xx00XX0x0",
- "hash": "00xx0Xx0xx00XX0x0",
- "created_at": "2025-04-18T14:02:45.331Z",
- "expiry": null
}{- "id": 0,
- "name": "_admin",
- "token": "apiv3_00xx0Xx0xx00XX0x0",
- "hash": "00xx0Xx0xx00XX0x0",
- "created_at": "2025-04-18T14:02:45.331Z",
- "expiry": null
}{- "error": "string",
- "data": { }
}执行 SQL 查询以从指定数据库检索数据。
| db 必需 | 字符串 数据库名称。 |
| format | string (Format) 枚举: "json" "csv" "parquet" "jsonl" 响应体中数据的格式。 |
| q 必需 | string <SQL> 要执行的查询。 |
| Accept | 字符串 默认: application/json 枚举: "application/json" "application/jsonl" "application/vnd.apache.parquet" "text/csv" 客户端可以理解的内容类型。 |
| Content-Type | 字符串 值: "application/json" 请求体中数据的格式。 |
{- "results": [
- {
- "series": [
- {
- "name": "mytable",
- "columns": [
- "time",
- "value"
], - "values": [
- [
- "2024-02-02T12:00:00Z",
- 42
]
]
}
]
}
]
}执行 SQL 查询以从指定数据库检索数据。
| Accept | 字符串 默认: application/json 枚举: "application/json" "application/jsonl" "application/vnd.apache.parquet" "text/csv" 客户端可以理解的内容类型。 |
| Content-Type | 字符串 值: "application/json" 请求体中数据的格式。 |
| db 必需 | 字符串 要查询的数据库名称。如果查询 ( |
| format | 字符串 枚举: "json" "csv" "parquet" "jsonl" "pretty" 查询结果的格式。 |
object 查询的附加参数。使用此字段传递查询参数。 | |
| q 必需 | 字符串 要执行的查询。 |
{- "db": "mydb",
- "q": "SELECT * FROM mytable",
- "format": "json",
- "params": { }
}{- "results": [
- {
- "series": [
- {
- "name": "mytable",
- "columns": [
- "time",
- "value"
], - "values": [
- [
- "2024-02-02T12:00:00Z",
- 42
]
]
}
]
}
]
}执行 InfluxQL 查询以从指定数据库检索数据。
| db | 字符串 数据库名称。 如果提供了一个指定数据库的查询,则可以从请求中省略 'db' 参数。 |
| format | 字符串 |
| q 必需 | 字符串 |
| Accept | 字符串 默认: application/json 枚举: "application/json" "application/jsonl" "application/vnd.apache.parquet" "text/csv" 客户端可以理解的内容类型。 |
{- "results": [
- {
- "series": [
- {
- "name": "mytable",
- "columns": [
- "time",
- "value"
], - "values": [
- [
- "2024-02-02T12:00:00Z",
- 42
]
]
}
]
}
]
}执行 InfluxQL 查询以从指定数据库检索数据。
| Accept | 字符串 默认: application/json 枚举: "application/json" "application/jsonl" "application/vnd.apache.parquet" "text/csv" 客户端可以理解的内容类型。 |
| Content-Type | 字符串 值: "application/json" 请求体中数据的格式。 |
| db 必需 | 字符串 要查询的数据库名称。如果查询 ( |
| format | 字符串 枚举: "json" "csv" "parquet" "jsonl" "pretty" 查询结果的格式。 |
object 查询的附加参数。使用此字段传递查询参数。 | |
| q 必需 | 字符串 要执行的查询。 |
{- "db": "mydb",
- "q": "SELECT * FROM mytable",
- "format": "json",
- "params": { }
}{- "results": [
- {
- "series": [
- {
- "name": "mytable",
- "columns": [
- "time",
- "value"
], - "values": [
- [
- "2024-02-02T12:00:00Z",
- 42
]
]
}
]
}
]
}执行 InfluxQL 查询以从指定数据库检索数据。
此终结点与 InfluxDB 1.x 客户端库和 Grafana 等第三方集成兼容。使用查询参数指定数据库和 InfluxQL 查询。
| chunk_size | 整数 默认: 10000 将进入块的记录数。仅当 |
| chunked | 布尔值 默认: false 如果为 true,则响应将分为 |
| db | 默认: application/json 要查询的数据库。如果未提供,则 InfluxQL 查询字符串必须指定数据库。 |
| epoch | 字符串 (EpochCompatibility) 枚举: "ns" "u" "µ" "ms" "s" "m" "h" 将时间戳格式化为具有指定精度的Unix(epoch)时间戳,而不是具有纳秒精度的RFC3339 时间戳。 |
| p | 字符串 v1 兼容身份验证的密码。对于查询字符串身份验证,传递管理员令牌。InfluxDB 3 验证 |
| pretty | 布尔值 默认: false 如果为 true,则 JSON 响应将以人类可读的格式进行格式化。 |
| q 必需 | 字符串 InfluxQL 查询字符串。 |
| rp | 字符串 保留策略名称。已尊重但已弃用。InfluxDB 3 不使用保留策略。 |
| u | 字符串 v1 兼容身份验证的用户名。在使用基本身份验证或查询字符串身份验证时,InfluxDB 3 会忽略此参数,但允许任何任意字符串以与 InfluxDB 1.x 客户端兼容。 |
| Accept | 字符串 默认: application/json 枚举: "application/json" "application/csv" "text/csv" 客户端可以理解的内容类型。 如果指定了 如果格式无效或非 UTF-8,则返回错误。 |
| Authorization | 字符串 用于令牌身份验证的授权标头。支持的方案
|
{- "results": [
- {
- "series": [
- {
- "name": "mytable",
- "columns": [
- "time",
- "value"
], - "values": [
- [
- "2024-02-02T12:00:00Z",
- 42
]
]
}
]
}
]
}| Accept | 字符串 默认: application/json 枚举: "application/json" "application/csv" "text/csv" 客户端可以理解的内容类型。 如果指定了 如果格式无效或非 UTF-8,则返回错误。 |
| chunk_size | 整数 默认: 10000 将进入块的记录数。仅当 |
| chunked | 布尔值 如果为 true,则响应将分为 |
| db | 字符串 要查询的数据库。如果未提供,则 InfluxQL 查询字符串必须指定数据库。 |
| epoch | 字符串 枚举: "ns" "u" "µ" "ms" "s" "m" "h" Unix 时间戳精度。
将时间戳格式化为具有指定精度的Unix(epoch)时间戳,而不是具有纳秒精度的RFC3339 时间戳。 |
| pretty | 布尔值 如果为 true,则 JSON 响应将以人类可读的格式进行格式化。 |
| q 必需 | 字符串 InfluxQL 查询字符串。 |
{- "db": "string",
- "q": "string",
- "chunked": true,
- "chunk_size": 10000,
- "epoch": "ns",
- "pretty": true
}{- "results": [
- {
- "series": [
- {
- "name": "mytable",
- "columns": [
- "time",
- "value"
], - "values": [
- [
- "2024-02-02T12:00:00Z",
- 42
]
]
}
]
}
]
}使用行协议格式将数据写入 InfluxDB 3。
InfluxDB 3 提供多个写端点以兼容不同的 InfluxDB 版本。下表比较了 v1、v2 和 v3 写 API 的时间戳精度支持。
| 精度 | v1 (/write) | v2 (/api/v2/write) | v3 (/api/v3/write_lp) |
|---|---|---|---|
| 自动检测 | ❌ 否 | ❌ 否 | ✅ auto (默认) |
| 秒 | ✅ s | ✅ s | ✅ second |
| 毫秒 | ✅ ms | ✅ ms | ✅ millisecond |
| 微秒 | ✅ u 或 µ | ✅ us | ✅ microsecond |
| 纳秒 | ✅ ns | ✅ ns | ✅ nanosecond |
| 分钟 | ✅ m | ❌ 否 | ❌ 否 |
| 小时 | ✅ h | ❌ 否 | ❌ 否 |
| 默认 | 纳秒 | 纳秒 | 自动(猜测) |
所有时间戳都存储为纳秒。
将行协议写入指定的数据库。
此终结点为使用 InfluxDB 1.x 客户端库、Telegraf outputs.influxdb 输出插件或第三方工具等工具的 InfluxDB 1.x 写入工作负载提供向后兼容性。
使用此终结点以 行协议 格式将数据发送到 InfluxDB。使用查询参数指定写入数据的选项。
| consistency | 字符串 写入一致性级别。InfluxDB 3 忽略此参数。为与 InfluxDB 1.x 客户端兼容而提供。 |
| db 必需 | 字符串 数据库名称。如果数据库尚不存在,InfluxDB 会创建它,然后将批处理中的所有点写入该数据库。 |
| p | 字符串 v1 兼容身份验证的密码。对于查询字符串身份验证,传递管理员令牌。InfluxDB 3 验证 |
| precision 必需 | 字符串 (PrecisionWriteCompatibility) 枚举: "ms" "s" "us" "ns" 行协议批处理中 Unix 时间戳的精度。 |
| rp | 字符串 保留策略名称。已尊重但已弃用。InfluxDB 3 不使用保留策略。 |
| u | 字符串 v1 兼容身份验证的用户名。在使用基本身份验证或查询字符串身份验证时,InfluxDB 3 会忽略此参数,但允许任何任意字符串以与 InfluxDB 1.x 客户端兼容。 |
| Accept | 字符串 默认: application/json 值: "application/json" 客户端可以理解的内容类型。写入操作只有在失败时(部分或全部)才会返回响应正文——例如,由于语法问题或类型不匹配。 |
| Authorization | 字符串 用于令牌身份验证的授权标头。支持的方案
|
| Content-Encoding | 字符串 (ContentEncoding) 默认: identity 枚举: "gzip" "identity" 请求正文中的行协议所应用的压缩。要发送 gzip 载荷,请传递 |
| Content-Length | 整数 (ContentLength) 发送到 InfluxDB 的 entity-body 的大小(以字节为单位)。 |
| Content-Type | 字符串 (LineProtocol) 默认: text/plain; charset=utf-8 枚举: "text/plain" "text/plain; charset=utf-8" 请求正文的内容类型。 |
measurement,tag=value field=1 1234567890
"{\n \"error\": \"write of line protocol failed\",\n \"data\": [\n {\n \"original_line\": \"dquote> home,room=Kitchen temp=hi\",\n \"line_number\": 2,\n \"error_message\": \"No fields were provided\"\n }\n ]\n}\n"将行协议写入指定的数据库。
此终结点为使用 InfluxDB 2.x 客户端库、Telegraf outputs.influxdb_v2 输出插件或第三方工具等工具的 InfluxDB 2.x 写入工作负载提供向后兼容性。
使用此终结点以 行协议 格式将数据发送到 InfluxDB。使用查询参数指定写入数据的选项。
| accept_partial | 布尔值 (AcceptPartial) 默认: true 接受部分写入。 |
| db 必需 | 字符串 数据库名称。如果数据库尚不存在,InfluxDB 会创建它,然后将批处理中的所有点写入该数据库。 |
| precision 必需 | 字符串 (PrecisionWriteCompatibility) 枚举: "ms" "s" "us" "ns" 行协议批处理中 Unix 时间戳的精度。 |
| Accept | 字符串 默认: application/json 值: "application/json" 客户端可以理解的内容类型。写入操作只有在失败时(部分或全部)才会返回响应正文——例如,由于语法问题或类型不匹配。 |
| Content-Encoding | 字符串 默认: identity 枚举: "gzip" "identity" 请求正文中的行协议所应用的压缩。要发送 gzip 载荷,请传递 |
| Content-Length | 整数 发送到 InfluxDB 的 entity-body 的大小(以字节为单位)。 |
| Content-Type | 字符串 (LineProtocol) 默认: text/plain; charset=utf-8 枚举: "text/plain" "text/plain; charset=utf-8" 请求正文的内容类型。 |
measurement,tag=value field=1 1234567890
{- "error": "string",
- "data": { }
}将行协议写入指定的数据库。
这是原生的 InfluxDB 3 Core 写端点,它提供了增强的控制,可以通过高级参数实现高性能和容错操作。
使用此终结点以 行协议 格式将数据发送到 InfluxDB。使用查询参数指定写入数据的选项。
accept_partial=true 允许在批次中的某些行失败时部分成功no_sync=true 跳过等待 WAL 持久化,可以提高响应时间,但会牺牲持久性保证precision=auto(默认)自动检测时间戳精度当您使用 precision=auto 或省略精度参数时,InfluxDB 3 会根据时间戳值的幅度自动检测时间戳精度
| accept_partial | 布尔值 (AcceptPartial) 默认: true 接受部分写入。 |
| db 必需 | 字符串 数据库名称。如果数据库尚不存在,InfluxDB 会创建它,然后将批处理中的所有点写入该数据库。 |
| no_sync | |
| precision 必需 | string (PrecisionWrite) 枚举: "auto" "nanosecond" "microsecond" "millisecond" "second" 行协议批处理中 Unix 时间戳的精度。 |
| Accept | 字符串 默认: application/json 值: "application/json" 客户端可以理解的内容类型。写入操作只有在失败时(部分或全部)才会返回响应正文——例如,由于语法问题或类型不匹配。 |
| Content-Encoding | 字符串 (ContentEncoding) 默认: identity 枚举: "gzip" "identity" 请求正文中的行协议所应用的压缩。要发送 gzip 载荷,请传递 |
| Content-Length | 整数 (ContentLength) 发送到 InfluxDB 的 entity-body 的大小(以字节为单位)。 |
| Content-Type | 字符串 (LineProtocol) 默认: text/plain; charset=utf-8 枚举: "text/plain" "text/plain; charset=utf-8" 请求正文的内容类型。 |
measurement,tag=value field=1 1234567890
{- "error": "string",
- "data": { }
}© . This site is unofficial and not affiliated with InfluxData Inc.