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

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

前言

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



效果图


以下为一段时间内指定表及分区的存储使用情况,并推送到钉群、飞书、企业微信或 Teams。



实践:取得指定表及分区存储使用情况


以下为 SQL 内容

SELECT
    table,
    partition,
    count() AS parts,
    formatReadableSize(sum(bytes_on_disk)) AS bytes_on_disk,
    formatReadableQuantity(sum(rows)) AS rows,
    sum(marks) AS marks
FROM system.parts
WHERE active
GROUP BY
    table,
    partition;


以下为推送内容设定


调度及推送设置



推送结果


实践:取得指定表的日平均数据使用量统计


取得指定表的日平均数据使用量,方便了解数据量水位。


以下为 SQL 内容

SELECT
    table,
    formatReadableSize(size) AS size,
    rows,
    days,
    formatReadableSize(avgDaySize) AS avgDaySize
FROM
(
    SELECT
        table,
        sum(bytes) AS size,
        sum(rows) AS rows,
        min(min_date) AS min_date,
        max(max_date) AS max_date,
        max_date - min_date AS days,
        size / (max_date - min_date) AS avgDaySize
    FROM system.parts
    WHERE active
    AND (table = 'asynchronous_metric_log' OR table = 'query_thread_log' OR table = 'trace_log')
    GROUP BY table
    ORDER BY rows DESC
);


以下为推送内容设定


推送结果


实践:取得指定表最近列的数据压缩程度


可以按列查看数据的压缩程度。此查询还会返回内存中主索引的大小,了解这一点很有用,因为主索引必须小于内存。


以下为 SQL 内容

SELECT
    parts.table as table,
    parts.rows,
    parts.latest_modification,
    parts.disk_size,
    parts.primary_keys_size,
    parts.bytes_size,
    columns.compressed_size,
    columns.uncompressed_size,
    columns.compression_ratio,
    columns.compression_percentage
FROM
(
    SELECT
        table,
        formatReadableSize(sum(data_uncompressed_bytes)) AS uncompressed_size,
        formatReadableSize(sum(data_compressed_bytes)) AS compressed_size,
        round(sum(data_compressed_bytes) / sum(data_uncompressed_bytes), 3) AS compression_ratio,
        round(100 - ((sum(data_compressed_bytes) * 100) / sum(data_uncompressed_bytes)), 3) AS compression_percentage
    FROM system.columns
    GROUP BY table
) AS columns
RIGHT JOIN
(
    SELECT
        table,
        sum(rows) AS rows,
        max(modification_time) AS latest_modification,
        formatReadableSize(sum(bytes)) AS disk_size,
        formatReadableSize(sum(primary_key_bytes_in_memory)) AS primary_keys_size,
        sum(bytes) AS bytes_size
    FROM system.parts
    WHERE active
    AND (table = 'asynchronous_metric_log' OR table = 'query_thread_log' OR table = 'trace_log')
    GROUP BY
        table
) AS parts ON columns.table = parts.table
ORDER BY parts.bytes_size DESC;


以下为推送内容设定


推送结果


实践:用户端在过去一段时间内发送的查询数


查询用户端在过去一段时间内发送的查询数,这边以 1 小时为例。


以下为 SQL 内容

SELECT
    client_name,
    count() as counts,
    query_kind,
    toStartOfHour(event_time) as event_time_h
FROM system.query_log
WHERE (type = 'QueryStart') AND (event_time > (now() - toIntervalMinute(60)))
GROUP BY
    event_time_h,
    client_name,
    query_kind
ORDER BY
    event_time_h DESC,
    count() ASC;


以下为推送内容设定

image.png



推送结果

image.png


实践:取得指定表的分区数


以下为 SQL 内容

SELECT
    table,
    partition_id,
    count() as counts
FROM system.parts
WHERE active
AND (table = 'asynchronous_metric_log' OR table = 'query_thread_log' OR table = 'trace_log')
GROUP BY
    table,
    partition_id;


以下为推送内容设定



推送结果



实践:取得运行最长的查询


以下为 SQL 内容

SELECT
    elapsed,
    initial_user,
    client_name,
    hostname() as hostname,
    query_id,
    query
FROM clusterAllReplicas(default, system.processes)
ORDER BY elapsed DESC;


以下为推送内容设定



推送结果



实践:查看最近失败的信息


查询最近失败的前20笔信息。


以下为 SQL 内容

SELECT name, code, value, last_error_time
FROM system.errors
ORDER BY last_error_time DESC limit 20;


以下为推送内容设定

image.png


推送结果



实践:取得前十个使用最多资源的查询


以下为 SQL 内容

SELECT
    type,
    event_time,
    initial_query_id,
    formatReadableSize(memory_usage) AS memory,
    `ProfileEvents.Values`[indexOf(`ProfileEvents.Names`, 'UserTimeMicroseconds')] AS userCPU,
    `ProfileEvents.Values`[indexOf(`ProfileEvents.Names`, 'SystemTimeMicroseconds')] AS systemCPU,
    normalizedQueryHash(query) AS normalized_query_hash
FROM system.query_log
ORDER BY memory_usage DESC
LIMIT 10


以下为推送内容设定



推送结果


实践:取得projection存储使用情况


以下为 SQL 内容

SELECT
    name,
    parent_name,
    formatReadableSize(bytes_on_disk) AS bytes,
    formatReadableSize(parent_bytes_on_disk) AS parent_bytes,
    bytes_on_disk / parent_bytes_on_disk AS ratio
FROM system.projection_parts;


以下为推送内容设定



实践:取得最近创建的详细信息,包括创建时间、大小、行数等


以下为 SQL 内容

SELECT
    modification_time,
    rows,
    formatReadableSize(bytes_on_disk) as size,
    table
FROM clusterAllReplicas(default, system.parts)
WHERE active AND (level = 0)
ORDER BY modification_time DESC
LIMIT 100;


以下为推送内容设定




推送结果



实践:取得指定表的最近数据量统计


取得指定表的最近数据量统计,方便了解数据量水位。


以下为 SQL 内容

SELECT table,
    formatReadableSize(sum(bytes)) as size
    FROM system.parts
    WHERE active
    AND table = 'test_table'
GROUP BY table;


以下为推送内容设定


推送结果




实践:查看最近变动的配置


查询最近变动的配置值 (与 default 不同的部份)


以下为 SQL 内容

SELECT
    name,
    value
FROM system.settings
WHERE changed;


以下为推送内容设定


推送结果


小结

ClickHouse 提供许多能查运行状态的表,能利用此数据加工后,透过 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 数据推送定期推播 Hologres Query 诊断信息 https://developer.aliyun.com/article/1564785

ClickHouse Query 诊断: https://clickhouse.com/docs/knowledgebase/useful-queries-for-troubleshooting#view-which-settings-have-been-changed-from-the-default

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
一站式大数据开发治理平台DataWorks初级课程
DataWorks 从 2009 年开始,十ー年里一直支持阿里巴巴集团内部数据中台的建设,2019 年双 11 稳定支撑每日千万级的任务调度。每天阿里巴巴内部有数万名数据和算法工程师正在使用DataWorks,承了阿里巴巴 99%的据业务构建。本课程主要介绍了阿里巴巴大数据技术发展历程与 DataWorks 几大模块的基本能力。 课程目标  通过讲师的详细讲解与实际演示,学员可以一边学习一边进行实际操作,可以深入了解DataWorks各大模块的使用方式和具体功能,让学员对DataWorks数据集成、开发、分析、运维、安全、治理等方面有深刻的了解,加深对阿里云大数据产品体系的理解与认识。 适合人群  企业数据仓库开发人员  大数据平台开发人员  数据分析师  大数据运维人员  对于大数据平台、数据中台产品感兴趣的开发者
目录
相关文章
|
4月前
|
SQL DataWorks 监控
DataWorks产品使用合集之怎么针对表中已经存在的数据进行更新
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
DataWorks产品使用合集之怎么针对表中已经存在的数据进行更新
|
6天前
|
DataWorks 搜索推荐 数据挖掘
DataWorks: 驾驭数据浪潮,解锁用户画像分析新纪元
本文详细评测了DataWorks产品,涵盖最佳实践、用户体验、与其他工具对比及Data Studio新功能。内容涉及用户画像分析、数据管理作用、使用过程中的问题与改进建议,以及Data Studio的新版Notebook环境和智能助手Copilot的体验。整体评价肯定了DataWorks在数据处理和分析上的优势,同时也指出了需要优化的地方。
69 24
|
4月前
|
DataWorks 监控 安全
DataWorks产品使用合集之使用数据洞察过程中经常出现超时是什么导致的
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
存储 DataWorks 安全
DataWorks产品使用合集之数据视图如何创建
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
数据采集 DataWorks 数据挖掘
提升数据分析效率:DataWorks在企业级数据治理中的应用
【8月更文第25天】本文将探讨阿里巴巴云的DataWorks平台如何通过建立统一的数据标准、规范以及实现数据质量监控和元数据管理来提高企业的数据分析效率。我们将通过具体的案例研究和技术实践来展示DataWorks如何简化数据处理流程,减少成本,并加速业务决策。
501 54
|
4月前
|
SQL 分布式计算 DataWorks
利用DataWorks构建高效数据管道
【8月更文第25天】本文将详细介绍如何使用阿里云 DataWorks 的数据集成服务来高效地收集、清洗、转换和加载数据。我们将通过实际的代码示例和最佳实践来展示如何快速构建 ETL 流程,并确保数据管道的稳定性和可靠性。
211 56
|
1月前
|
数据采集 存储 分布式计算
ClickHouse大规模数据导入优化:批处理与并行处理
【10月更文挑战第27天】在数据驱动的时代,高效的数据导入和处理能力是企业竞争力的重要组成部分。作为一位数据工程师,我在实际工作中经常遇到需要将大量数据导入ClickHouse的需求。ClickHouse是一款高性能的列式数据库系统,非常适合进行大规模数据的分析和查询。然而,如何优化ClickHouse的数据导入过程,提高导入的效率和速度,是我们面临的一个重要挑战。本文将从我个人的角度出发,详细介绍如何通过批处理、并行处理和数据预处理等技术优化ClickHouse的数据导入过程。
60 0
|
4月前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之ODPS数据怎么Merge到MySQL数据库
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
DataWorks 关系型数据库 MySQL
DataWorks产品使用合集之mysql节点如何插入数据
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
DataWorks 安全 定位技术
DataWorks产品使用合集之怎么批量获取数据地图的实例id
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。

相关产品

  • 大数据开发治理平台 DataWorks