Перейти к содержанию

Data Warehouse vs Data Lake vs Lakehouse

Сравнения · Полная статья

Тип материала: инженерное сравнение; выводы зависят от требований и условий эксплуатации. Схемы и примеры иллюстративны.

Матрица — INFERENCE. Термины описывают architectural/storage choices; реальные продукты частично пересекаются. Схема и сценарии — HYPOTHETICAL.

Матрица выбора

Критерий Warehouse Lake Lakehouse
Основной contract Управляемые analytical tables и SQL Объекты/raw datasets с отдельными readers Table semantics поверх lake storage
BI/reporting Сильный типичный сценарий Требует engines/modeling/governance Требует compatible SQL engines/modeling
Raw/разнообразные inputs Staging/external capabilities зависят от продукта Естественное размещение original files Raw coexistence + structured managed tables
ML/exploration Зависит от integration/export Гибкий доступ, но нужен контроль Совместный доступ через table snapshots
Transaction semantics Проверять конкретный engine и scope Plain files не дают table ACID Проверять table format, catalog и writers
Maintenance Query/workload/cost management Schemas, files, catalog и lifecycle Дополнительно compaction/snapshots/concurrency
Replay Из сохранённой source history При сохранённой полноте raw В пределах history/snapshot retention
Главный risk Неучтённые workload/cost ограничения Data swamp и частичные datasets Несовместимые engines и ложное multi-table ACID

Lakehouse может сочетаться с warehouse и lake, а medallion может быть реализован в любом достаточно управляемом analytical store. Наличие Gold layer не определяет формат storage.

Выбор по бизнес-сценарию

Закрываемая FinTech отчётность: если команда умеет SQL, входы структурированы, а governance и managed serving важнее универсального file access, warehouse — сильная отправная точка. Нужны report versions и source reconciliation независимо от продукта.

Оригиналы bank statements и odds archive: lake удобен для исходных файлов и длинной истории. Требуются completeness manifest, access control и schema/provenance. Разложить файлы по датам недостаточно для доказательства полноты.

Общие history tables для BI и ML: lakehouse полезен при согласованном table/catalog contract и нескольких engines. До внедрения проверить write/read compatibility, maintenance и recovery catalog. Нельзя сравнить два продукта по vendor benchmark без одинакового workload.

Небольшая платформа: возможна одна SQL-база для analytical marts плюс object archive. Migration в сложный lakehouse должна окупить эксплуатацию.

Возможный hybrid

flowchart LR
    S["Источники"] --> O["Original files в lake"]
    O --> T["Managed lakehouse history"]
    T --> M["ML / exploration"]
    T --> W["Warehouse marts, если нужны"]
    W --> B["Регламентная BI"]

Любая дополнительная copy создаёт delivery/retention boundary. Для отчёта фиксировать input table versions, cutoff, dimension versions и rule version; «все прочитали latest» не означает согласованный период.

Ограничения и источники

FACT: CIDR 2021 paper обосновывает lakehouse; это исследовательская позиция авторов с vendor affiliation. Paper. FACT: Iceberg reliability и Delta concurrency docs описывают table-level protocols. Iceberg, Delta. Эти источники не подтверждают общую transaction между произвольными tables/stores.

FACT: Monzo описал BigQuery/dbt в 2021 году, FedEx — Medallion platform в 2025. Monzo, FedEx. Выбор этих компаний не является универсальным ответом для других нагрузок.

Типичные ошибки проектирования

Выбирать по storage price; назвать Parquet directory транзакционной таблицей; не backup-ить catalog; считать time travel бессрочным audit; объединять разные engines без compatibility testing.

Вопросы на собеседовании

Нужен ли lakehouse всем BI-командам? Нет; определить workloads, governance, skills и стоимость эксплуатации.

Что проверять при disaster recovery? Metadata/catalog, data files, permissions и корректность queries на восстановленном consistent snapshot.

Практические упражнения

Для payout reporting задайте source cutoff и воспроизводимый dataset release в warehouse и lakehouse вариантах. Покажите, что случится, если одна dimension обновится между двумя queries. Ожидается явный contract согласованности, а не ссылка на слово ACID.

Дополнительные источники

Medallion; Polyglot Persistence.