前言
DataWorks 近期上线了数据推送功能,能够将数据库查询的数据组织后推送到各渠道 (如钉钉、飞书、企业微信及 Teams),除了能将业务数据组织后推送,也能将数据库自身提供的监控数据组织后推送,这边我们就以 MySQL (也适用于StarRocks) 为例,定期推播 MySQL 的数据量变化等信息,帮助用户掌握 MySQL 状态。
效果图
以下为一段时间内指定表的存储使用情况,并推送到钉群、飞书、企业微信或 Teams。
实践:取得Schema下指定表的使用情况
以下为 SQL 内容
SELECT
TABLE_SCHEMA,
TABLE_NAME,
round(((data_length + index_length) / 1024 / 1024), 2) as size
FROM
information_schema.TABLES
WHERE
table_name LIKE 'table_0%'
ORDER BY (data_length + index_length) DESC;
以下为推送内容设定
调度及推送设置
推送结果
实践:取得Schema下表的数量
以下为 SQL 内容
SELECT
count(*) as counts
FROM
information_schema.TABLES
WHERE
table_schema = 'test_db1';
以下为推送内容设定
推送结果
实践:取得指定表目前字段数量
以下为 SQL 内容
SELECT count(*) as counts
FROM information_schema.columns
WHERE table_schema = 'test_db1' AND table_name = 'table_001';
以下为推送内容设定
推送结果
实践:取得指定表的数据使用情况
以下为 SQL 内容
SELECT TABLE_ROWS, AVG_ROW_LENGTH, DATA_LENGTH
FROM information_schema.tables
WHERE table_schema = 'test_db1' AND table_name = 'table_001';
以下为推送内容设定
推送结果
实践:取得指定表目前外键使用情况
以下为 SQL 内容
SELECT
CONSTRAINT_NAME,
COLUMN_NAME,
REFERENCED_TABLE_NAME,
REFERENCED_COLUMN_NAME
FROM information_schema.key_column_usage
WHERE table_schema = 'test_db1' AND table_name = 'table_001';
以下为推送内容设定
推送结果
实践:取得指定表的索引使用情况
以下为 SQL 内容
SELECT INDEX_NAME, COLUMN_NAME
FROM information_schema.statistics
WHERE table_schema = 'test_db1' AND table_name = 'table_001';
以下为推送内容设定
推送结果
实践:取得 Schema 下 Procedure 的数量
以下为 SQL 内容
SELECT count(*) as counts
FROM information_schema.routines
WHERE routine_schema = 'test_db1' AND routine_type = 'PROCEDURE';
以下为推送内容设定
推送结果
实践:查看拥有删除权限的使用者列表
以下为 SQL 内容
SELECT User, Host
FROM mysql.user
WHERE delete_priv = true;
以下为推送内容设定
推送结果
小结
MySQL 提供许多系统配置表,能利用此数据加工后,透过 DataWorks 数据推送推至渠道方便监控,提升引擎管控程度。
相关文章
数据推送功能详细介绍 help.aliyun.com/zh/datawork… 数据开发工作流 + 数据推送介绍 help.aliyun.com/zh/datawork… 使用 DataWorks 建立每日天气预报推送 juejin.cn/post/739106… 语雀+通义千问+DataWorks,让AI定期推送每周总结 juejin.cn/post/739081… 利用 DataWorks 数据推送定期推播 Hologres Query 诊断信息 juejin.cn/post/738992… 利用 DataWorks 数据推送定期推播 ClickHouse Query 诊断信息 juejin.cn/post/739206…