使用 InfluxQL 查询数据
使用 InfluxQL(一种类似 SQL 的查询语言)与 InfluxDB 交互,并查询和分析您的时序数据。
在 InfluxDB 1.x 中,数据存储在 数据库 和 保留策略 中。在 InfluxDB OSS 2.7 中,数据存储在 Bucket 中。由于 InfluxQL 使用 1.x 数据模型,因此 Bucket 必须映射到数据库和保留策略 (DBRP) 才能使用 InfluxQL 进行查询。
要使用 InfluxQL 查询数据,请完成以下步骤
InfluxQL 参考文档
有关完整的 InfluxQL 参考文档,请参阅 InfluxDB 2.x 的 InfluxQL 规范。
验证 Bucket 是否具有映射
要验证您要查询的 Bucket 是否映射到数据库和保留策略,请使用
influx
CLI 或 InfluxDB API。 有关示例,请参阅 列出 DBRP 映射。如果您没有找到 Bucket 的 DBRP 映射,请创建新的 DBRP 映射以映射未映射的 Bucket。
为未映射的 Bucket 创建 DBRP 映射
- 使用
influx
CLI 或 InfluxDB API 手动为未映射的 Bucket 创建 DBRP 映射。 有关示例,请参阅 创建 DBRP 映射。
使用 InfluxQL 查询映射的 Bucket
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 2.7 中的所有 InfluxDB 1.x 客户端库和集成。
要使用 InfluxQL 查询映射的 Bucket,请使用
/query
1.x 兼容性端点,并在您的请求中包含以下内容- 请求方法:
GET
- 标头
- Authorization: 请参阅 兼容性 API 身份验证
- 查询参数
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 映射的更多信息,请参阅管理 DBRP 映射。
InfluxQL 支持
InfluxDB OSS 2.x 支持以下 InfluxQL 语句和子句。请参阅下面支持和不支持的查询。
支持的 InfluxQL 查询
DELETE
*DROP MEASUREMENT
*EXPLAIN ANALYZE
SELECT
(只读)SHOW DATABASES
SHOW SERIES
SHOW MEASUREMENTS
SHOW TAG KEYS
SHOW FIELD KEYS
SHOW SERIES EXACT CARDINALITY
SHOW TAG KEY CARDINALITY
SHOW FIELD KEY CARDINALITY
* 这些命令会删除数据。
不支持的 InfluxQL 查询
SELECT INTO
ALTER
CREATE
DROP
(有限支持)GRANT
KILL
REVOKE
SHOW SERIES CARDINALITY
此页面是否对您有帮助?
感谢您的反馈!