Триггер больших двоичных объектов Python в приложении-функции Azure Огромные размеры файлов

Я использую приложения-функции Azure (Python) с триггером большого двоичного объекта для обработки CSV и перемещения записей в концентратор событий. У меня есть рабочий код (до 50 строк) после стандартной документации. Однако я хочу знать, какой подход следует использовать, если размер файла составляет несколько ГБ. Будет ли весь этот файл отправлен в функцию Azure за один раз? Что, если его нужно читать фрагментами фиксированного размера или построчно, будет ли это поддерживать концепция триггера в Azure?

Я ищу любой подход / код для указанной выше проблемы в python, который позволяет избежать загрузки полного файла в память контейнера функций Azure.


person Parag Wankhade    schedule 27.03.2020    source источник


Ответы (1)


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

сообщения AMQP (это то, что скрывается под капотом Event Hub) действительно больше подходит для небольших объемов данных. Возможно, вы также можете сделать каждую строку или блоки строк в вашем CSV уникальным сообщением, но это будет во многом зависеть от вашего варианта использования.

Затем вы, вероятно, захотите выбрать объект, который поддерживает поток, а не целый файл сразу, например BlockBlobService вот разумный пример, показывающий как это сделать.

person ti7    schedule 02.06.2020