使用 InfluxDB API 查询
InfluxDB v2 API 为与 InfluxDB 的所有交互提供了一个程序化接口。 要查询 InfluxDB 2.7,请执行以下操作之一
- 向
/api/v2/query
端点发送 Flux 查询请求。 - 向 /query 1.x 兼容性 API 发送 InfluxQL 查询请求。
在您的请求中,设置以下内容
- 通过
org
或orgID
URL 参数指定您的组织。 Authorization
标头设置为Token
+ 您的 API 令牌。Accept
标头设置为application/csv
。Content-type
标头设置为application/vnd.flux
(仅限 Flux) 或application/json
(Flux 或 InfluxQL)。- 使用请求的原始数据在 Flux 或 InfluxQL 中查询。
使用 gzip 压缩查询响应
要压缩查询响应,请将 Accept-Encoding
标头设置为 gzip
。 这可以节省网络带宽,但会增加服务器端负载。
我们建议仅在大于 1.4 KB 的响应上使用 gzip 压缩。 如果响应小于 1.4 KB,则 gzip 编码始终会返回 1.4 KB 的响应,而与未压缩的响应大小无关。 1500 字节 (~1.4 KB) 是公共网络的最大传输单元 (MTU) 大小,也是网络层允许的最大数据包大小。
Flux - 示例查询请求
以下是向 InfluxDB 2.7 发送 Flux 查询的 curl
请求示例
curl --request POST \
http://localhost:8086/api/v2/query?orgID=INFLUX_ORG_ID \
--header 'Authorization: Token INFLUX_TOKEN' \
--header 'Accept: application/csv' \
--header 'Content-type: application/vnd.flux' \
--data 'from(bucket:"example-bucket")
|> range(start: -12h)
|> filter(fn: (r) => r._measurement == "example-measurement")
|> aggregateWindow(every: 1h, fn: mean)'
curl --request POST \
http://localhost:8086/api/v2/query?orgID=INFLUX_ORG_ID \
--header 'Authorization: Token INFLUX_TOKEN' \
--header 'Accept: application/csv' \
--header 'Content-type: application/vnd.flux' \
--header 'Accept-Encoding: gzip' \
--data 'from(bucket:"example-bucket")
|> range(start: -12h)
|> filter(fn: (r) => r._measurement == "example-measurement")
|> aggregateWindow(every: 1h, fn: mean)'
InfluxQL - 示例查询请求
以下是向 InfluxDB 2.7 发送 InfluxQL 查询的 curl
请求示例
curl --request -G http://localhost:8086/query?orgID=INFLUX_ORG_ID&database=MyDB&retention_policy=MyRP \
--header 'Authorization: Token INFLUX_TOKEN' \
--header 'Accept: application/csv' \
--header 'Content-type: application/json' \
--data-urlencode "q=SELECT used_percent FROM example-db.example-rp.example-measurement WHERE host=host1"
curl --request -G http://localhost:8086/query?orgID=INFLUX_ORG_ID&database=MyDB&retention_policy=MyRP \
--header 'Authorization: Token INFLUX_TOKEN' \
--header 'Accept: application/csv' \
--header 'Content-type: application/json' \
--header 'Accept-Encoding: gzip' \
--data-urlencode "q=SELECT used_percent FROM example-db.example-rp.example-measurement WHERE host=host1"
InfluxDB 以带注释的 CSV 格式返回查询结果。
此页面是否对您有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一份子! 我们欢迎并鼓励您提供关于 InfluxDB 和本文档的反馈和错误报告。 要获得支持,请使用以下资源
拥有年度或支持合同的客户可以联系 InfluxData 支持。