文档文档

InfluxQL 查询管理

此页面记录了 InfluxDB OSS 的早期版本。 InfluxDB OSS v2 是最新的稳定版本。请参阅 InfluxDB v2 文档

使用以下内容管理您的 InfluxQL 查询

此页面上提供的命令和配置仅适用于 Influx 查询语言 (InfluxQL)目前不存在等效的 Flux 命令和配置集。有关最新的 Flux 文档,请参阅 Flux 入门

使用 SHOW QUERIES 列出当前正在运行的查询

SHOW QUERIES 列出您的 InfluxDB 实例上所有当前正在运行的查询的查询 ID、查询文本、相关数据库和持续时间。

语法

SHOW QUERIES

示例

> SHOW QUERIES
qid	  query                              database   duration   status
---   -----                              --------   --------   ------
37    SHOW QUERIES                                  100368u    running
36    SELECT mean(myfield) FROM mymeas   mydb       3s         running
输出说明
  • qid:查询的 ID 号。将此值与 KILL - QUERY 一起使用。

  • query:查询文本。

  • database:查询目标数据库。

  • duration:查询已运行的时间长度。有关 InfluxDB 数据库中时间单位的说明,请参阅 查询语言参考

    SHOW QUERIES 可能会输出已终止的查询,并继续增加其持续时间,直到从内存中清除查询记录。

  • status:查询的当前状态。

使用 KILL QUERY 停止当前正在运行的查询

KILL QUERY 告诉 InfluxDB 停止运行相关查询。

语法

其中 qid 是查询 ID,显示在 SHOW QUERIES 输出中

KILL QUERY <qid>

InfluxDB Enterprise 集群: 要终止集群上的查询,您需要指定查询 ID (qid) 和 TCP 主机(例如,myhost:8088),可在 SHOW QUERIES 输出中找到。

KILL QUERY <qid> ON "<host>"

成功的 KILL QUERY 查询不返回任何结果。

示例

-- kill query with qid of 36 on the local host
> KILL QUERY 36
>
-- kill query on InfluxDB Enterprise cluster
> KILL QUERY 53 ON "myhost:8088"
>

查询管理的配置设置

以下配置设置位于配置文件的 coordinator 部分。

max-concurrent-queries

您的实例上允许的最大并发运行查询数。默认设置 (0) 允许无限数量的查询。

如果您超过 max-concurrent-queries,InfluxDB 不会执行查询并输出以下错误

ERR: max concurrent queries reached

query-timeout

查询在 InfluxDB 终止查询之前可以在您的实例上运行的最长时间。默认设置 ("0") 允许查询在没有时间限制的情况下运行。此设置是 持续时间文字

如果您的查询超过查询超时,InfluxDB 将终止查询并输出以下错误

ERR: query timeout reached

log-queries-after

查询可以运行的最长时间,超过此时间后,InfluxDB 会使用 Detected slow query 消息记录查询。默认设置 ("0") 永远不会告诉 InfluxDB 记录查询。此设置是 持续时间文字

log-queries-after 设置为 "1s" 的示例日志输出

[query] 2016/04/28 14:11:31 Detected slow query: SELECT mean(usage_idle) FROM cpu WHERE time >= 0 GROUP BY time(20s) (qid: 3, database: telegraf, threshold: 1s)

qid 是查询的 ID 号。将此值与 KILL QUERY 一起使用。

日志输出文件的默认位置是 /var/log/influxdb/influxdb.log。但是,在使用 systemd 的系统(大多数现代 Linux 发行版)上,这些日志将输出到 journalctl。您应该能够使用以下命令查看 InfluxDB 日志:journalctl -u influxdb

max-select-point

SELECT 语句可以处理的最大 数。默认设置 (0) 允许 SELECT 语句处理无限数量的点。

如果您的查询超过 max-select-point,InfluxDB 将终止查询并输出以下错误

ERR: max number of points reached

InfluxDB 每秒检查一次点数(因此超过最大值的查询不会立即中止)。

max-select-series

SELECT 语句可以处理的最大 序列 数。默认设置 (0) 允许 SELECT 语句处理无限数量的序列。

如果您的查询超过 max-select-series,InfluxDB 不会执行查询并输出以下错误

ERR: max select series count exceeded: <query_series_count> series

max-select-buckets

查询可以处理的最大 GROUP BY time() 桶数。默认设置 (0) 允许查询处理无限数量的桶。

如果您的查询超过 max-select-buckets,InfluxDB 不会执行查询并输出以下错误

ERR: max select bucket count exceeded: <query_bucket_count> buckets

此页是否对您有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

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

有关更多信息,请查看