InfluxDB执行语句管理(query management)

本文属于《 InfluxDB系列教程》文章系列,该系列共包括以下 17 部分:
  1. InfluxDB学习之InfluxDB的基本概念
  2. InfluxDB学习之InfluxDB的基本操作
  3. InfluxDB学习之InfluxDB的HTTP API写入操作
  4. InfluxDB学习之InfluxDB数据保留策略(Retention Policies)
  5. InfluxDB学习之InfluxDB连续查询(Continuous Queries)
  6. InfluxDB学习之InfluxDB的HTTP API查询操作
  7. InfluxDB学习之InfluxDB的关键概念
  8. InfluxDB学习之InfluxDB常用函数(一)聚合类函数
  9. InfluxDB学习之InfluxDB常用函数(二)选择类函数
  10. InfluxDB学习之InfluxDB常用函数(三)变换类函数
  11. InfluxDB学习之再说连续查询
  12. Influxdb原理详解
  13. InfluxDB安装后web页面无法访问的解决方案
  14. InfluxDB数据备份和恢复方法,支持本地和远程备份
  15. InfluxDB执行语句管理(query management)
  16. InfluxDB在windows下的安装和配置
  17. InfluxDB系列学习教程目录
系列详情请看:《 InfluxDB系列教程》:

InfluxDB系列教程,首发于Linux大学网(linuxdaxue.com),同步发表于等英博客(waitig.com),有问题欢迎加群【580487672】讨论!

在influxDB的实际使用中,我们可能需要对正在执行的SQL语句进行分析、处理,帮助我们来定位问题。

本文就来给大家介绍下如何在influxDB下管理正在执行的语句。

更多InfluxDB技术请加入《InfluxDB技术交流群:580487672(点击加入)》

注:本文示例均来自官方,仅做演示使用。

列出正在执行的语句—SHOW QUERIES

我们可以使用SHOW QUERIES命令来列出当前正在执行的语句,语法如下所示:

SHOW QUERIES

示例:

> SHOW QUERIES
qid      query                                                                           database          duration
37       SHOW QUERIES                                                                                      100368u
36       SELECT mean(myfield) FROM mymeas   mydb        3s

其中各列的说明:

qid    正在执行的语句的ID,我们可以使用 KILL QUERY命令来杀掉此命令。
query    命令内容
database   正在执行语句的数据库
duration 此语句当前执行的时长

停止当前正在执行的语句– KILL QUERY

KILL QUERY的语法如下所示:

KILL QUERY 

比如上文中,我们要停掉搜索出来的语句中PID为36的那个语句,则可以使用如下命令:

> KILL QUERY 36
>

这样,那条语句就被成功停止了,本命令没有任何返回值。

配置文件中的命令管理选项

在配置文件中对命令也有专门的配置项,接下来就给大家介绍下常用的几个配置项。

max-concurrent-queries

max-concurrent-queries项是配置最大的可执行的命令数,此项值为零则表示无限制。

如果你执行的命令数超过这个配置项的数量,则会报如下错误:

ERR: max concurrent queries reached
query-timeout

query-timeout项用来配置命令的超时时间,如果命令的执行时长超过了此时间,则influxDB会杀掉这条语句并报出如下错误:

ERR: query timeout reached
log-queries-after

log-queries-after用来配置执行时长为多少的语句会被记录为慢查询。配置为0则表示不会记录这些语句。

比如,改项配置为“1s”,则执行时长超过1秒的语句会被标记为慢查询,并记录在日志里。

[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)
max-select-point

max-select-point配置一次可查询出的数据量,因为在influxDB中一条数据看做一个点,因此这个配置叫每次可查询的最大的点数。

配置为0则表示无限制,如果查询出来的数量大于此项配置,则influxDB会杀掉这条语句并报出如下错误:

ERR: max number of points reached
max-select-series

max-select-series用来配置influxDB语句中最多可处理的series的数量,如果你的语句中要处理的series数量大于此配置,则influxDB不会执行这条语句并且会报出如下错误:

ERR: max select series count exceeded:  series

好了,有关InfluxDB管理执行语句的内容就先为大家介绍到这里,更多InfluxDB技术请加入《InfluxDB技术交流群:580487672(点击加入)》

转载于:https://www.cnblogs.com/waitig/p/7423702.html

你可能感兴趣的:(操作系统,数据库)