使用InfluxQL查询数据
使用InfluxQL(一种类似SQL的查询语言)与InfluxDB交互,并查询和分析您的时间序列数据。
在 InfluxDB 1.x 中,数据存储在 databases 和 retention policies 中。 在 InfluxDB OSS Cloud 中,数据存储在 buckets 中。由于 InfluxQL 使用 1.x 数据模型,在使用 InfluxQL 查询之前,必须将一个 bucket 映射到一个数据库和保留策略 (DBRP)。
要使用InfluxQL查询数据,请完成以下步骤:
InfluxQL 参考文档
有关完整的 InfluxQL 参考文档,请参见 InfluxQL 规范 for InfluxDB 2.x。
验证桶是否具有映射
要验证您要查询的桶是否映射到数据库和保留策略,请使用
influxCLI 或 InfluxDB API。有关示例,请参见 列出 DBRP 映射。如果您没有找到桶的 DBRP 映射,创建一个新的 DBRP 映射以映射未映射的桶。
为未映射的桶创建DBRP映射
- 使用
influxCLI或InfluxDB API手动为未映射的存储桶创建DBRP映射。 有关示例,请参见创建DBRP映射。
使用InfluxQL查询映射的桶
influx CLI 提供了一个InfluxQL shell,您可以在其中以交互式读取-评估-打印循环(REPL)方式执行InfluxQL查询。
如果您还没有这样做,请执行以下操作:
使用以下命令启动一个 InfluxQL shell:
influx v1 shell在InfluxQL shell中执行一个InfluxQL查询。
SELECT used_percent FROM "example-db"."example-rp"."example-measurement" WHERE host=host1有关更多信息,请查看如何 使用 InfluxQL shell。有关 DBRP 映射的更多信息,请参见 管理 DBRP 映射。
该InfluxDB 1.x 兼容性 API支持所有的 InfluxDB 1.x 客户端库和 InfluxDB Cloud 中的集成。
要使用 InfluxQL 查询映射的桶,请使用
/query1.x 兼容端点,并在请求中包含以下内容:- 请求方法:
GET - 头部:
- 授权: 参见 兼容性 API 认证
- Query parameters:
db: 1.x 数据库查询
rp: 1.x 保留策略查询 (如果没有指定保留策略,InfluxDB 使用指定数据库的默认保留策略)
q: URL编码的InfluxQL查询
对可能包含空格或其他特殊字符的查询参数进行URL编码。
curl --get http://localhost:8086/query?db=example-db \ --header "Authorization: Token YourAuthToken" \ --data-urlencode "q=SELECT used_percent FROM \"example-db\".\"example-rp\".\"example-measurement\" WHERE host=host1"默认情况下,
/query兼容性端点返回的结果为 JSON。- 请求方法:
(可选) 要将结果以 CSV 格式返回,请包含
Accept: application/csv头部。
有关DBRP映射的更多信息,请参见 Manage DBRP mappings。
InfluxQL 支持
InfluxDB OSS 2.x 支持以下 InfluxQL 语句和子句。请参见下面支持和不支持的查询。
支持的InfluxQL查询
DELETE*DROP MEASUREMENT*EXPLAIN ANALYZESELECT(只读)SHOW DATABASESSHOW SERIESSHOW MEASUREMENTSSHOW TAG KEYSSHOW FIELD KEYSSHOW SERIES EXACT CARDINALITYSHOW TAG KEY CARDINALITYSHOW FIELD KEY CARDINALITY
* 这些命令删除数据。
不支持的InfluxQL查询
SELECT INTOALTERCREATEDROP(有限支持)GRANTKILLREVOKESHOW SERIES CARDINALITY