Главная
Серии Обо мне Подписка
Как выбрать правильный кодек сжатия

Как выбрать правильный кодек сжатия

Расскажу, как я однажды выстрелил себе в ногу через Gzip.

Начиналось всё невинно. Мы строили новый пайплайн данных — ежедневная загрузка CSV-файлов от команды выше по потоку, они падали в Azure Blob Storage, а дальше уходили в Apache Spark-джобу. Ты наверняка строил что-то похожее.

И потому что мне казалось, что я поступаю умно — экономлю на хранении, срезаю время на передачу по сети, держу файлы аккуратными (если честно, точную причину уже не вспомню) — я сказал команде-поставщику данных: «Слушайте, сжимайте файлы через Gzip перед тем, как класть их в object storage». Они сказали «окей». Я сказал «отлично».

Спустя пару недель — запахло жареным.

Джобы стали тормозить. Стейджи зависали — половина тасков застревала на "0%", остальные завершались за секунды. Экзекьюторы рандомно поднимались, читали один файл — и сидели без дела.

Сначала я подумал, что где-то накосячил с партиционированием. Может, не хватало shuffle-памяти. Может, автоскейлинг снова был пьян. Ты знаешь, как это бывает — обвинить буквально всё, кроме очевидного — разве не первое правило software engineering?

🔒

This is a premium deep-dive

You just read the free excerpt. The full analysis continues on Substack.

Read full article → Or subscribe to get all premium posts

Понравилось? Вот что ещё стоит почитать:

Schema-on-Read vs Schema-on-Write

Вопросы для собеседования на Python для Mid-level разработчиков

Вопросы для собеседования на Python для начинающих (Junior)