Хранилища
Был ли опыт работы с хранилищами?
Опишите свой реальный опыт с хранилищами: проектирование схем, загрузку, проверку качества данных или оптимизацию запросов. Укажите систему и свою ответственность. Если только изучали DWH, отделите теорию от практики.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- Публичное собеседование data-инженера в X5 Tech · 19:53–21:29Собеседование · Ответ кандидата
Кандидат рассказывает о многослойном DWH: staging, промежуточных преобразованиях и витринах. Объясняет, как единый расчёт бизнес-метрик помогает избежать противоречащих друг другу отчётов.
Какие существуют облачные хранилища?
Некоторые из популярных облачных хранилищ данных включают Amazon S3, Google Cloud Storage, Microsoft Azure Blob Storage, IBM Cloud Object Storage и Alibaba Cloud Object Storage. Эти облачные хранилища предоставляют масштабируемое и надежное хранилище для различных типов данных и приложений.
Ссылки для изучения
Какие типы хранилищ данных вы используете и для каких задач они подходят?
Существует несколько типов хранилищ данных, которые используются для различных задач:
-
Реляционные базы данных (
RDBMS):-
Используются для транзакционных систем и аналитических запросов.
-
Примеры: MySQL, PostgreSQL, Oracle.
-
-
NoSQL базы данных:
-
Используются для хранения неструктурированных данных и больших объемов данных.
-
Примеры: MongoDB, Cassandra, Redis.
-
-
Объектные хранилища данных:
-
Используются для хранения больших объемов данных, таких как мультимедийные файлы и архивы.
-
Примеры: Amazon S3, Google Cloud Storage.
-
-
Колонковые базы данных:
-
Используются для аналитики и обработки больших объемов данных с высоким соотношением чтения к записи.
-
Пример аналитической колонковой СУБД: Amazon Redshift. HBase относится к wide-column/column-family хранилищам и имеет другую модель доступа.
-
-
Графовые базы данных:
-
Используются для работы с графовыми структурами данных и сложными связями.
-
Примеры: Neo4j, ArangoDB.
-
Ссылки для изучения
Как вы выбираете подходящее хранилище данных для конкретного проекта?
При выборе подходящего хранилища данных для конкретного проекта учитываются следующие факторы:
-
Тип данных:
- Анализируются структурированные, полуструктурированные или неструктурированные данные.
-
Объем данных:
- Учитывается текущий и прогнозируемый объем данных.
-
Производительность:
- Требования к скорости чтения и записи данных.
-
Масштабируемость:
- Возможность горизонтального и вертикального масштабирования.
-
Сложность запросов:
- Анализируются требования к аналитическим запросам и транзакциям.
-
Стоимость:
- Оцениваются затраты на внедрение и эксплуатацию хранилища данных.
-
Безопасность:
- Учитываются требования к защите данных и соответствию нормативным требованиям.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- Публичное собеседование data-инженера в X5 Tech · 21:29–22:31Собеседование · Ответ кандидата
На примере собственного проекта кандидат обосновывает выбор простого многослойного хранилища в ClickHouse: объёмы, стабильность бизнес-связей, размер команды и отсутствие необходимости в более сложной модели.
Объясните различия между объектными, блочными и файловыми хранилищами.
Основные различия между объектными, блочными и файловыми хранилищами:
-
Объектные хранилища:
-
Хранят данные в виде объектов с уникальными идентификаторами.
-
Подходят для хранения неструктурированных данных, таких как мультимедиа и архивы.
-
Примеры: Amazon S3, Google Cloud Storage.
-
-
Блочные хранилища:
-
Хранят данные в виде блоков фиксированного размера.
-
Используются для хранения данных, требующих высокой производительности и низкой задержки.
-
Примеры: SAN, SSD.
-
-
Файловые хранилища:
-
Хранят данные в виде файлов и папок.
-
Используются для совместного доступа к файлам и управления файловыми системами.
-
Примеры: 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, требованиями к задержке, обновлениям, совместимости схемы и стоимости хранения.
Ссылки для изучения





