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

本文涉及的产品
大数据开发治理平台 DataWorks,不限时长
简介: 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数据集成、开发、分析、运维、安全、治理等方面有深刻的了解,加深对阿里云大数据产品体系的理解与认识。 适合人群  企业数据仓库开发人员  大数据平台开发人员  数据分析师  大数据运维人员  对于大数据平台、数据中台产品感兴趣的开发者
目录
相关文章
|
1天前
|
SQL DataWorks 监控
DataWorks产品使用合集之怎么针对表中已经存在的数据进行更新
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
DataWorks产品使用合集之怎么针对表中已经存在的数据进行更新
|
1天前
|
数据采集 DataWorks 安全
DataWorks产品使用合集之怎么配置每天只导入10条数据
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
1天前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之ODPS数据怎么Merge到MySQL数据库
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
1天前
|
DataWorks 关系型数据库 MySQL
DataWorks产品使用合集之mysql节点如何插入数据
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
1天前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何对多个表进行历史数据的回刷(即补数据)
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
1天前
|
DataWorks 安全 定位技术
DataWorks产品使用合集之数据地图分区信息记录数都是-1是什么导致的
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
1天前
|
数据采集 SQL DataWorks
DataWorks产品使用合集之如何补前一天的数据
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
1天前
|
数据采集 DataWorks 安全
DataWorks产品使用合集之如何实现数据过滤
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
1天前
|
数据采集 DataWorks 监控
DataWorks产品使用合集之如何对数据进行保护
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
1天前
|
DataWorks 监控 安全
DataWorks产品使用合集之使用数据洞察过程中经常出现超时是什么导致的
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。

热门文章

最新文章

相关产品

  • 大数据开发治理平台 DataWorks