如何压缩相似数据?

新手上路,请多包涵

问题描述

  • 项目背景: 我们现在开发一个工业物联网服务端,前端传感器硬件会每秒上传采集到的数据(温度、湿度、压力),一天上传的数据量就有七八万。
  • 需要解决: 我们现在需要得到历史统计数据,每日、每周、每月。如果全部读取出一个月的温度数据将有几十万,读取速度慢且不方便前端显示。
  • 想要效果:因为数据大部分情况下都是相似的,所以在时间跨度比较长的时候,变化幅度较小的点被删除,历史数据量减小。但出现大幅度变化的区间仍保持相应的精度。

问题出现的环境背景及自己尝试过哪些方法

根据上述的问题我们构思方案的野路子方案是:

  1. 在数据上传到服务端写入数据库之前,对数据进行变化率的计算,低于变化阈值的数据将不会存入数据库。
  2. 每小时运行压缩批处理,将上一个小时的数据根据历史数据进行进一步压缩,并存入数据库。
  3. 使用elasticsearch代替查询数据,实现更快的搜索

请教各位大牛、先阶段的主流解决方案是什么样?

阅读 1.5k
1 个回答

历史数据是不会变化的,可以通过后Job统计出每日的数据,在每日的数据基础上统计每周的,依次类推,统计季度、年的数据。

前端请求过来查询数据,直接查统计好的表就行了。

核心就是历史数据不会变,这个很重要

ES等其他技术可以使用,提高查询效率

看了背景,你们对实时性要求不是很高,如果很高,需要实时计算可以使用Spark等类似的大数据处理方式,一天7-8万数据很少,常规SQL+合适数据清洗,就能解决

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏