Documentation

InfluxQL 查询管理

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

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

本页面提供的命令和配置仅适用于 Influx 查询语言(InfluxQL)目前不存在等效的 Flux 命令和配置。有关最新的 Flux 文档,请参见 开始使用 Flux

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

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

语法

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: 查询运行的时间长度。查看 Query Language Reference 以获取关于InfluxDB数据库中时间单位的解释。

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

  • status: 查询的当前状态。

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

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

语法

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

KILL QUERY <qid>

InfluxDB企业集群: 在集群上终止查询时,您需要指定查询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语句可以处理的最大points数量。默认设置 (0) 允许SELECT语句处理无限数量的点。

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

ERR: max number of points reached

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

max-select-series

一个 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 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

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

有关如何开始的更多信息,请查看: