Перейти к содержимому
На этой странице

Базы данных и системы обработки данных

Все темы Data Scientist

Подтемы:

В чем отличия между нереляционными (NoSQL) и реляционными (SQL) базами данных, и для каких целей они обычно применяются?

Нереляционные (NoSQL) и реляционные (SQL) базы данных отличаются по структуре данных, модели запросов и способу обработки информации:

Реляционные базы данных (SQL):

  • Организованы в виде таблиц с жесткими схемами и строгими правилами отношений между таблицами.

  • Для доступа и обработки данных используется язык структурированных запросов (SQL).

  • Подходят для приложений с жесткими требованиями к структуре данных и целостности, таких как финансовые системы, системы управления заказами и CRM.

Нереляционные базы данных (NoSQL):

  • Основаны на различных моделях данных, таких как документы, ключ-значение, столбцы или графы.

  • Обычно не имеют жестких схем и позволяют гибко хранить разнородные данные.

  • Предоставляют горизонтальное масштабирование и высокую производительность при работе с большими объемами данных.

  • Часто используются для хранения и обработки полуструктурированных или неструктурированных данных, таких как веб-логи, социальные сети, аналитика больших данных и системы интернета вещей (IoT).


Указана база PosgreSQL. Вы ее самостоятельно разворачивали, в контейнере?

Опишите свой реальный опыт развёртывания PostgreSQL. Если использовали Docker, расскажите об образе, настройках подключения, постоянном томе для данных и запуске через Docker CLI или Compose. Если самостоятельно базу не разворачивали, укажите это прямо.


Как получить план выполнения запроса (EXPLAIN/EXPLAIN ANALYZE)?

Чтобы получить план выполнения запроса в PostgreSQL, вы можете использовать команду EXPLAIN перед вашим SQL-запросом. Если вы хотите выполнить запрос и получить его план выполнения, используйте команду EXPLAIN ANALYZE.


Что представляет собой Apache Spark и какие цели он решает?

Apache Spark - это распределенная вычислительная система, предназначенная для обработки и анализа больших объемов данных. Он предоставляет высокоуровневый API для работы с данными, включая операции над данными в памяти, потоковую обработку, машинное обучение и анализ графов. Spark использует концепцию Resilient Distributed Datasets (RDD), которая позволяет выполнить операции над данными в распределенной среде с высокой отказоустойчивостью.

Цели Apache Spark:

  1. Ускорение обработки данных: Spark обеспечивает высокую производительность за счет выполнения операций в памяти и оптимизации планирования выполнения задач.

  2. Обработка больших данных: Spark позволяет обрабатывать данные, которые не помещаются в память одного узла, путем распределения их на кластер узлов.

  3. Многозадачность и гибкость: Spark поддерживает широкий спектр задач обработки данных, включая аналитику, машинное обучение, потоковую обработку и анализ графов.

  4. Упрощение разработки: Spark предоставляет высокоуровневые API на разных языках программирования, таких как Scala, Java, Python и R, что облегчает разработку и развертывание приложений обработки данных.


Почему join двух таблиц может неожиданно исчерпать память?

Главная причина неожиданного роста join состоит в неуникальных ключах. Если одному ключу соответствуют m строк слева и n справа, результат содержит m*n строк. До join проверяют уникальность, распределение multiplicity и оценивают размер результата. Помогают фильтрация и выбор колонок до соединения, подходящие типы, индексы, партиционирование и выполнение join в СУБД. Chunking снижает пиковую память, но не спасает от логически огромного результата. После join проверяют число строк и гранулярность.


Чем SQLAlchemy Core отличается от ORM?

SQLAlchemy Core работает с Engine, соединениями, таблицами и expression language и возвращает строки результата. ORM связывает таблицы с Python-классами, управляет identity map, отношениями и unit of work через Session. Оба подхода используют parameter binding и общую SQL-базу; ORM не отменяет знания транзакций и запросов. Core удобен для явных bulk-запросов и SQL-подобной логики, ORM для доменных объектов и связей. Их можно сочетать в одной транзакции, контролируя границы Session.

Собеседования: Data Science

Смотри записи интервью, узнай, какие вопросы задают и как отвечают кандидаты.

Вопросы и ответы

Не нашли ответ? Напишите мне в чат. Я делаю Шпаргалку и сам отвечаю на сообщения. Расскажите, что не работает или чего вам не хватает. Может, смогу сразу взять это в работу.

Откуда взяты вопросы?

Из реальных собеседований. Основой подборки стал опыт Вадима Новосёлова: он проходил интервью и записывал вопросы. Подробнее о материалах.

Насколько эти вопросы актуальны?

Эти вопросы встречались нам на реальных собеседованиях в 2025 году. Мы регулярно проходим собеседования и пополняем подборку новыми вопросами. Основы профессии и ключевые технологии остаются востребованными годами, а детали конкретных инструментов и версий стоит сверять с текущей документацией.

На какой уровень рассчитана подборка?

Мы проходили собеседования на вакансии уровня Middle+, а иногда и на Senior-позиции. Вопросы из этих интервью вошли в подборку. Направления работы: Data Scientist, ML-инженер. Глубина обсуждения зависит от вакансии: будь готов объяснить основную идею, привести практический пример и разобрать ограничения и альтернативы решения.

Этот вопрос точно будет на моём собеседовании?

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