Вопрос на собеседовании · Data Engineer
Как выбрать ключ партиционирования для большого набора данных?
Короткий ответ, ключевые тезисы и ошибки, которых стоит избежать на интервью.
Ключ выбирают по наиболее частым и селективным фильтрам, жизненному циклу данных и способу загрузки. Хорошее партиционирование позволяет читать только нужные разделы и поддерживает предсказуемый размер каждой партиции.
Слишком высокая cardinality создаёт множество мелких файлов и дорогой metadata overhead; низкая — заставляет сканировать лишнее. Нужно учитывать skew и hot partitions, особенно при потоковой записи.
01 · Структура ответа
Что важно сказать интервьюеру
Начните с определения, затем объясните механизм и закончите примером из практики. Для полного ответа раскройте эти тезисы:
02 · Пример
Как объяснить на практике
Для событий, которые почти всегда читают по дню и стране, начинаю с event_date и проверяю объём по country. Не добавляю user_id: это породит слишком много партиций.
Не заучивайте формулировку дословно. Свяжите принцип с задачей из собственного проекта — интервьюер почти наверняка попросит уточнить детали реализации и компромиссы.
03 · Ошибки
Чего избегать в ответе
04 · Углубление
Что могут спросить следом
- Что такое compaction?
- Как бороться с small files?
- Partitioning и clustering — одно и то же?
Практика ответа
Ответьте вслух, а не про себя
Откроем тренировку сразу на этом вопросе. Выберите грейд, сформулируйте ответ и сравните его с опорой.
Mira