У нас есть сервис, который генерирует 3000 файлов в минуту. Размер файла составляет менее 5 КБ. Они хранятся в хранилище BLOB-объектов в azure. Нам нужно объединить эти файлы и отправить их на S3. Окончательный размер файла в s3 должен быть в диапазоне от 10 МБ до 100 МБ (эти данные поступают в снежинку через Snowpipe.). Как это можно сделать быстрым и экономически эффективным способом.
Добавление дополнительной информации: что я уже пробовал:
1) Отправка события создания большого двоичного объекта в очередь azure. Функция запуска очереди для загрузки данных в S3. Затем с помощью aws лямбда-конкатенации (но обычно лямбда-тайм-аут)
2) Python код, который использует многопроцессорную обработку, которая читает очередь и блоб azure, а затем объединяет данные для создания файла размером 10 МБ. и отправить его на S3. Пробовал запускать этот код из azure веб-задания. (У Webjob всего 4 ядра). Это недостаточно быстро и не масштабируется.
Мне нужно решение, которое может выполнять задачи параллельно наиболее экономически эффективным образом и масштабируемо. Это может быть пакетный процесс. Задержка данных в S3 может составлять 24 часа. (Невозможно использовать пакет azure, поскольку мы уже исчерпали количество учетных записей для нашего плана подписки для какого-либо другого процесса.).
Любые рекомендации для инструментов или услуг ETL, которые лучше всего подходят для этого случая.