Data Skew: диагностика и лечение

PySpark для аналитикаТема 4. Spills и Data Skew (главное)

Перекос данных — главная проблема больших join'ов. AQE skewJoin, salting, two-phase aggregation, отделение горячих ключей.

О разделе «Тема 4. Spills и Data Skew (главное)»

Почему job тормозит: spill и skew. Как диагностировать, как лечить через AQE, salting, two-phase aggregation.

Ключевые темы: spill, skew, shuffle, salting, AQE skew join, two-phase aggregation.

Все темы в разделе «Тема 4. Spills и Data Skew (главное)»

Data Skew: диагностика и лечение: кратко и по делу

Перекос данных (data skew) — это ситуация в распределённых вычислениях, когда данные распределяются между узлами неравномерно: часть ключей встречается несопоставимо чаще остальных. В результате один или несколько обработчиков получают непропорционально большой объём работы, а остальные простаивают. Из-за этого общая задача упирается в самый загруженный узел, замедляется и иногда падает по памяти. Перекос особенно заметен при группировках и соединениях по ключу с сильно неоднородным распределением значений.

Где применяется в аналитике: Проявляется в Spark и других движках при агрегациях и join по полям вроде идентификатора города, категории или пользователя, где есть доминирующие значения. Аналитику важно распознавать перекос, когда тяжёлый запрос на больших данных висит из-за нескольких «горячих» ключей, чтобы понимать причину медленной обработки.

На собеседовании: Спрашивают, чтобы оценить понимание того, как реально устроены распределённые вычисления, а не только синтаксис запросов. Смотрят, умеет ли кандидат объяснить, откуда берётся неравномерная нагрузка и почему отдельные задачи становятся узким местом.

Обновлено:

Полный разбор темы «Data Skew: диагностика и лечение» — в Pro

В Pro-подписке по этому конспекту получите:

Открыть все 390+ конспектов →