Назад к материалам

Видео + статья / Собеседования

Собеседование DWH-аналитика: архитектура хранилища и SQL

Разбираем вопросы DWH-аналитика: слои хранилища, MPP, модели данных, ETL и ELT, историчность и SQL-задачи.

Опубликовано
Обновлено
Видео вышло
Видео
13:55
Текст
5 минут

Если ролик не загружается, выберите другую площадку.

Смотреть на

DWH-аналитик отвечает за то, чтобы данные из разных систем превратились в понятное и надёжное хранилище. На собеседовании проверяют не набор сокращений, а способность проследить весь путь данных: от источника до витрины и SQL-запроса. Ниже мы собрали правильные ответы на основные вопросы реального интервью без личных данных участников.

Что такое DWH и какие слои в нём бывают?

DWH, или Data Warehouse, — это хранилище согласованных данных для аналитики и отчётности. Данные приходят из нескольких источников, проходят очистку и преобразование, а затем становятся доступны потребителям в единой модели.

Обычно путь выглядит так:

  1. Сырые данные попадают в staging-слой почти без изменений.
  2. В детальном слое значения очищаются, приводятся к общим справочникам и правилам.
  3. Витрины собирают готовые срезы под продажи, маркетинг, финансы или другую область.

Витрина отличается от отчёта: витрина хранит подготовленные данные, а отчёт показывает их пользователю. Data Lake чаще сохраняет большие объёмы данных ближе к исходному виду. Lakehouse объединяет свойства озера и управляемого аналитического хранилища.

Как работают Hadoop, Greenplum, MPP и шардирование?

Hadoop — экосистема для распределённого хранения и обработки данных, а HDFS — её файловая система. В HDFS метаданными управляет NameNode, сами блоки хранят DataNode. Документация Apache отдельно подчёркивает высокую пропускную способность и работу с крупными наборами данных.

Greenplum — аналитическая СУБД на основе PostgreSQL с архитектурой MPP. Координатор разбивает запрос на части, а сегменты выполняют их параллельно. Скорость зависит от ключа распределения: перекос данных заставит один узел работать дольше остальных.

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

Чем отличаются звезда, снежинка и Data Vault?

В звезде таблица фактов связана напрямую с таблицами измерений. Такая модель понятна аналитикам и даёт короткие запросы. В снежинке измерения дополнительно нормализованы: повторов меньше, но связей и JOIN становится больше.

Пример звезды с таблицей фактов и связанными измерениями

В центре находятся измеримые события, вокруг — контекст для фильтрации и группировки. Источник: Microsoft Learn.

В Data Vault данные разделяют на хабы с бизнес-ключами, линки со связями и сателлиты с описательными атрибутами и историей. Якорное моделирование тоже рассчитано на изменения схемы, но использует собственный набор сущностей. На интервью не нужно доказывать, что одна модель всегда лучше: назовите объём изменений, требования к истории и удобство потребителей.

Чем ETL отличается от ELT и как хранить историю?

В ETL данные преобразуются до загрузки в целевое хранилище, а в ELT — уже внутри него. Microsoft описывает выбор через возможности целевой системы и место выполнения тяжёлых преобразований.

Для истории измерений часто применяют SCD:

  • SCD1 перезаписывает значение и не хранит прошлое состояние;
  • SCD2 добавляет новую строку с периодом действия версии;
  • SCD3 хранит ограниченное число состояний в отдельных полях.

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

Как отвечать на SQL-задачи про NULL и оконные функции?

Сначала определите ожидаемый результат запроса, затем проверяйте синтаксис и типы. Частые ошибки из интервью: неоднозначное имя столбца после JOIN, сравнение через = NULL вместо IS NULL, неверное число аргументов функции и сравнение несовместимых типов.

RANK() оставляет пропуски после одинаковых значений, а DENSE_RANK() — нет. Это поведение зафиксировано в документации PostgreSQL. Агрегаты обычно игнорируют NULL, но COUNT(*) считает все строки.

SELECT
  employee_id,
  salary,
  RANK() OVER (ORDER BY salary DESC) AS rank_with_gaps,
  DENSE_RANK() OVER (ORDER BY salary DESC) AS rank_without_gaps
FROM employees;

Если две зарплаты делят первое место, следующий RANK() будет равен трём, а DENSE_RANK() — двум. На собеседовании полезно не только назвать разницу, но и вручную показать результат на трёх строках.

Итог: получил ли кандидат оффер?

Да, фактический результат раскрыт: кандидат получил оффер на 265 000 рублей. Ответы были неровными: базовые понятия хранилищ и SQL знакомы, но в распределённых системах и моделировании не везде хватало глубины. При этом кандидат смог поддерживать разговор, отвечал на большую часть вопросов и показал достаточную основу для роли.

Мы бы перед следующим интервью отдельно повторили MPP, различия архитектур и проверку SQL-запросов. Сделать это можно в тренажёре собеседований ЮНИКОД, а если нужен полный маршрут от обучения до трудоустройства — посмотреть программу «Оффер под ключ».

Источники

частые вопросы

Короткие ответы

Нужно ли DWH-аналитику программировать на Python?

Для старта важнее уверенный SQL, понимание баз данных и моделей хранилища. Python расширяет возможности, но не заменяет основную базу профессии.

Чем DWH-аналитик отличается от обычного аналитика данных?

DWH-аналитик проектирует хранение, слои и витрины данных. Аналитик данных чаще использует готовые наборы, чтобы отвечать на бизнес-вопросы.

Как тренировать SQL перед собеседованием?

Решайте задачи на JOIN, NULL, оконные функции и поиск ошибок. После каждого решения объясняйте, какой набор строк вернёт запрос и почему.

следующий шаг

Освойте профессию и выйдите на рынок с поддержкой

В программе «Оффер под ключ» мы соединяем обучение, практику, подготовку резюме и прохождение собеседований.

Посмотреть программу →