更新时间:2024-12-11 GMT+08:00

Doris慢查询语句监控

操作场景

Doris作为一个ROLAP模式的数据库,底层需依赖强大的关系型数据库引擎作为支撑。高并发、聚合查询等是常见的查询场景,但由于MRS Doris不支持慢查询管理,缺少运维监控能力,在实际问题定界过程中无法可视化地获取查询SQL的执行信息。因此需要新增Doris慢查询管理功能来提高Doris的运维监控能力。

需开启Doris慢查询功能才能在Manager界面可视化显示并管理Doris慢查询信息。默认情况下,为了减少慢查询对环境资源的影响,Doris慢查询功能是关闭的,可通过配置自定义参数“query_history_enable”开启该功能。

该功能仅适用于MRS 3.5.0及之后版本集群。

前提条件

  • 已创建包含Doris服务的集群,集群内各服务运行正常。
  • 待连接Doris数据库的节点与MRS集群网络互通。
  • 已安装MySQL客户端,相关操作可参考使用MySQL客户端连接Doris

开启Doris慢查询功能

  1. 登录FusionInsight Manager,选择“集群 > 服务 > Doris > 配置 > 全部配置 > FE(角色) > 自定义”。
  2. 在自定义参数“fe.conf.customized.configs”中新增“query_history_enable”参数,值为“true”。
  3. 单击“保存”,单击“确定”保存配置。
  4. 单击“实例”,勾选受影响的FE实例,选择“更多 > 重启实例”,输入当前用户密码并单击“确定”,重启FE实例使配置生效。
  5. 在MySQL客户端连接Doris后,执行以下命令即可查看Doris已执行的慢查询语句:

    select * from __internal_schema.query_history;

  6. 在FusionInsight Manager界面,选择“集群 > 服务 > Doris > 查询管理”,即可查看正在进行的慢查询已经结束的查询,还可以根据图表查看前Top 10的执行慢查询的用户名、提交慢SQL语句的客户端IP及慢查询语句,其中:

    • Doris集群中Top 10使用的用户:用于统计登录Doris客户端执行慢查询排前TOP 10的Doris用户。
    • Doris集群中Top 10使用的IP地址:用于统计登录Doris客户端执行慢查询排前TOP 10的客户端IP。
    • Doris集群中Top 10使用的查询语句:用于统计在Doris客户端执行慢SQL频率排前TOP 10的慢查询SQL语句。

正在进行的慢查询

当前还在执行且没有返回结果的慢SQL语句信息可以通过该界面查询。

  • 慢查询菜单路径

    登录FusionInsight Manager,选择“集群 > 服务 > Doris > 查询管理”,单击“正在进行的慢查询”页签,相关参数介绍请参见表2

  • 慢查询过滤条件

    选择对应的过滤条件,输入查询条件值进行过滤查询。

    表1 慢查询界面过滤条件

    条件

    参数说明

    慢查询运行时长大于

    按照慢查询SQL语句查询累计时长过滤查询。

    支持时长大于:3(s)、9(s)、15(s)、25(s)。

    按查询id

    根据查询界面对应慢查询语句的“查询id”字段过滤查询。

    支持按照“查询id”的部分值进行模糊查询,例如,查询ID为“111-222-333-444-555”,则输入“111-222”或“-222-333”也能查询到。

    按用户查询

    对应执行慢查询SQL的Doris用户。

    支持按照用户名的部分值进行模糊查询。

    按客户端IP查询

    对应慢查询SQL语句的客户端IP。

    支持按照客户端IP的部分值进行模糊查询,例如,客户端IP为“192.168.0.1”,则输入“192.168”或“192.168.0”也能查询到。

已经结束的查询

已经执行完成并且已返回结果的慢查询SQL语句信息可以通过该界面查询。

界面访问路径:登录FusionInsight Manager,选择“集群 > 服务 > Doris > 查询管理”,单击“已经结束的查询”页签。

界面的参数说明参考表2,过滤条件说明参考表1说明。

慢查询参数说明

表2 慢查询参数说明

参数名称

参数说明

查询id

内部生成的唯一ID。

查询语句

具体慢查询的SQL语句。

开始时间

执行慢查询SQL语句的开始时间。

结束时间

执行慢查询SQL语句的结束时间。

数据库

慢查询语句中表所在的数据库名称。

实例名称

仅在“正在进行的慢查询”页签显示,表示执行当前慢SQL查询任务的FE实例节点。

占用的内存空间

仅在“已经结束的查询”页签显示,执行慢SQL消耗的内存空间大小,单位是字节。

查询时长

慢查询SQL语句当前累计执行的时间,单位是秒。

用户

执行慢查询SQL语句的Doris用户。

客户端IP

提交该慢查询SQL语句的客户端IP。

状态

慢查询SQL语句的执行状态,包括:

  • 正在运行:正在运行的慢查询SQL语句。
  • 已取消:在“正在进行的慢查询”页签中单击慢查询SQL语句“操作”列的“终止”,即可结束对应慢查询SQL语句。
  • 已结束:已经正常运行完成的慢查询SQL语句。

操作

仅在“正在进行的慢查询”页签显示,表示当前查询出来的慢SQL语句,可以单击“终止”结束该慢SQL语句查询。