Пример ответа
1) Короткий ответ
Data Warehouse (DWH) — это структурированное хранилище для очищенных данных, оптимизированное для аналитики и отчетности, в то время как Data Lake — это хранилище сырых данных любого формата, предназначенное для исследований и ML.
2) Сравнение: Data Warehouse vs Data Lake
* Структура данных:
* DWH: Схема-on-write (данные структурируются и очищаются перед загрузкой). Жесткая схема, высокая качество.
* Data Lake: Схема-on-read (данные хранятся в сыром виде, структура накладывается при чтении). Гибкость, но риск "болота данных".
* Целевые пользователи и use cases:
* DWH: Бизнес-аналитики, отчетность, дашборды. SQL-запросы, агрегации, исторический анализ.
* Data Lake: Data Scientists, инженеры данных. Исследовательский анализ, ML, обработка неструктурированных данных (логи, изображения).
* Технологии и стоимость:
* DWH: Snowflake, BigQuery, Redshift. Колоночное хранение, высокая производительность на сложных запросах.
* Data Lake: S3, ADLS, GCS + Spark/Presto. Дешевое хранение, гибкость обработки.
Рекомендация: Используйте Data Lake для сбора и исследования сырых данных. Стройте Data Warehouse поверх него для структурированной аналитики. Современный подход — Lakehouse (объединяет преимущества обоих).
5) Пример архитектуры современного подхода
```
Data Sources → Data Lake (S3) → ETL/ELT → Data Warehouse (Snowflake)
↓ ↓
Raw Data Processed Data
↓ ↓
ML/Research Business Analytics
```
6) Follow-up (вопросы интервьюеров + короткие ответы):
* Когда Data Lake превращается в Data Swamp?
* Ответ: При отсутствии каталога данных, управления качеством и метаданными.
* Что такое Data Lakehouse?
* Ответ: Архитектура, сочетающая гибкость Data Lake с управлением и транзакционностью DWH (например, через Delta Lake/Iceberg).
7) Практический совет (2 шага на неделю):
1. Спроектируйте гибридную архитектуру: Для вашего проекта определите, какие данные должны попадать в Data Lake (сырые логи, ML-фичи), а какие — в DWH (очищенные бизнес-метрики).
2. Протестируйте подход Lakehouse: Разверните локально Delta Lake на основе Parquet-файлов и выполните операции ACID (UPDATE, MERGE) поверх объектного хранилища.