Ozon: обработать 10ГБ access.log без загрузки в RAM
middleМаркетплейс45 минLive coding
Ситуация: На собесе дают 10ГБ nginx access.log. Задача: найти топ-10 URL по числу запросов, среднее response time, distribution status codes. Файл в RAM не помещается.
Реальный задавали в Ozon 2024-2025. Цель — оценить понимание Python generators, collections.Counter, обработку big data без pandas.read_csv.
Доступные данные
access.log формат nginx: IP - - [date] "METHOD /url HTTP/1.1" status size response_time_ms ...
~50M строк, ~10ГБ
Задачи
Топ-10 URLs по числу запросов (streaming, без pandas)
Avg response_time по URL — Welford's online algorithm для O(1) memory
Distribution status codes — Counter
Bonus: parallelize через multiprocessing.Pool с chunked reading