Сжатие данных в строку для json post без сохранения файлов - PullRequest
0 голосов
/ 07 февраля 2019

Я пишу код (Python 3), который собирает данные на маленьком устройстве IOT и загружает их в базу данных на AWS.В настоящее время данные отправляются путем анализа их в строку json и отправки по запросу.Временами может быть довольно много данных, и мне интересно, могу ли я отправить их в сжатом виде с помощью почтового запроса.

Что я не хочу делать, так это взять данные, сжать ихв файл, затем прочитайте необработанные данные этого файла в строку и поместите эту строку в JSON.Было бы бесполезно сохранять файл и сразу же читать его.

Есть ли способ сжимать данные непосредственно в строку необработанных данных и отправлять сжатую строку вместо сжатия в файл и чтенияэто?

Мне нужен формат сжатия без потерь, надеюсь, что он не слишком ресурсоемкий для сжатия / распаковки.Компрессия .npy была бы особенно хороша.

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019

Вы не собираетесь ничего POST, если ваше устройство подключается через MQTT к ядру AWS IoT, я полагаю?Обычно это легче, чем HTTP, и MQTT предпочтительнее в реальном IoT-устройстве.Лучший способ справиться с этими вещами, если вы не хотите программировать алгоритм сжатия на устройстве, - это отправить свои данные через AWS IoT Core и подключить действие Lambda к этому входящему сообщению.Затем запрограммируйте Lambda на любое манипулирование или сжатие файлов, прежде чем отправлять информацию в DynomoDB или S3 непосредственно из Lambda.

0 голосов
/ 08 февраля 2019

Похоже, у вас есть двоичные данные, так как вы упоминаете npy.

Просто отправьте двоичные данные в теле POST.

Если вам нужно сжать сигналы, то это другая проблема.Большинство измерений не очень сжимаемы без потерь.

Возможно, вам придется снизить точность ваших поплавков или выполнить некоторую обработку сигнала на устройстве, например шум фильтрации нижних частот, ограничение полосы пропускания, дельта-сжатие.

Для получения хороших результатов существуют мощные алгоритмы квантования с потерямикак mp3 использует.Но это сложно понять и понять правильно.

...