文档数据库服务 DDS-使用DDS存储和分析日志数据:自动删除过期数据

时间:2025-02-24 11:38:52

自动删除过期数据

  • TTL索引:自动删除过期文档,如设置30天后自动删除。
    db.eventlog.createIndex( { "timestamp": 1 }, { expireAfterSeconds: 30 * 24 * 60 * 60 } )
  • Capped集合:限制集合大小,自动删除最旧文档。固定大小集合是大小固定的集合,根据插入顺序插入和检索文档。固定大小集合的工作方式与循环缓冲区类似:一旦一个集合填满了分配的空间,它就会通过覆盖集合中最旧的文档来为新文档腾出空间。
    // 创建固定集合需要在创建集合的时候指定
    db.getSiblingDB("iot_logs").dropDatabase()
    db.getSiblingDB("iot_logs").createCollection( "events", { capped: true, size: 5242880 } )
  • 定期归档:按月归档日志数据,便于历史数据管理和查询。
    db.getSiblingDB("iot_logs").events.renameCollection("events202301")

    单个实例中,数据库的总的个数不要超过200个,总的集合个数不要超过500个。集合数量过多会导致内存压力变高,并且集合数量多会导致重启以及主备倒换性能变差,影响紧急情况下的高可用性能。建议定期删除不需要的集合。

support.huaweicloud.com/bestpractice-dds/zh-cn_topic_0000002161942778.html