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

Хранилища

Все темы Data Engineer

Был ли опыт работы с хранилищами?

Опишите свой реальный опыт с хранилищами: проектирование схем, загрузку, проверку качества данных или оптимизацию запросов. Укажите систему и свою ответственность. Если только изучали DWH, отделите теорию от практики.


Какие существуют облачные хранилища?

Некоторые из популярных облачных хранилищ данных включают Amazon S3, Google Cloud Storage, Microsoft Azure Blob Storage, IBM Cloud Object Storage и Alibaba Cloud Object Storage. Эти облачные хранилища предоставляют масштабируемое и надежное хранилище для различных типов данных и приложений.


Какие типы хранилищ данных вы используете и для каких задач они подходят?

Существует несколько типов хранилищ данных, которые используются для различных задач:

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

    • Используются для транзакционных систем и аналитических запросов.

    • Примеры: MySQL, PostgreSQL, Oracle.

  2. NoSQL базы данных:

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

    • Примеры: MongoDB, Cassandra, Redis.

  3. Объектные хранилища данных:

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

    • Примеры: Amazon S3, Google Cloud Storage.

  4. Колонковые базы данных:

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

    • Пример аналитической колонковой СУБД: Amazon Redshift. HBase относится к wide-column/column-family хранилищам и имеет другую модель доступа.

  5. Графовые базы данных:

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

    • Примеры: Neo4j, ArangoDB.


Как вы выбираете подходящее хранилище данных для конкретного проекта?

При выборе подходящего хранилища данных для конкретного проекта учитываются следующие факторы:

  1. Тип данных:

    • Анализируются структурированные, полуструктурированные или неструктурированные данные.
  2. Объем данных:

    • Учитывается текущий и прогнозируемый объем данных.
  3. Производительность:

    • Требования к скорости чтения и записи данных.
  4. Масштабируемость:

    • Возможность горизонтального и вертикального масштабирования.
  5. Сложность запросов:

    • Анализируются требования к аналитическим запросам и транзакциям.
  6. Стоимость:

    • Оцениваются затраты на внедрение и эксплуатацию хранилища данных.
  7. Безопасность:

    • Учитываются требования к защите данных и соответствию нормативным требованиям.

Объясните различия между объектными, блочными и файловыми хранилищами.

Основные различия между объектными, блочными и файловыми хранилищами:

  1. Объектные хранилища:

    • Хранят данные в виде объектов с уникальными идентификаторами.

    • Подходят для хранения неструктурированных данных, таких как мультимедиа и архивы.

    • Примеры: Amazon S3, Google Cloud Storage.

  2. Блочные хранилища:

    • Хранят данные в виде блоков фиксированного размера.

    • Используются для хранения данных, требующих высокой производительности и низкой задержки.

    • Примеры: SAN, SSD.

  3. Файловые хранилища:

    • Хранят данные в виде файлов и папок.

    • Используются для совместного доступа к файлам и управления файловыми системами.

    • Примеры: NFS, SMB.


Когда выбрать Hive вместо PostgreSQL?

PostgreSQL выбирают для OLTP, ограничений, транзакций, частых точечных чтений и updates с малой задержкой. Hive является SQL-слоем и каталогом над распределенными файлами; запрос исполняет движок вроде Tez или Spark, поэтому он подходит большим batch-сканам и append-oriented данным, но не интерактивной записи строк. Современные lakehouse engines размывают границу, поэтому сравнивают workload, latency, concurrency и стоимость. Выбор подтверждают главным workload, требованиями к задержке, обновлениям, совместимости схемы и стоимости хранения.


Что хранит Hive Metastore?

Hive Metastore хранит metadata databases и tables: колонки, partition keys и partitions, location, file format, SerDe и свойства. Физические строки остаются в HDFS, S3 или другом storage. Spark, Hive и другие совместимые движки используют каталог для планирования. Доступность и согласованность Metastore критичны; изменение файлов мимо каталога может оставить устаревший список партиций. Выбор подтверждают главным workload, требованиями к задержке, обновлениям, совместимости схемы и стоимости хранения.


Что должен хранить каталог метаданных data-платформы?

Каталог должен связывать техническую схему и location с бизнес-описанием, grain, владельцем и SLA. Нужны версии, partitions, классификация чувствительности, lineage до источников и потребителей, freshness и результаты quality checks. История изменений и аудит показывают актуальность metadata. API и поиск позволяют инструментам и людям читать один контракт; каталог без процесса ownership быстро превращается в устаревший список таблиц. Выбор подтверждают главным workload, требованиями к задержке, обновлениям, совместимости схемы и стоимости хранения.


Как выбрать между Parquet, ORC, Avro и JSON?

Parquet и ORC колоночные: подходят аналитике, projection и predicate pushdown, хорошо сжимают однородные столбцы. Avro строковый бинарный формат со схемой, удобный для событий и последовательного чтения. JSON читаем человеком и широко совместим, но объемен и слабо типизирован. Выбор учитывает schema evolution, splittability, поддержку движком, размер файлов и главный паттерн чтения, а не только compression ratio. Выбор подтверждают главным workload, требованиями к задержке, обновлениям, совместимости схемы и стоимости хранения.


Как выбрать кодек сжатия для data lake?

Кодек выбирают вместе с форматом и workload. Snappy и LZ4 обычно дают быстрое чтение при умеренном сжатии, gzip сильнее сжимает, но дороже CPU и отдельный gzip-файл плохо делится, Zstandard дает настраиваемый компромисс при поддержке движком. Для Parquet/ORC splittability обеспечивается структурой файла. Решение принимают benchmark на своих колонках, учитывая размер, scan time, CPU и совместимость всех readers. Выбор подтверждают главным workload, требованиями к задержке, обновлениям, совместимости схемы и стоимости хранения.

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

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

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

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

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

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

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

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

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

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