Skip to content

[Feature] 可配置 raw usage event 保留天数 #433

Description

@haiting1127

What problem do you want to solve?

目前 raw usage_events 超过 90 个本地自然日后会进入 usage_events_archive 并永久增长。长时间运行时,管理员需要控制 SQLite 原始事件体积,同时永久保留按日汇总和 API key 归属。

原始事件一旦删除就无法再按未来的新 schema / 统计口径重放,因此该取舍需要是显式配置,而不是隐式清理。

What would you like to happen?

建议增加:

USAGE_RAW_EVENT_RETENTION_DAYS=365
  • 默认总保留 365 个本地自然日。
  • 0 表示永久保留。
  • 非零值小于 90 时拒绝启动,因为 hot usage_events 固定保留 90 天。
  • 每日维护只从 usage_events_archive 删除早于 cutoff 的 raw rows。
  • 使用有上限的小事务批次,并在批次间响应 cancellation。
  • usage_overview_daily_stats 等 daily aggregates 与 cpa_api_keys 永久保留。
  • 清理后仍执行现有 conditional vacuum 判断,并记录 deleted count / status。

Additional context

这与 #409 的历史数据导入互补:导入解决迁移,retention 决定本地 raw event 可供重建多久。

一个已实现并覆盖默认值、0、90 天下限、cutoff、900-row batching、cancellation、永久数据边界和 vacuum 的参考 commit:

Tranxmart@40d0ef9

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions