P
prepair.app
Пройти интервью →
EnglishУкраїнськаРусскийDeutsch
🗄️

Senior Data EngineerВопросы на собеседовании data engineer

Senior · 5+ лет опыта

Собеседование дата-инженера сильно опирается на SQL и на то, переживут ли ваши пайплайны запуск дважды, с опозданием или не по порядку. Будут и вопросы по моделированию, где нет единственно верного ответа. Ниже — вопросы, которые задают чаще всего, каждый с эталонным ответом. Senior: архитектуру, трейд-оффы, менторство и принятие решений.

Попробовать — без регистрации
Готовим вопрос…

Темы для подготовки

Продвинутый SQL
Моделирование данных и хранилища
ETL против ELT и оркестрация
Spark и распределённая обработка
Стриминг и Kafka
Качество данных

6 вопросов уровня Senior с ответами

1

Чем партиционирование отличается от шардирования?

Ответ

Партиционирование делит таблицу внутри одной базы, чтобы движок мог пропускать ненужные куски; шардирование раскладывает данные по отдельным базам, каждая из которых держит подмножество. Партиционирование — инструмент производительности и обслуживания, шардирование — инструмент масштаба с реальной ценой: межшардовые запросы и транзакции становятся сложными или невозможными. Браться за шардирование до того, как исчерпаны партиционирование и индексы, — частая и дорогая ошибка.

2

Как обрабатывать эволюцию схемы, когда меняется источник?

Ответ

Выбрав формат, который несёт схему и поддерживает эволюцию — Avro или Parquet с реестром схем, — и решив заранее, какие изменения совместимы: добавление необязательного поля обычно да, удаление или смена типа нет. Зона подготовки должна принимать новую форму, не роняя всю загрузку, а закладываться надо на тихое расширение типа, которое портит агрегаты ниже по потоку.

3

Как измерять и автоматизировать качество данных?

Ответ

По названным измерениям — полнота, уникальность, валидность, своевременность, согласованность, — каждое выражено проверкой с порогом, а не ощущением. Автоматизация означает, что проверки идут частью конвейера и могут его остановить, потому что отчёт о качестве, который никто не читает, качеством не управляет. Пропускают обычно своевременность, а устаревшие данные, выглядящие корректно, вредят больше, чем явно отсутствующие.

4

Джоба, шедшая двадцать минут, теперь идёт четыре часа. Как искать причину?

Ответ

Начать с того, что изменилось: объём данных, перекос, размер кластера или код. Затем смотреть на стадии — одна стадия, занимающая большую часть времени, обычно означает shuffle, а несколько задач, идущих намного дольше остальных, означают перекос. Перекос оказывается ответом чаще, чем ожидают, а лечится он подсолкой ключа, рассылкой малой стороны или перепартиционированием.

5

Что такое медальонная архитектура и какую проблему она решает?

Ответ

Bronze держит сырые загруженные данные, silver — очищенные и приведённые, gold — агрегаты бизнес-уровня. Решает она то, что преобразования запутываются, когда каждый читает откуда удобно: со слоями происхождение читаемо, а плохую загрузку можно переработать из bronze, не обращаясь заново к источнику. Это соглашение, а не технология, и вся её ценность в том, чтобы её соблюдали.

6

Когда вы принимаете eventual consistency в платформе данных?

Ответ

Почти всегда для аналитики, потому что дашборд, отстающий на минуту, ничего не меняет, а цена сильной согласованности в распределённом хранилище — доступность во время сетевого разделения. Не принимаете там, где решение ниже по потоку финансовое или регуляторное, или где две системы обязаны согласиться о числе в один момент. Важно, чтобы выбор был проговорён: неприятность в том, что о нём узнают во время аудита.

🦎

Прочитать ответы недостаточно

На собеседовании ты говоришь вслух под давлением. Кем задаст эти же вопросы, оценит каждый ответ и покажет, что именно подтянуть.

Пройти интервью Senior Data Engineer →
Бесплатно · 3 интервью в месяц

Другие уровни — Data Engineer

Junior Data EngineerMiddle Data EngineerВсе вопросы Data Engineer

Другие специализации

🔍Senior QA Manual🤖Senior QA AutomationSenior Java Backend🐍Senior Python Backend🐘Senior PHP Backend🦫Senior Go Backend🟢Senior Node.js Backend💎Senior Ruby on Rails🟣Senior .NET Backend Developer🔷Senior C++