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

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

Собеседование аналитика данных в Aston: SQL, Python и ETL

Разбираем короткое собеседование аналитика данных: оконные функции, BI-системы, алгоритмическую сложность словаря и ETL-процессы.

Компания
Aston
Опубликовано
Обновлено
Видео вышло
Видео
5:31
Текст
4 минуты

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

Смотреть на

На коротком техническом интервью аналитика данных в Aston спрашивали оконные функции SQL, BI-инструменты, алгоритмическую сложность и устройство ETL. Вопросы выглядели простыми, но даже здесь можно потерять баллы, если назвать термин без механизма и рабочего примера.

Какие оконные функции использовал аналитик

Оконная функция вычисляет значение по связанным строкам, не объединяя их в одну строку, как делает GROUP BY. Например, LAG() возвращает предыдущее событие пользователя, LEAD() — следующее, а ROW_NUMBER() нумерует строки внутри группы. Документация PostgreSQL показывает, что окно задают через OVER, а группировку — через PARTITION BY.

Для пользовательского пути можно написать:

SELECT
  user_id,
  event_name,
  event_at,
  -- Предыдущее действие ищем отдельно для каждого пользователя.
  LAG(event_name) OVER (
    PARTITION BY user_id ORDER BY event_at
  ) AS previous_event
FROM product_events;

На собеседовании стоит назвать не только функцию, но и условие сортировки. Без стабильного ORDER BY база не знает, какое событие считать предыдущим.

Как рассказывать про BI-системы

Перечень Tableau, Power BI или Metabase показывает знакомство с интерфейсом, но почти ничего не говорит об аналитической работе. Лучше раскрыть один отчёт по четырём пунктам:

  1. Для кого он создан и какое решение помогает принять.
  2. Из каких таблиц или витрин получает данные.
  3. Какие метрики и фильтры содержит.
  4. Как проверяется свежесть и правильность чисел.

Например: «Собрал в Power BI воронку регистрации для продуктовой команды, связал события по пользователю, добавил разрез по источнику и сверил итоговые регистрации с транзакционной базой». Это конкретнее, чем «строил графики». Сама платформа включает подключение источников, подготовку данных, моделирование и публикацию отчётов — этапы перечислены в обзоре Power BI.

Что означает алгоритмическая сложность

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

Один проход по n строкам — O(n). Два последовательных прохода всё ещё дают O(n), потому что постоянный множитель отбрасывают. Вложенный полный проход обычно даёт O(n²). Сортировка общего назначения — чаще O(n log n).

Типичная ошибка. Говорить, что O(2n) быстрее или принципиально отличается от O(n).

Как лучше. Объяснить, что обе функции растут линейно, а затем отдельно обсудить постоянные расходы, если они значимы для практики.

Какая сложность доступа к dict в Python

Чтение, вставка и удаление по ключу в dict в среднем работают за O(1). Это достигается хэш-таблицей: Python вычисляет хэш ключа и находит подходящую позицию. При большом числе коллизий худший случай способен вырасти до O(n). Справочная таблица сложности операций приведена в Python Wiki.

На интервью важно произнести слово «в среднем». Ещё два условия сильного ответа: ключ должен быть хэшируемым, а равные ключи должны иметь одинаковый хэш. Скорость поиска по значению у словаря не становится O(1) — для него обычно нужен проход.

Что входит в ETL-процесс

ETL переносит данные из источников в целевое хранилище через преобразование по бизнес-правилам. Между этапами появляются очистка, дедупликация, объединение, проверка типов и контроль качества. В ELT сырые данные сначала загружают, а преобразования выполняют уже внутри мощного хранилища. Разницу подробно объясняет Azure Architecture Center.

Последовательность извлечения, преобразования и загрузки данных в ETL

Преобразование отделяет источники от подготовленного целевого хранилища. Источник: Microsoft Azure Architecture Center.

Сильный рабочий пример включает расписание, способ повторного запуска, обработку опоздавших данных и проверку результата. Фраза «инженеры настроили Airflow» не раскрывает вклад аналитика; можно объяснить, какие правила витрины и проверки вы передали команде.

Даже если пайплайн поддерживает отдельная команда, аналитик отвечает за смысл витрины. Он должен назвать гранулярность строки, ключи, правила расчёта и контрольные показатели. Это показывает понимание данных от источника до отчёта, а не только умение написать финальный SELECT.

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

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

Источники

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

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

Какие оконные функции нужно знать аналитику данных?

Как минимум ROW_NUMBER, RANK, DENSE_RANK, LAG, LEAD и агрегаты с OVER. Важно уметь объяснить PARTITION BY, ORDER BY и границы окна.

Нужно ли аналитику знать алгоритмическую сложность?

Да, на базовом уровне. Она помогает оценивать операции над коллекциями Python и замечать решения, которые плохо масштабируются.

Достаточно ли перечислить знакомые BI-системы?

Нет. Сильнее назвать отчёт, источники данных, модель, пользователей и решение, которое команда приняла с его помощью.

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

Закрепите SQL и Python перед собеседованием

Тренажёр ЮНИКОД собирает вопросы по аналитике данных в один маршрут и помогает проверить глубину каждого ответа.

Перейти в тренажёр →