自动清理FineDataLink运行记录

  • Last update: September 15, 2023
  • 1. 概述

    1.1 应用场景

    随着 FineDataLink 工程使用时间的增长,fine_dp_work_exec_record(记录定时任务的执行情况)表中的数据会不断积累,导致数据量逐渐增多。当数据量过大时,打开「任务运维>定时任务>运行记录」页面可能会变得缓慢,需要耗时 10 秒以上。

    希望能定期清理 fine_dp_work_exec_record 表数据。

    1.2 实现思路

    使用 FineDataLink 定期清理 30 天前的定时任务的运行记录数据。

    1.3 任务展示

    FineDataLink 中的数据处理过程,详情参见:https://demo.finedatalink.com/ 「自动清理FDL运行记录

    9.png

    2. 操作步骤

    fine_dp_work_exec_record 表在 FineDB 数据库中,本文示例中,FineDB 数据库迁移到了 MySQL 数据库中,所以本文示例的 SQL 语句为 MySQL 语句。

    用户根据自己实际场景,调整 SQL 语句。

    2.1 获取 30 天前日期并作为参数

    1)新建定时任务。

    2)拖入「参数赋值」节点,输出 date 字段,值为 30 天前日期。如下图所示:

    SELECT DATE_SUB(NOW(), INTERVAL 30 DAY) AS date

    4.png

    3)将 date 作为参数输出,「默认值」直接复制右侧参数预览后的值即可,默认值只是为了下游节点提前预览设置的,实际运行时不会用到这个默认值。

    如下图所示:

    注:参数赋值节点详情请参见:参数赋值

    6.png

    2.2 删除 30 天前运行记录数据

    1)拖入「SQL 脚本」节点,删除 30 天前定时任务的运行记录数据。如下图所示:

    delete from `demo1`.`fine_dp_work_exec_record` where FROM_UNIXTIME(startTime/1000,'%Y-%m-%d %H:%i:%s')<='${date}'

    7.png

    2.3 运行任务

    1)点击保存并运行任务,任务运行成功后,如下图所示:

    8.png

    2)可通过 SQL 语句验证是否删除 30 天前的数据。

    例如 30 天前日期为 2023-07-17 19:34:37 ,转为毫秒级时间戳为 1689593677000(百度有日期转时间戳在线工具),查询 startTime 小于 1689593677000 的数据是否为空即可。


    附件列表


    主题: 数据开发
    • Helpful
    • Not helpful
    • Only read

    滑鼠選中內容,快速回饋問題

    滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

    不再提示

    10s後關閉

    Get
    Help
    Online Support
    Professional technical support is provided to quickly help you solve problems.
    Online support is available from 9:00-12:00 and 13:30-17:30 on weekdays.
    Page Feedback
    You can provide suggestions and feedback for the current web page.
    Pre-Sales Consultation
    Business Consultation
    Business: international@fanruan.com
    Support: support@fanruan.com
    Page Feedback
    *Problem Type
    Cannot be empty
    Problem Description
    0/1000
    Cannot be empty

    Submitted successfully

    Network busy