利用 DataWorks 数据推送定期推播 Hologres Query 诊断信息

本文涉及的产品
大数据开发治理平台DataWorks,资源组抵扣包 750CU*H
简介: DataWorks 近期上线了数据推送功能,能够将数据库查询的数据组织后推送到各渠道 (如钉钉、飞书、企业微信及 Teams),除了能将业务数据组织后推送,也能将数据库自身提供的监控数据组织后推送,这边我们就以 Hologres 为例,定期推播 Hologres 的慢 Query、数据访问量变化等信息,帮助用户掌握 Hologres 状态。

前言

DataWorks 近期上线了数据推送功能,能够将数据库查询的数据组织后推送到各渠道 (如钉钉、飞书、企业微信及 Teams),除了能将业务数据组织后推送,也能将数据库自身提供的监控数据组织后推送,这边我们就以 Hologres 为例,定期推播 Hologres 的慢 Query、数据访问量变化等信息,帮助用户掌握 Hologres 状态。


效果图


以下为一段时间内慢 Query 的信息整理,并推送到钉群、飞书、企业微信或 Teams



以下就列出几个 Hologres 诊断 Query推送的例子供参考:

实践:查看制造最多慢 Query 的使用者


查询制造最多慢 Query 的使用者,也可以更改 SQL 查询前十名最多慢 Query 数的用户。


以下为 SQL 内容

-- 查出慢 query 最多的 user
SELECT  usename as topuser,
        count(1) as topuser_counts
FROM    hologres.hg_query_log
WHERE   query_start >= '${date_start}'
AND     query_start < '${date_end}'
AND     duration > 1000
group by usename
order by topuser_counts desc
LIMIT   1
;
-- 统计前 50 笔慢 query
SELECT  usename
        ,datname
        ,duration
        ,application_name
FROM    hologres.hg_query_log
WHERE   query_start >= '${date_start}'
AND     query_start < '${date_end}'
AND     duration > 1000
order by duration desc
LIMIT   50
;


以下为推送内容设定


修改耗时的颜色条件判断


推送设置

image.png


推送结果


实践:查询近 12 小时消耗比较高的 Query


查询最近某个时间段(如近12小时内)消耗比较高的 Query,也可以根据业务需求修改具体时间,查询目标时间段消耗比较高的Query。(Query ID 可以用来定位,并在 HoloWeb 上查询)


以下为 SQL 内容

SELECT status AS "状态",
       duration AS "耗时(ms)",
       query_start AS "开始时间",
       (read_bytes/1048576)::text || ' MB' AS "读取量",
       (memory_bytes/1048576)::text || ' MB' AS "内存",
       (shuffle_bytes/1048576)::text || ' MB' AS "Shuffle",
       (cpu_time_ms/1000)::text || ' s' AS "CPU时间",
       physical_reads as "读盘",
       query_id as "QueryID",
       query::char(30)
 FROM hologres.hg_query_log
 WHERE query_start >= now() - interval '12 hour'
 and duration > 1000
 ORDER BY duration DESC,
          read_bytes DESC,
          shuffle_bytes DESC,
          memory_bytes DESC,
          cpu_time_ms DESC,
          physical_reads DESC
LIMIT 100;


以下为推送内容设定


推送结果


实践:查看最近 3 小时内每小时的 Query 访问量和数据读取总量

查看最近 3 小时内每小时的 Query 访问量和数据读取总量,用于对比判断每个小时是否有数据量变化。


以下为 SQL 内容

SELECT
    date_trunc('hour', query_start) AS query_start,
    count(1) AS query_count,
    sum(read_bytes/1048576)::text || ' MB' AS read_MB,
    sum(cpu_time_ms/1000)::text || ' s' AS cpu_time_s
FROM
    hologres.hg_query_log
WHERE
    query_start >= now() - interval '3 h'
GROUP BY 1;


以下为推送内容设定



推送结果



实践:查看昨日新增的 Query 数量

查看昨日新增的 Query 数量,时间区段可以更改 SQL,如改为上周、上个月等。


以下为 SQL 内容

SELECT
    COUNT(1) as "increse_queries"
FROM ( SELECT DISTINCT
        t1.digest
    FROM
        hologres.hg_query_log t1
    WHERE
        t1.query_start >= CURRENT_DATE - INTERVAL '1 day'
        AND t1.query_start < CURRENT_DATE
        AND NOT EXISTS (
            SELECT
                1
            FROM
                hologres.hg_query_log t2
            WHERE
                t2.digest = t1.digest
                AND t2.query_start < CURRENT_DATE - INTERVAL '1 day')
        AND digest IS NOT NULL
 ) AS a;


以下为推送内容设定



实践:查看与昨天同一时间对比过去 3 小时的数据访问量情况


查看与昨天同一时间对比过去3小时的数据访问量情况,用于判断相较于昨日是否有数据量访问变化。


以下为 SQL 内容

SELECT
    query_date,
    count(1) AS query_count,
    sum(read_bytes) AS read_bytes,
    sum(cpu_time_ms) AS cpu_time_ms
FROM
    hologres.hg_query_log
WHERE
    query_start >= now() - interval '180min'
GROUP BY
    query_date
UNION ALL
SELECT
    query_date,
    count(1) AS query_count,
    sum(read_bytes) AS read_bytes,
    sum(cpu_time_ms) AS cpu_time_ms
FROM
    hologres.hg_query_log
WHERE
    query_start >= now() - interval '1d 180min'
    AND query_start <= now() - interval '1d'
GROUP BY
    query_date;



以下为推送内容设定


推送结果



实践:查询最近 30 分钟 Query 各阶段耗时比较高的 Query


查询最近时间段(如最近 30 分钟)Query 各阶段耗时比较高的 Query。您也可以根据业务需求修改具体时间,查询目标时间段 Query 各阶段耗时比较高的 Query。


以下为 SQL 内容

SELECT
    status AS "状态",
    duration AS "耗时(ms)",
    optimization_cost AS "优化耗时(ms)",
    start_query_cost AS "启动耗时(ms)",
    get_next_cost AS "执行耗时(ms)",
    duration - optimization_cost - start_query_cost - get_next_cost AS "其他耗时(ms)",
    query_id AS "QueryID"
FROM
    hologres.hg_query_log
WHERE
    query_start >= now() - interval '30 min'
ORDER BY
    duration DESC,
    start_query_cost DESC,
    optimization_cost,
    get_next_cost DESC,
    duration - optimization_cost - start_query_cost - get_next_cost DESC
LIMIT 100;


以下为推送内容设定


推送结果


实践:查询最先失败的 Query


查询一段时间内最先失败的 Query,可设定在系统初始化前后,帮助定位问题。


以下为 SQL 内容

SELECT
    status AS "状态",
    regexp_replace(message, '\n', ' ')::char(150) AS "报错信息",
    duration AS "耗时(ms)",
    query_start AS "开始时间",
    query_id AS "QueryID",
    query::char(100) AS "Query"
FROM
    hologres.hg_query_log
WHERE
    query_start BETWEEN '2024-07-10 17:00:00'::timestamptz AND '2024-07-10 17:42:00'::timestamptz + interval '2 min'
    AND status = 'FAILED'
ORDER BY
    query_start ASC
LIMIT 100;


以下为推送内容设定

image.png


推送结果




小结

Hologres 提供 Query Logs 查询运行的状态,能利用此数据加工后,透过 DataWorks 数据推送推至渠道。相同地,许多数据库也提供了 Logs 信息供查询,如 MySQLPostgreSQL 等,皆能利用引擎储存的 Logs 再透过 DataWorks 数据推送推至渠道方便监控,提升引擎运行态的质量。



相关文章

数据推送功能详细介绍 https://help.aliyun.com/zh/dataworks/user-guide/push-data

数据开发工作流 + 数据推送介绍 https://help.aliyun.com/zh/dataworks/user-guide/best-practice-combining-data-push-with-data-development-workflow

使用 DataWorks 建立每日天气预报推送 https://developer.aliyun.com/article/1566970

语雀+通义千问+DataWorks,让AI定期推送每周总结 https://developer.aliyun.com/article/1566971

利用 DataWorks 数据推送定期推播 ClickHouse Query 诊断信息 https://developer.aliyun.com/article/1567458

Hologres 查看 Query Logs https://help.aliyun.com/zh/hologres/user-guide/query-and-analyze-slow-query-logs#section-4g5-hg4-dhj








相关实践学习
基于Hologres轻量实时的高性能OLAP分析
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
目录
相关文章
|
2月前
|
SQL 分布式计算 DataWorks
破界·融合·进化:解码DataWorks与Hologres的湖仓一体实践
基于阿里云DataWorks与实时数仓Hologres,提供统一的大数据开发治理平台与全链路实时分析能力。DataWorks支持多行业数据集成与管理,Hologres实现海量数据的实时写入与高性能查询分析,二者深度融合,助力企业构建高效、实时的数据驱动决策体系,加速数字化升级。
|
2月前
|
SQL DataWorks 关系型数据库
DataWorks+Hologres:打造企业级实时数仓与高效OLAP分析平台
本方案基于阿里云DataWorks与实时数仓Hologres,实现数据库RDS数据实时同步至Hologres,并通过Hologres高性能OLAP分析能力,完成一站式实时数据分析。DataWorks提供全链路数据集成与治理,Hologres支持实时写入与极速查询,二者深度融合构建离在线一体化数仓,助力企业加速数字化升级。
|
6月前
|
SQL 存储 监控
Hologres诊断与优化快速入门
本文由赵红梅(Hologres PD)撰写,分享如何利用诊断与调优工具提升SQL和数据库异常的全方位诊断能力,增强实例稳定性。内容涵盖五个部分:事前通过监控指标实时监控;事中通过活跃日志发现并处理问题;事后通过慢Query日志与Query洞察诊断性能瓶颈;成本治理借助表管理工具优化资源;以及利用诊断工具实现长期稳定性治理。具体包括CPU、内存、I/O等监控指标设置,慢Query优化,错Query治理,SQL诊断报告生成,表Meta问题修复及表索引诊断报告的应用,全面覆盖实例监控、问题定位、性能优化和成本控制等方面。
|
6月前
|
DataWorks 关系型数据库 Serverless
DataWorks数据集成同步至Hologres能力介绍
本文由DataWorks PD王喆分享,介绍DataWorks数据集成同步至Hologres的能力。DataWorks提供低成本、高效率的全场景数据同步方案,支持离线与实时同步。通过Serverless资源组,实现灵活付费与动态扩缩容,提升隔离性和安全性。文章还详细演示了MySQL和ClickHouse整库同步至Hologres的过程。
|
8月前
|
DataWorks 关系型数据库 Serverless
DataWorks数据集成同步至Hologres能力介绍
本次分享的主题是DataWorks数据集成同步至Hologres能力,由计算平台的产品经理喆别(王喆)分享。介绍DataWorks将数据集成并同步到Hologres的能力。DataWorks数据集成是一款低成本、高效率、全场景覆盖的产品。当我们面向数据库级别,向Hologres进行同步时,能够实现简单且快速的同步设置。目前仅需配置一个任务,就能迅速地将一个数据库实例内的所有库表一并传输到Hologres中。
209 12
|
9月前
|
DataWorks 搜索推荐 数据挖掘
DataWorks: 驾驭数据浪潮,解锁用户画像分析新纪元
本文详细评测了DataWorks产品,涵盖最佳实践、用户体验、与其他工具对比及Data Studio新功能。内容涉及用户画像分析、数据管理作用、使用过程中的问题与改进建议,以及Data Studio的新版Notebook环境和智能助手Copilot的体验。整体评价肯定了DataWorks在数据处理和分析上的优势,同时也指出了需要优化的地方。
344 24
|
9月前
|
DataWorks 数据挖掘 大数据
方案实践测评 | DataWorks集成Hologres构建一站式高性能的OLAP数据分析
DataWorks在任务开发便捷性、任务运行速度、产品使用门槛等方面都表现出色。在数据处理场景方面仍有改进和扩展的空间,通过引入更多的智能技术、扩展数据源支持、优化任务调度和可视化功能以及提升团队协作效率,DataWorks将能够为企业提供更全面、更高效的数据处理解决方案。
|
10月前
|
数据采集 人工智能 DataWorks
限时优惠体验!DataWorks数据治理中心全新升级为数据资产治理
DataWorks进行全面升级,从数据治理中心转型为数据资产治理,强调业务视角下的数据分类与管理,引入Data+AI全链路数据血缘追踪,提升数据质量和安全性,促进跨部门协作。同时,提供限时优惠活动,助力企业高效利用数据资产。
1199 2
|
数据采集 DataWorks 数据挖掘
提升数据分析效率:DataWorks在企业级数据治理中的应用
【8月更文第25天】本文将探讨阿里巴巴云的DataWorks平台如何通过建立统一的数据标准、规范以及实现数据质量监控和元数据管理来提高企业的数据分析效率。我们将通过具体的案例研究和技术实践来展示DataWorks如何简化数据处理流程,减少成本,并加速业务决策。
896 54
|
SQL 分布式计算 DataWorks
利用DataWorks构建高效数据管道
【8月更文第25天】本文将详细介绍如何使用阿里云 DataWorks 的数据集成服务来高效地收集、清洗、转换和加载数据。我们将通过实际的代码示例和最佳实践来展示如何快速构建 ETL 流程,并确保数据管道的稳定性和可靠性。
417 56

热门文章

最新文章

相关产品

  • 大数据开发治理平台 DataWorks