Skip to content

大量设备同时上报数据,该怎么存储?

指标数据的特点

  • 数据量巨大:每天产生几百亿条数据记录
  • 写入频繁:每台设备每10秒上报一次数据
  • 查询较少:主要用于监控设备状态
  • 时效性强:最近的数据最重要,价值随时间递减

系统架构设计

  • 消息队列:通过MQ进行异步处理

    • 比如:用Kafka的实现如下作用
      • 数据安全:即使数据库暂时不可用,数据也不会丢失
      • 削峰填谷:缓冲突发流量,避免数据库压力过大
      • 系统解耦:实现数据的解耦,方便后续做扩展
      • Kafka要合理设置的分区数,分区数大于消费者的数量;设置合理的消息包保留时间、配合合适的副本数,确保数据安全
  • 数据存储:根据数据特性选择合适的存储方案

    • 存储方案对比

      存储方案优点缺点适用场景
      关系型数据库事务支持好,查询灵活写入性能差,扩展性有限小规模数据
      时序数据库写入性能极佳,压缩比高成本相对较高实时监控数据
      分布式存储水平扩展能力强,成本低运维复杂度高海量历史数据
    • 推荐数据分层存储策略

      1. 时序数据库:最近7天的实时数据
      2. 分布式存储:7-30天的数据
      3. 归档存储:30天以上的历史数据

所有文章版权皆归博主所有,仅供学习参考。