日志数据清理
概述
在 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();