日志数据清理
概述
在 HAP 私有部署系统中,一些“日志”类数据是长久保留在 MongoDB 中的,对于一些使用场景可能造成这类数据量庞大,占用较多数据库存储空间。
你可以在 MongoDB 中通过 show dbs
命令查看各库大小,再通过统计表大小的命令找到占用存储空间大的表。
我们提供了日志数据清理方案,根据设定的规则,可以将相关表中的数据物理删除。
操作前必读
清理操作是物理删除,对应数据永久丢失。一旦完成,对应时间段内的日志数据将无法恢复,也无法在系统界面上查看。
影响范围:
-
mdworkflow
库可清理的表主要影响范围:- 工作流执行历史
- 审批流历史
- 中断运行中流程:如果清理的数据中包含尚未完成的审批流或工作流,这些流程将因数据丢失而中断,无法继续执行。
-
mdworksheetlog
库可清理的表主要影响范围:- 工作表行记录日志
-
mdintegration
库可清理的表主要影响范围:- 集成中心历史请求日志
-
mdservicedata
库可清理的表主要影响范围:- 应用行为日志
- 使用分析日志
数据清理白名单
归属库 | 表名 | 表用途简述 |
---|---|---|
mdworkflow | wf_instance | 主流程执行历史关联数据 |
mdworkflow | wf_subInstanceActivity | 子流程执行历史关联数据 |
mdworkflow | wf_subInstanceCallback | 子流程执行历史关联数据 |
mdworkflow | wf_instanceExtends | 工作流执行历史关联数据 |
mdworkflow | code_catch | 存储代码块节点在运行中产生的临时数据 |
mdworkflow | hooks_catch | 存储接收到的 Webhook 数据 |
mdworkflow | webhooks_catch | 存储工作流节点"发送API请求"获取到的数据 |
mdworkflow | app_multiple_catch | 存储获取多条数据节点中勾选“直接获取”后存储的数据 |
mdworkflow | custom_apipackageapi_catch | 存储调用 API 集成接口返回的响应数据 |
mdworksheetlog | wslog* | 存储对应月份的工作表行记录日志 表名格式为 wslog+日期(例如 wslog202409) |
mdintegration | wf_instance | 集成中心-请求日志 |
mdintegration | wf_instance_relation | 集成中心-请求日志关联数据 |
mdintegration | webhooks_catch | 集成中心-请求日志中“查看详情”对应的日志数据 |
mdintegration | code_catch | 集成中心-请求日志中“查看详情”对应的日志数据 |
mdintegration | json_catch | 集成中心-请求日志中“查看详情”对应的日志数据 |
mdintegration | custom_parameter_catch | 集成中心-请求日志中“查看详情”对应的日志数据 |
mdservicedata | al_actionlog* | 存储对应月份的应用行为日志 表名格式为 al_actionlog+日期(例如 al_actionlog202409) |
mdservicedata | al_uselog | 存储“使用分析”功能的日志数据 |
数据清理操作建议
以下是针对不同类型数据的具体清理方法和注意事项。
按月归档的日志表
此方法适用于按月自动创建的日志表。
-
适用表:
mdworksheetlog
库下所有以wslog
开头的表mdservicedata
库下所有以al_actionlog
开头的表
-
操作方法: 对于这类按月归档的表,最直接高效的清理方式是使用
drop
命令删除整个表。此操作速度极快,并能立即释放表所占用的全部磁盘空间。 -
操作示例: 以下命令将删除 mdworksheetlog 库中 2024 年 1 月的工作表日志。
use mdworksheetlog;
db.wslog202401.drop();