問題描述
由於 Apache DolphinScheduler 長期執行,任務數量不斷增加,相關任務資料主要儲存在資料庫中的 t_ds_task_instance
和 t_ds_process_instance
兩張表中。
隨著這兩張表資料量的持續增長,導致系統頁面出現卡頓現象。
解決方案
為解決上述問題,採取的措施是定期清理資料庫中 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;
檢查備份情況
為了確保備份操作成功,可以檢查備份表和原表的資料行數。
-- 檢查備份表的資料行數
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
本文由 白鯨開源 提供釋出支援!