文档文档

使用 InfluxQL 查询数据

使用 InfluxQL(一种类似 SQL 的查询语言)与 InfluxDB 交互,并查询和分析您的时序数据。

在 InfluxDB 1.x 中,数据存储在 数据库保留策略 中。在 InfluxDB OSS 2.7 中,数据存储在 Bucket 中。由于 InfluxQL 使用 1.x 数据模型,因此 Bucket 必须映射到数据库和保留策略 (DBRP) 才能使用 InfluxQL 进行查询。

要使用 InfluxQL 查询数据,请完成以下步骤

  1. 验证 Bucket 是否具有映射.
  2. 为未映射的 Bucket 创建 DBRP 映射.
  3. 使用 InfluxQL 查询映射的 Bucket.

InfluxQL 参考文档

有关完整的 InfluxQL 参考文档,请参阅 InfluxDB 2.x 的 InfluxQL 规范

验证 Bucket 是否具有映射

  1. 要验证您要查询的 Bucket 是否映射到数据库和保留策略,请使用 influx CLIInfluxDB API有关示例,请参阅 列出 DBRP 映射

  2. 如果您没有找到 Bucket 的 DBRP 映射,请创建新的 DBRP 映射以映射未映射的 Bucket。

为未映射的 Bucket 创建 DBRP 映射

使用 InfluxQL 查询映射的 Bucket

influx CLI 提供了一个 InfluxQL shell,您可以在其中以交互式读取-求值-打印循环 (REPL) 方式执行 InfluxQL 查询。

  1. 如果您尚未执行以下操作,请执行以下操作

  2. 使用以下命令启动 InfluxQL shell

    influx v1 shell
    
  3. 在 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 客户端库和集成。

  1. 要使用 InfluxQL 查询映射的 Bucket,请使用 /query 1.x 兼容性端点,并在您的请求中包含以下内容

    • 请求方法: GET
    • 标头
    • 查询参数
      • 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 格式返回结果。

  2. (可选)要以 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

此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像现在这样使用它,而无需更改任何代码。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、最近数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 基于 Core 的基础构建,增加了高可用性、读取副本、增强的安全性以及数据压缩功能,以实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看