Documentation

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 开源版本现已公开发布 Alpha 版

InfluxDB 3 开源版本现已可用于 Alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 Alpha 版本的一部分。

InfluxDB 3 Core 是我们新的开源产品。它是用于时间序列和事件数据的最新数据引擎。InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度的安全性。

有关如何入门的更多信息,请查看