带你认识数仓的监控系统TopSQL
本文分享自华为云社区《GaussDB(DWS)TopSQL总结》,作者:nullptr_ 。
TopSQL 背景
TopSQL为DWS的监控系统,记录DWS中各个作业、算子级别的资源使用数据、耗时数据,包括下盘信息、内存、网络、耗时、警告、基础信息等作业执行的数据。
TopSQL 简介
TopSQL分为实时表和历史表,实时表主要展示系统当前的负载情况,历史表主要用于存储作业执行的历史情况。历史表主要用于历史问题的分析回溯和问题定位、实时表主要用来展示当前系统中作业执行情况,让系统现场更加直观,为运维工作带来了极大的方便。
TopSQL 功能介绍
主要视图

前提条件(参数介绍)
- enable_resource_track topsql开关,是否开始topsql功能
- resource_track_level 设置监控级别,query:类似于sql的explain输出信息,perf:类似于explain analyze输出信息,operator_reltime: 统计实时算子信息,operator:详细记录到每个算子的执行信息,并且层级为向下兼容 query->perf->operator_reltime->operator
- resource_track_cost topsql追踪执行时间大于等于resource_track_cost 的作业
- enable_track_record_sql 控制是否记录存储过程、匿名块内部的语句
- enable_track_record_subsql 控制是否记录存储过、匿名块内部语句
- resource_track_subsql_duration 过滤执行时间小于resource_track_subsql_duration的语句
字段含义介绍(重点功能作用)


类型介绍

值异常分析

当作业因为异常例如某DN挂了,作业会重新开始,topsql会记录两条记录
TopSQL 重点逻辑梳理剖析

在DN通过打桩定期记录作业的实时信息,并将记录定期发送至CN,并将信息定期存储至实时表中pgxc_wlm_session_statistics中,并定时将实时表中的作业落盘到历史表中pgxc_wlm_session_info中,此过程为了减少阻塞将记录放到无锁队列中,无锁队列提供了记录的CAS原子操作,然后定期读取无锁队列中的内容进行转储,pgxc_wlm_session_info通过start_time进行分区,每天一个分区,通过参数topsql_retention_time配置默认保留30个分区即30天的记录,定期对pgxc_wlm_session_info的分区进行清理、创建。此过程在dws中有单独的线程运行,对系统的影响较小。无锁队列大小是有上限的,如果转储处理的速度赶不上生成的速度那么作业也会被丢弃。
历史
当前pgxc_wlm_session_history只包含最近3分钟的数据且数据来源实际是pgxc_wlm_session_info。
带你认识数仓的监控系统TopSQL的更多相关文章
- 使用Oozie中workflow的定时任务重跑hive数仓表的历史分期调度
在数仓和BI系统的开发和使用过程中会经常出现需要重跑数仓中某些或一段时间内的分区数据,原因可能是:1.数据统计和计算逻辑/口径调整,2.发现之前的埋点数据收集出现错误或者埋点出现错误,3.业务数据库出 ...
- Greenplum数仓监控解决方案(开源版本)
Greenplum监控解决方案 基于Prometheus+Grafana+greenplum_exporter+node_exporter实现 关联图 一.基本概念 1.Prometheus Pr ...
- vivo 容器集群监控系统架构与实践
vivo 互联网服务器团队-YuanPeng 一.概述 从容器技术的推广以及 Kubernetes成为容器调度管理领域的事实标准开始,云原生的理念和技术架构体系逐渐在生产环境中得到了越来越广泛的应用实 ...
- 基于邮件系统的远程实时监控系统的实现 Python版
人生苦短,我用Python~ 界内的Python宣传标语,对Python而言,这是种标榜,实际上,Python确实是当下最好用的开发语言之一. 在相继学习了C++/C#/Java之后,接触Python ...
- C#实现完整的防盗自制监控系统
在您的手机中通知您家中的入侵者,并拍摄他们的照片 介绍 在本文中,我将展示一些DIY东西,用于安装监控系统,检测家中的入侵者,拍摄照片并通过手机通知您,必要时可以打电话给警察并提供照片以便快速识别 ...
- 数仓1.4 |业务数仓搭建| 拉链表| Presto
电商业务及数据结构 SKU库存量,剩余多少SPU商品聚集的最小单位,,,这类商品的抽象,提取公共的内容 订单表:周期性状态变化(order_info) id 订单编号 total_amount 订单金 ...
- HAWQ取代传统数仓实践(十九)——OLAP
一.OLAP简介 1. 概念 OLAP是英文是On-Line Analytical Processing的缩写,意为联机分析处理.此概念最早由关系数据库之父E.F.Codd于1993年提出.OLAP允 ...
- 树莓派 + Windows IoT Core 搭建环境监控系统
前言:Windows IoT 是微软为嵌入式开发板设计的一种物联网操作系统,运行Windows UWP(C# 开发),可以设计出丰富的交互界面,驱动GPIO,连接一些传感器做有意思的事,本文详细介绍如 ...
- Ganglia+Nagios监控系统
第1章 简介 ganglia是一款为HPC(高性能计算) 集群设计的可扩展性 的分布式监控系统,它可以监视和显示集群中节点的各种状态信息,他由运行在各个节点上的gmond守护进程来采集 CPU.内存. ...
- 运维开发实践——基于Sentry搭建错误日志监控系统
错误日志监控也可称为业务逻辑监控, 旨在对业务系统运行过程中产生的错误日志进行收集归纳和监控告警.似乎有那么点曾相识?没错... 就是提到的“APM应用性能监控”.但它又与APM不同,APM系统主要注 ...
随机推荐
- 可观测性数据收集集大成者 Vector 介绍
如果企业提供 IT 在线服务,那么可观测性能力是必不可少的."可观测性" 这个词近来也越发火爆,不懂 "可观测性" 都不好意思出门了.但是可观测性能力的构建却着 ...
- 【matplotlib 实战】--气泡图
气泡图是一种多变量的统计图表,可以看作是散点图的变形.与散点图不同的是,每一个气泡都表示三个维度的数据,除了像散点图一样有X,Y轴,气泡的大小可以表示另一个维度的数据.例如,x轴表示产品销量,y轴表示 ...
- 自定义MyBatis拦截器更改表名
by emanjusaka from https://www.emanjusaka.top/archives/10 彼岸花开可奈何 本文欢迎分享与聚合,全文转载请留下原文地址. 自定义MyBati ...
- 一、docker的安装及docker-compose安装
一. 安装docker 1.1安装 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun # https://get.d ...
- Sealos 云操作系统一键集成 runwasi,解锁 Wasm 的无限潜力
WebAssembly (通常缩写为 Wasm) 是一种为网络浏览器设计的低级编程语言.它旨在提供一种比传统的 JavaScript 更快.更高效的方式来执行代码,以弥补 JavaScript 在性能 ...
- MySQL安装、卸载与初始化
一.MySQL简介 1.MySQL是什么 MySQL 是一款安全.跨平台.高效的,并与 PHP.Java等主流编程语言紧密结合的关系型数据库管理系统.MySQL 的象征符号是一只名为 Sakila 的 ...
- 🔥🔥Java开发者的Python快速进修指南:自定义模块及常用模块
好的,按照我们平常的惯例,我先来讲一下今天这节课的内容,以及Java和Python在某些方面的相似之处.Python使用import语句来导入包,而Java也是如此.然而,两者之间的区别在于Pytho ...
- 0x02.加密和编码
识别算法编码类型 看密文位数 看密文特征(数字.字母.大小写.符号等) 看当前密文存在的地方(web.数据库.操作系统等) 密码存储加密 md5:16位和32位由0-9和a-f组成的字符串 ,该加密方 ...
- HarmonyOS第一课_构建更加丰富的页面
管理组件状态 概述 组件内的状态管理:@State 从父组件单向同步状态:@Prop 与父组件双向同步状态:@Link 跨组件层级双向同步状态:@Provide 和@Consume 概述 在应用中,界 ...
- C++ Qt开发:StatusBar底部状态栏组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QStatus ...