【技巧帖】 DolphinScheduler 任務資料清理與備份策略,確保頁面不卡頓

海豚调度發表於2024-12-06

問題描述

由於 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

本文由 白鯨開源 提供釋出支援!

相關文章