问题描述

由于 Apache DolphinScheduler 长期运行,任务数量不断增加,相关任务数据主要存储在数据库中的 t_ds_task_instancet_ds_process_instance 两张表中。

随着这两张表数据量的持续增长,导致系统页面出现卡顿现象。

解决方案

为解决上述问题,采取的措施是定期清理数据库中 t_ds_process_instancet_ds_task_instance 两张表中一个月之前的数据。

数据备份

在进行数据清理之前,首先备份原表数据,以确保数据安全。

use dolphinscheduler;
-- 创建备份表 t_ds_process_instance_backup20241120 和 t_ds_task_instance_backup20241120
CREATE TABLE t_ds_process_instance_backup20241120 LIKE t_ds_process_instance;
CREATE TABLE t_ds_task_instance_backup20241120 LIKE t_ds_task_instance;

-- 将原表数据备份到相应的备份表中
INSERT INTO t_ds_process_instance_backup20241120
SELECT * FROM t_ds_process_instance;

INSERT INTO t_ds_task_instance_backup20241120
SELECT * FROM t_ds_task_instance;

检查备份情况

为了确保备份操作成功,可以检查备份表和原表的数据行数。

-- 检查备份表的数据行数
SELECT COUNT(*) FROM t_ds_process_instance_backup20241120;
SELECT COUNT(*) FROM t_ds_task_instance_backup20241120;

-- 检查原表的数据行数
SELECT COUNT(*) FROM t_ds_process_instance;
SELECT COUNT(*) FROM t_ds_task_instance;

数据清理

在备份完成并确认无误后,执行清理操作,删除 2024年10月19日 23:59:59 之前 的数据。

-- 删除 t_ds_task_instance 表中 2024年10月19日 23:59:59 之前的数据
DELETE FROM t_ds_task_instance
WHERE submit_time < '2024-10-19 23:59:59';

-- 删除 t_ds_process_instance 表中 2024年10月19日 23:59:59 之前的数据
DELETE FROM t_ds_process_instance
WHERE end_time < '2024-10-19 23:59:59';

参考:https://blog.csdn.net/weixin_40255084/article/details/141442462

本文由 白鲸开源科技 提供发布支持!

海豚调度
84 声望21 粉丝

Apache DolphinScheduler是一个分布式去中心化,易扩展的可视化DAG工作流任务调度平台。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。