使用 InfluxDB v1 HTTP 查询 API 和 InfluxQL
使用 InfluxDB v1 HTTP API /query 端点和 InfluxQL 查询存储在 InfluxDB Cloud Serverless 中的数据,并以 JSON 或 CSV 格式返回结果。/query 端点为您带到 InfluxDB 3 的 InfluxDB 1.x 工作负载提供了兼容性。
在您使用v1查询API之前, 数据库和保留策略必须映射到存储桶。
航班查询不使用DBRP映射
在使用 Flight RPC 或 Flight SQL 查询 InfluxDB 时,指定 bucket name。 Flight 查询不使用 DBRP 映射。 查看如何 开始使用 Flight 和 SQL 或 InfluxQL 查询。
查询 v1 /query 端点
要使用HTTP和InfluxQL进行查询,请向v1 /query端点发送一个GET或POST请求。
GET https://cloud2.influxdata.com/query
参数
对于 InfluxDB Cloud Serverless v1 API /query 请求,设置参数如下面表格所列:
| 参数 | 允许在 | 被忽略 | 值 |
|---|---|---|---|
chunked | 查询字符串 | 已尊重 | 以流式批次而不是单个响应返回点。如果设置为 true,InfluxDB 将按系列或每 10,000 个点分块响应,以先发生者为准。 |
chunked_size | 查询字符串 | 已遵守 | 需要将 chunked 设置为 true。如果设置为特定值,InfluxDB 将按系列或按此点数进行分块响应。 |
db | 查询字符串 | 已授权 | 数据库名称 映射到一个桶 |
epoch | 查询字符串 | 荣誉 | 时间戳精度 |
pretty | 查询字符串 | 被忽略 | 不适用 |
rp | 查询字符串 | 荣誉 | 保留策略 映射到一个桶 |
q | 查询字符串 | 被尊敬的 | InfluxQL |
Authorization 头或者 u 和 p | 令牌 |
将 v1 API 工作负载迁移到 InfluxDB Cloud Serverless 时,您需要在客户端配置或代码中调整请求参数。
时间戳精度
使用以下值之一作为时间戳精度 (epoch):
ns: 纳秒us: 微秒ms: 毫秒s: 秒m: 分钟h: 小时
授权
要授权查询请求,请包含一个具有读取权限的token。
使用Token身份验证或v1兼容的用户名和密码身份验证在请求中包含一个token。
以JSON或CSV格式返回结果
默认情况下,/query 端点以 JSON 格式返回结果。
要以CSV格式返回结果,请在请求中包含Accept头部,使用application/csv或text/csv MIME类型,例如:
curl --get https://cloud2.influxdata.com/query \
--header "Authorization: Token DATABASE_TOKEN" \
--header "Accept: application/csv" \
--data-urlencode "db=DATABASE_NAME" \
--data-urlencode "q=SELECT * FROM home"
用于查询v1 API的工具
交互式客户端
要从命令行交互式地测试InfluxDB v1 API查询,使用常见的HTTP客户端,如cURL和Postman。
curl https://cloud2.influxdata.com/query \
--header "Authorization: Token API_TOKEN" \
--data-urlencode "db=DATABASE_NAME" \
--data-urlencode "q=SELECT * FROM home"
替换以下内容:
curl --get https://cloud2.influxdata.com/query \
-user "":"API_TOKEN" \
--data-urlencode "db=DATABASE_NAME" \
--data-urlencode "q=SELECT * FROM home"
curl --get https://cloud2.influxdata.com/query \
--data-urlencode "u=ignored" \
--data-urlencode "p=DATABASE_TOKEN" \
--data-urlencode "db=DATABASE_NAME" \
--data-urlencode "q=SELECT * FROM home"
故障排除
排查在使用HTTP API查询InfluxDB Cloud Serverless时遇到的问题和错误。
数据库未找到
如果查询请求中不存在 db=DATABASE_NAME 和 rp=RETENTION_POLICY_NAME 组合的 DBRP,响应主体将包含错误消息,例如 "database not found:..."。
配额和限制错误
HTTP API /query 请求受限于 使用配额和限制。