как я могу сжать большие данные (5 МБ JSON) и отправить их в поток Kinesis в качестве производителя, а затем распаковать их во время использования? - PullRequest
1 голос
/ 10 июля 2020

У меня есть такое требование:

there is payload which is sizing up to 5MB or +
we need to compress this data and then pushed the compressed data to Kinesis
after pushing this data, when we consume this, we need to decompress it...

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

если у кого-то есть опыт, делающий это раньше, поделитесь своими мыслями или посоветуйте мне?

Примечание: я мог видеть много точек для использования S3 для хранения данных, но клиенту этот метод не нужен

1 Ответ

0 голосов
/ 10 июля 2020

Два способа решить вашу проблему:

  1. Разделите его на несколько меньших полезных данных. Потребители должны иметь возможность восстанавливать полезные данные на основе идентификатора части вашей полезной нагрузки.
  2. Хранить большие данные полезной нагрузки вне потока, например, в S3, и просто отправлять метаданные большого файла (например, s3 path) в сообщениях.

Но в конечном итоге, если какой-либо из двух вариантов вам не подходит, вам, возможно, придется учитывать, что Kinesis не подходит для работы. Я думаю, что Apache Kafka может поддерживать сообщения размером более 1 МБ.

...