我正在编写代码(Python 3),该代码在小型IOT设备上收集数据并将其上传到AWS上的数据库。当前,通过将数据解析为json字符串并通过post请求进行发送来发送数据。有时可能会有很多数据,我想知道是否可以使用发布请求以压缩形式发送数据。
我不想做的是获取数据,将其压缩为文件,然后将该文件的原始数据读取为字符串,然后将该字符串放入JSON中。保存文件并立即读取它是浪费的。
有没有一种方法可以将数据直接压缩为原始数据字符串,然后发送压缩后的字符串,而不是压缩为文件并读取它?
我需要一种无损压缩格式,希望这种压缩/解压缩不会占用太多资源。 .npy压缩特别好。
答案 0 :(得分:1)
自从提到npy以来,您似乎拥有二进制数据。
只需在POST正文中发送二进制数据即可。
如果您需要压缩信号,那就是另一个问题。 大多数测量不是非常无损的可压缩性。
您可能需要降低浮标的精度或在设备上进行一些信号处理,例如低通滤波噪声,带通限制,增量压缩。
为获得良好结果,使用了功能强大的有损量化算法,例如mp3。但是,理解和正确处理这些是很复杂的。
答案 1 :(得分:0)
如果您的设备通过MQTT连接到AWS IoT核心,您不会发布任何信息吗?通常这是一个较轻的设置,然后在实际的物联网开发人员中首选HTTP和MQTT。除非您要在设备上编程压缩算法,否则处理这些问题的最佳方法是通过AWS IoT Core发送数据并将Lambda操作连接到该传入消息。然后,对Lambda进行编程以执行任何文件操作或压缩,然后再直接从Lambda将信息分发给DynomoDB或S3。