🎁 Зарегистрируйтесь и получите до 30 минут бесплатного использования онлайн-ИИ. Банковская карта не требуется.

Вопросы и ответы для собеседования по Databricks: 25 вопросов по Spark, Delta Lake и пайплайнам

August 31, 2026
Вопросы для собеседования по Databricks с ответами о перекосах и shuffle в Spark, Delta Lake, MERGE, OPTIMIZE, Unity Catalog, медальонной архитектуре и сценариях медленных заданий.
Вопросы и ответы для собеседования по Databricks: 25 вопросов по Spark, Delta Lake и пайплайнам
вопросы для собеседования по Databricks
вопросы и ответы для собеседования по Databricks
вопросы для собеседования по Delta Lake
вопросы для собеседования по Spark Databricks

Собеседования в Databricks обычно совмещают Apache Spark (как выполняются задания, почему они работают медленно), Delta Lake (что делает таблицы надёжными) и платформу (кластеры, задания, управление). Самые сильные ответы связывают каждое понятие с реальной проблемой — например, перекосом при соединении, мелкими файлами или конвейером, который нужно безопасно перезапустить.

Databricks довольно часто переименовывает и реорганизует продукты, поэтому уточняйте, какие названия вы использовали (например, Delta Live Tables, теперь часть семейства Lakeflow), и сверяйтесь с описанием вакансии по стеку.

Ниже — 25 вопросов с ответами.

Платформа и архитектура

1. Что такое Databricks и что такое lakehouse?

Databricks — это облачная платформа для данных и ИИ, построенная вокруг Apache Spark. Lakehouse хранит данные в открытых форматах в облачном объектном хранилище и добавляет сверху надёжность и управление уровня хранилища данных (warehouse), так что одна копия данных может обслуживать инженерию, аналитику и машинное обучение.

2. В чём разница между кластерами общего назначения, кластерами для заданий и SQL-хранилищами?

Кластеры общего назначения — для интерактивной работы и разработки. Кластеры для заданий запускаются под запланированное задание и выключаются после его завершения, что обходится дешевле. SQL-хранилища — это вычислительные ресурсы, настроенные под SQL- и BI-запросы.

3. Как вы контролируете затраты?

Используйте кластеры для заданий в продакшене, автоотключение на интерактивных кластерах, автомасштабирование с разумными лимитами, правильно подобранные типы инстансов, spot-инстансы для отказоустойчивых задач, политики кластеров, чтобы ограничить то, что люди могут создавать, и теги для отчётности по затратам.

4. Что такое Unity Catalog?

Это слой управления для ресурсов данных и ИИ. Он даёт трёхуровневое пространство имён (каталог, схема, таблица), централизованный контроль доступа, происхождение данных (lineage) и аудит across рабочих пространств.

Delta Lake

5. Что такое Delta Lake и почему стоит использовать его вместо обычного Parquet?

Delta Lake — это формат таблиц, который добавляет журнал транзакций к файлам Parquet. Он обеспечивает ACID-транзакции, принудительное применение и эволюцию схемы, путешествие во времени и эффективные обновления и удаления. У обычного Parquet нет транзакций, поэтому неудачная запись может оставить частичные данные, а читатели могут увидеть несогласованное состояние.

6. Как работает журнал транзакций Delta?

Каждый коммит добавляет JSON-запись в папку _delta_log с периодическими контрольными точками. Журнал перечисляет, какие файлы данных входят в таблицу на каждой версии. Читатели используют его, чтобы увидеть согласованный снимок, а писатели — оптимистичную конкурентность, повторяя попытку или завершаясь ошибкой при конфликте с другим коммитом.

7. Что такое путешествие во времени?

Это запрос более ранней версии таблицы по номеру версии или временной метке — для аудита, отладки или отката.

SELECT * FROM sales VERSION AS OF 12;
RESTORE TABLE sales TO VERSION AS OF 12;

8. Как выполнить upsert данных с помощью Delta?

С помощью MERGE INTO:

MERGE INTO customers t
USING updates s ON t.id = s.id
WHEN MATCHED THEN UPDATE SET *
WHEN NOT MATCHED THEN INSERT *;

Убедитесь, что в источнике одна строка на ключ, иначе слияние завершится ошибкой или даст неверный результат.

9. Что делают OPTIMIZE и VACUUM?

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

10. Как организовать данные для быстрых запросов?

Партиционируйте только по столбцам с низкой кардинальностью, по которым запросы часто фильтруют, и держите партиции достаточно крупными. Избыточное партиционирование создаёт много мелких файлов. Для остальных столбцов используйте Z-упорядочивание или liquid clustering (более новый подход), которые кластеризуют данные так, что запросы могут пропускать файлы.

Основы Spark

11. Что такое трансформации и действия и что такое ленивые вычисления?

Трансформации, такие как filter и select, строят план, но не выполняются. Действия, такие как count и write, запускают выполнение. Поскольку Spark сначала видит весь план целиком, он может его оптимизировать.

12. Что такое shuffle и почему он дорого стоит?

Shuffle перемещает данные между экзекьюторами по сети, чтобы строки с одинаковым ключом оказались вместе — как при join, groupBy и distinct. Это связано с дисковым и сетевым вводом-выводом, поэтому сокращение shuffle — главный путь к ускорению задач.

13. Как Spark соединяет две таблицы и как это ускорить?

По умолчанию большие join выполняются через shuffle (sort-merge) join. Если одна таблица небольшая, broadcast join рассылает её на каждый экзекьютор и позволяет избежать shuffle большой таблицы.

from pyspark.sql.functions import broadcast
df = big.join(broadcast(small), "id")

14. Что такое перекос данных и как его исправить?

Несколько ключей содержат большую часть строк, поэтому несколько задач выполняются значительно дольше остальных. Признак — одна долго работающая задача в Spark UI. Способы исправления: обработка перекоса в adaptive query execution, salting ключа, broadcast меньшей стороны или отфильтровывание null- или дефолтных ключей, вызывающих перекос.

15. Что такое adaptive query execution (AQE)?

Spark корректирует план во время выполнения, используя реальную статистику: он может объединять мелкие shuffle-партиции, переключать стратегии join и разделять перекошенные партиции. В последних версиях включён по умолчанию.

16. В чём разница между repartition и coalesce?

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

17. Когда стоит кэшировать DataFrame?

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

18. Почему встроенные функции предпочтительнее Python UDF?

Встроенные функции выполняются внутри JVM и могут быть оптимизированы. Python UDF перемещают данные между JVM и Python и непрозрачны для оптимизатора, поэтому они медленнее. По возможности используйте встроенные функции или pandas UDF.

Пайплайны

19. Что такое медальонная архитектура?

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

20. Что такое Auto Loader?

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

21. Как Structured Streaming обрабатывает сбои и обеспечивает exactly-once?

Он использует чекпоинты, которые хранят прогресс и состояние, поэтому перезапущенный запрос продолжает с того места, где остановился. С воспроизводимыми источниками и идемпотентными или транзакционными приёмниками, такими как Delta, вы получаете сквозной результат exactly-once.

22. Как сделать пайплайн безопасным для повторного запуска?

Сделайте записи идемпотентными: используйте MERGE по ключу, перезаписывайте конкретную партицию или используйте run ID, чтобы избежать дубликатов. Держите диапазон входных данных задачи явным и логируйте количество строк, чтобы можно было проверять результаты.

23. Как проводить проверки качества данных?

Используйте ожидания или ограничения в пайплайне (например, ограничения Delta или декларативные ожидания пайплайна), проверяйте количество строк, null-значения и уникальность, а плохие строки отправляйте в карантин, а не проваливайте всю загрузку — в зависимости от договорённостей с потребителями данных ниже по потоку.

Сценарии

24. Задача, которая выполнялась 20 минут, теперь занимает три часа. Что вы делаете?

  1. Сравните Spark UI для обоих запусков: какой этап стал медленнее?
  2. Проверьте размер входных данных и не выросла ли таблица или не потеряла ли она свою раскладку, например из-за множества мелких файлов.
  3. Поищите перекос на медленном этапе и сброс на диск (spill).
  4. Проверьте изменения кластера, например меньше воркеров или изменённый тип инстанса.
  5. Проверьте изменения в коде или настройках Spark, а также новый join или UDF.
  6. Устраните причину (компакция, broadcast, обработка перекоса или размер кластера) и добавьте мониторинг.

25. Спроектируйте пайплайн, который загружает ежедневные JSON-файлы и питает дашборд.

«Auto Loader читает новые файлы в bronze-таблицу Delta с сырыми данными и метаданными. Задача парсит и очищает их в silver, дедуплицируя по ключу с помощью MERGE. Таблица gold агрегирует данные для дашборда, который читает из SQL-хранилища. Unity Catalog управляет доступом, ожидания отлавливают плохие данные, а задача выполняется на job-кластере с оповещениями при сбое и при аномалиях в количестве строк.»

Как подготовиться

Проработайте блокнот, который читает файл, соединяет его с другой таблицей, записывает в Delta и использует MERGE. Откройте Spark UI и найдите shuffle и перекошенную задачу. Подготовьте одну историю об ускорении или исправлении пайплайна — с цифрами. По смежным темам смотрите наши руководства по Kafka, Snowflake и Talend.

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

Практикуйте ответы для собеседования по Databricks с YesToTheOffer

Пройдите mock-техническое собеседование, объясните дизайн пайплайна вслух и просмотрите расшифровку afterward. 30 бесплатных минут, без подписки.

iOS & Android — Скоро
Цены