• 作者:老汪软件技巧
  • 发表时间:2024-12-08 04:02
  • 浏览量:

问题描述

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

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

_【技巧帖】 DolphinScheduler 任务数据清理与备份策略,确保页面不卡顿_【技巧帖】 DolphinScheduler 任务数据清理与备份策略,确保页面不卡顿

解决方案

为解决上述问题,采取的措施是定期清理数据库中 t_ds_process_instance 和 t_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;

检查备份情况

_【技巧帖】 DolphinScheduler 任务数据清理与备份策略,确保页面不卡顿_【技巧帖】 DolphinScheduler 任务数据清理与备份策略,确保页面不卡顿

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

-- 检查备份表的数据行数
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';

参考:/weixin_4025…

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