Python и стандартная библиотека zipfile
В своей работе часто сталкиваюсь с выгрузкой и обработкой большого объема данных, поэтому приходиться думать о том, где хранить и как быстро передать анализируемую информацию. Одну из таких задач уже описывал ранее в статье «Сложности при выгрузке 500 гб из базы данных и пример их решения». Но, если в ранее описанное решение добавить библиотеку архивации zipfile из Python и сжать данные, то их можно вместить в свободное место на жестком диске, исключая перенос на сетевой ресурс или ускорить перемещение за счет уменьшения объема файлов. Для работы с zipfile не требуется что-то дополнительно скачивать, достаточно только подключить.
Пример скрипта:
Например, 165 файлов в формате csv с общим объемом 224 ГБ удалось сжать в один zip-файл до 20 ГБ за два часа. Копирование на сетевой ресурс 20 ГБ данных независимо от формата zip или csv, при доступной мне скорости передачи, в среднем заняло 15 часов. В итоге, сэкономлено 200 ГБ памяти на жестком диске или 166 часов (с учетом затраченного времени на архивацию) при переносе на сетевой ресурс.
Более подробно о работе с стандартной библиотекой zipfile (чтение, извлечение, методы сжатия и др.) можно узнать на сайте docs.python.org по ссылке.