InfluxQL 查询管理
此页面记录了 InfluxDB OSS 的早期版本。 InfluxDB OSS v2 是最新的稳定版本。 请参阅 InfluxDB v2 文档。
使用以下方法管理您的 InfluxQL 查询
- SHOW QUERIES 以识别当前正在运行的查询
- KILL QUERIES 以停止系统过载的查询
- 配置设置 以防止和停止执行低效查询
本页提供的命令和配置仅适用于 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
此页是否对您有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一份子! 我们欢迎并鼓励您提供有关 InfluxDB 和本文档的反馈和错误报告。 要获得支持,请使用以下资源
拥有年度或支持合同的客户可以联系 InfluxData 支持。