首页 > 其他分享 >数仓实时算子难以观测,快来试试算子级监控吧

数仓实时算子难以观测,快来试试算子级监控吧

时间:2023-11-21 11:22:23浏览次数:32  
标签:语句 数仓 视图 实时 监控 算子 执行 进度

本文分享自华为云社区《GaussDB(DWS)监控工具指南(四)算子级监控【绽放吧!GaussDB(DWS)云原生数仓】》,作者: 幕后小黑爪 。

随着数据量的增大和数据处理的复杂性增加,数据库系统的性能问题变得越来越突出。应用程序对数据库的访问频率和数据量也越来越大。因此,优化数据库系统的性能成为了数据库管理员和开发人员的重要任务。通过SQL性能调优,可以提高数据库系统的响应速度和吞吐量,减少资源消耗,提高系统的稳定性和可靠性,从而提高应用程序的性能和用户体验。目前GaussDB(DWS)已有的explain工具无法满足用户实时定位问题的需求,为此DWS推出了算子级监控,以解决实时算子难以观测的问题。

1. 需求描述

举个例子,用户下发语句后,无法知道当前语句的执行计划生成的是否合理,目前语句的执行进度和消耗资源等情况。如下图所示,用户仅能看到执行花费了多长时间,并不能看到语句后面执行的什么信息?算子是咋样运行的?每个算子怎么交互的,生成的计划是否合理,无法进行判断。

cke_114.png

为此,DWS提供了explain performance的方式进行事后分析,而explain performance需要将语句执行完后才能看到结果,对于某些新上业务的语句,不知道会运行多久,甚至说能不能运行出来结果都不知道,所以无法直接通过explain performance分析结果。

因此亟需一种实时观测语句算子运行的手段来确定执行计划的优化点,以便SQL调优。

2. 解决方案

针对这些情况,GaussDB(DWS)在新版本821新推出了算子监控,算子监控能看到语句具体运行的情况,能追踪到具体某个算子的进度以及消耗资源情况。使用步骤如下:

1)设置guc参数resource_track_level为operator_realtime级别,然后执行语句;

2)重新打开一个窗口,连接gaussdb,通过pgxc_wlm_operator_statistics查询集群所有打开算子监控的语句,又或者通过查询pg_stat_get_wlm_realtime_operator_info(queryid)可以获取到该queryid对应语句的信息。

select * from pgxc_wlm_operator_statistics;

注:该功能对性能有一定影响,执行基线测试,同样情况下可能会最大新增2%左右的性能劣化,建议用户在追踪性能问题时使用。

算子监控跟语句监控功能类似,同样包含的语句的静态信息和运行态信息。

1)语句静态信息是语句在真正执行前就已经由优化器生成的信息,如执行计划plan_node_name,queryid,预估行数estimated rows等信息。可用来分析生成的执行计划是否合适。

2)语句动态信息是语句在执行器中执行过程中所占用的资源信息,如算子执行进度progress、内存peak_memory、算子下盘spill_size、网络net_size、磁盘IO(read_bytes、write_bytes),CPU(cpu_time)等不同DN的实时的信息记录。可用来分析语句执行过程中的进度和资源消耗情况,通过该字段可以分析出语句在运行是消耗较久的在什么地方,便于后续优化。

3. 实际使用

我们下发某个查询,在另一个会话中查询算子视图,结果如下:

cke_115.png

1)当前算子进度:字段progress展示了当前算子的运行进度,对于第一个算子而言,该字段展示的是当前语句的整体进度。

2)不断刷新视图,能看到语句执行情况,观察进度介于(0,100)之间的进度算子,这些代表该算子正在运行。

3)观察当前算子实际消耗资源情况,判断可能阻塞的原因。

4. 总结

以往需要explain performance执行完毕后才能获取算子运行信息,现在通过该视图可以直接在运行期间获取,且该视图对结果集无影响。本文提供的视图可以支持用户对语句算子进行实时监控,能较为准确的反应语句的执行情况,通过观察运行时长较久的算子和消耗资源,可以判断计划生成是否合理,又或者通过进度字段观察语句运行进度可用来定位SQL性能问题。当然,该视图也许和其他运行态的视图结合使用,最终确定SQL性能较慢的原因,并采取措施进行调优。

 

点击关注,第一时间了解华为云新鲜技术~

 

标签:语句,数仓,视图,实时,监控,算子,执行,进度
From: https://www.cnblogs.com/huaweiyun/p/17846196.html

相关文章

  • 第七期 |《实时洞察 智能运营一用友企业绩效管理白皮书》解读
    在EPM领域,中国企业与国际企业相比最大的问题是:战略、计划、预算、报告分析、绩效等都是部门级独立应用,难以形成企业级管理合力。大型企业如何击破这一困局、从容迈向高质量发展?近日,用友正式发布主题为《实时洞察智能运营——用友企业绩效管理白皮书》。用友专家团齐力精研,基于事项......
  • 小时级实时数据仓库构建方法_A项目
    项目描述天亮舆情是一个简单易用的互联网舆论分析平台。通过对互联网常见的舆论信息传播媒介进行采集分析,提供了实时舆情、情感分析、地域统计及事件脉络等数据与分析能力,助力客户把握时事脉搏。用户只需设置关键词即可实现对全互联网的信息进行检测分析。通过该产品可以满足用户......
  • 14_DS1302实时时钟
    DS1302实时时钟介绍引脚定义和应用电路内部结构框图寄存器定义时序定义BCD码LCD1602显示年月日时分秒星期信息DS1302.c#include<REGX52.H>#include"DS1302.h"sbitDS1302_SCLK=P3^6;sbitDS1302_IO=P3^4;sbitDS1302_CE=P3^5;#defineDS1302_SECOND0x80......
  • 计算子弹的扇形轨迹
    <?php//定义扇形的圆心坐标和半径$centerX=0;//扇形圆心X坐标$centerY=0;//扇形圆心Y坐标$radius=10;//扇形半径//定义子弹的起始坐标和速度$startX=5;//子弹起始X坐标$startY=5;//子弹起始Y坐标$speed=1;//子弹速度//计算子弹的初......
  • 花 200 元测试 1300 个实时数据同步任务
    背景对于将数据作为重要生产资料的公司来说,超大规模的数据迁移同步系统(1k、5k、10k条同步任务)是刚需。本文以此为出发点,介绍近期CloudCanal所做的一个容量测试:在单个CloudCanal集群上创建1300实时任务,验证系统是否健康。这个健康度主要包括同步任务是否运行正常、页......
  • 服务器实时监控部署
    3个组件:node_export、prometheus、grafana   第一步:部署到所需监控的服务器上(node_export需要部署到每个服务器,剩余两个只需部署一个服务器即可)第二步:解压所部署的.tar.gz包 :tar-zxvf压缩包名路径第三步:进入解压后的node_export目录下,执行:  nohup./node_export......
  • 【图像处理】空间域滤波算子
    Robert算子: Prewitt算子:  Sobel算子: Laplace算子: Canny算子: ......
  • 边缘计算物联网网关实现高效、实时、安全的物联网连接-天拓四方分享
    边缘计算物联网网关是一种能够将物联网设备连接到云端或互联网的硬件设备。它具有强大的数据处理和传输能力,可以在本地进行数据预处理,并通过网络将数据传输到云端或互联网。同时,它还支持多种通信协议和接口,可以与不同类型的物联网设备进行连接。随着物联网(IoT)设备的不断增加,如何实......
  • app在线实时更新(详解)
    由于Uni-app的代码是针对不同平台(iOS、Android、H5等)进行开发的,因此具体的代码实现会因平台而异。以下是一种可能的实现方式,仅供参考:后端服务器(示例代码使用PythonFlask框架):  fromflaskimportFlask,jsonify importos   app=Flask(__name_......
  • 实时化与Serverless是开源大数据3.0时代的必然选择
    近日在2023云栖大会上,阿里云开源大数据产品进行了年度发布:E-MapReduce、Elasticsearch 等开源大数据产品全面 Serverless 化;创新性推出 Flink 与 Paimon 搭档的新一代流式湖仓;拥抱 AI,推出 Milvus 全托管服务,升级智能运维工具 EMR Doctor 以及 Flink Advisor。核心组......