---
title: DWH
questionDates:
  q-transfer-0199: '2026-10-01'
  q-transfer-0200: '2026-10-01'
  q-transfer-0286: '2026-10-01'
  q-transfer-0287: '2026-10-01'
seo:
  description: >-
    Тема «DWH» для собеседования Data Engineer. Что такое DWH? В чём отличие DWH
    от DataLake?
  title: DWH — Data Engineer
---

[Все темы Data Engineer](/prep/data-engineer)

## <strong>Что такое</strong> <code>DWH</code><strong>?</strong> [#q-14bee738d69b8135b45cc856ba950436]

DWH (Data Warehouse) - это специализированное хранилище данных, предназначенное для анализа и отчетности. Оно объединяет данные из различных источников в единое хранилище, где они структурированы и оптимизированы для аналитических запросов. DWH обеспечивает быстрый доступ к данным и поддерживает широкий спектр аналитических операций, таких как OLAP (Online Analytical Processing), отчетность и бизнес-анализ.

:::note[Ссылки для изучения]

1. [Хранилище данных: назначение, архитектура, витрины и отличие от озера](https://aws.amazon.com/ru/what-is/data-warehouse/)
   :::

---

## <strong>В чём отличие</strong> <code>DWH</code> <strong>от</strong> <code>DataLake</code><strong>?</strong> [#q-14bee738d69b813ea88ede775789fbc1]

Отличие между хранилищем данных <code>&#40;DWH&#41;</code> и озером данных <code>&#40;Data Lake&#41;</code> заключается в подходе к хранению и обработке данных.

{/* prettier-ignore */}
1. <code>DWH &#40;Data Warehouse&#41;</code>&#58;

    - Структурированные данные.

    - Данные предварительно обработаны и согласованы для аналитических задач.

    - Предназначен для анализа и отчетности.

1. <code>Data Lake</code>&#58;

    - Неструктурированные и полуструктурированные данные.

    - Хранение "сырых" данных в их первоначальном виде без предварительной обработки.

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

:::note[Ссылки для изучения]

1. [Хранилище данных: назначение, архитектура, витрины и отличие от озера](https://aws.amazon.com/ru/what-is/data-warehouse/)
   :::

---

## <strong>Объясните архитектуру типичного хранилища данных (</strong><code>DWH</code><strong>).</strong> [#q-14bee738d69b810fa868cda39c683ef3]

Типичная архитектура хранилища данных включает следующие компоненты&#58;

1. <code>ETL</code> <strong>(Extract, Transform, Load)</strong>&#58; Процессы
   извлечения данных из различных источников, их трансформации и загрузки в
   хранилище данных.

1. <code>Data Storage</code>&#58; Централизованное хранилище для
   структурированных и неструктурированных данных. Обычно использует реляционные
   СУБД, колоночные базы данных или распределенные файловые системы.

1. <code>Data Mart</code>&#58; Подмножества данных, ориентированные на
   конкретные бизнес-процессы или отделы.

1. <code>OLAP Cubes</code>&#58; Многомерные структуры данных для анализа и
   агрегации данных.

1. <code>BI Tools</code>&#58; Инструменты бизнес-анализа для визуализации данных
   и создания отчетов.

1. <code>Metadata Management</code>&#58; Управление метаданными для обеспечения
   качества и целостности данных.

:::note[Ссылки для изучения]

1. [Хранилище данных: назначение, архитектура, витрины и отличие от озера](https://aws.amazon.com/ru/what-is/data-warehouse/)
   :::

---

## <strong>Каковы основные отличия между</strong> <code>OLAP</code> <strong>и</strong> <code>OLTP</code> <strong>системами?</strong> [#q-14bee738d69b81aeae14d34db63019fd]

Основные отличия между <code>OLAP</code> и <code>OLTP</code>&#58;

- <code>OLAP</code> <strong>(Online Analytical Processing)</strong>&#58;
  Ориентированы на сложный анализ данных и бизнес-аналитику. Работают с большими
  объемами данных, часто агрегируют и обрабатывают исторические данные.

- <code>OLTP</code> <strong>(Online Transaction Processing)</strong>&#58;
  Ориентированы на выполнение транзакций в реальном времени. Обрабатывают
  небольшие объемы данных, часто обновляют данные, обеспечивают высокую скорость
  и надежность транзакций.

:::note[Ссылки для изучения]

1. [OLTP и OLAP: транзакционная и аналитическая нагрузки в YDB](https://yandex.cloud/ru/docs/ydb/concepts/oltp-and-olap)
   :::

---

## <strong>Какие</strong> <code>ETL</code> <strong>процессы вы использовали для загрузки данных в</strong> <code>DWH</code><strong>?</strong> [#q-14bee738d69b819b982ff75e50506bac]

Примерный <code>ETL</code> процесс включает&#58;

{/* prettier-ignore */}
1. <code>Extract</code> <strong>(Извлечение)</strong>&#58; Извлечение данных из различных источников (реляционные базы данных, файлы CSV, API).

    - Использование JDBC для подключения к базам данных.

    - Использование API и REST для извлечения данных из веб-источников.

    - Чтение файлов CSV, JSON и Parquet.

1. <code>Transform</code> <strong>(Трансформация)</strong>&#58; Преобразование данных для приведения к требуемому формату и структуре.

    - Очистка данных (удаление дубликатов, заполнение пропусков).

    - Преобразование типов данных.

    - Агрегация и обогащение данных.

    - Применение бизнес-правил.

1. <code>Load</code> <strong>(Загрузка)</strong>&#58; Загрузка преобразованных данных в хранилище данных.

    - Использование JDBC для вставки данных в реляционные базы данных.

    - Загрузка данных в распределенные файловые системы (например, HDFS).

    - Загрузка данных в колоночные базы данных (например, Amazon Redshift).

:::note[Ссылки для изучения]

1. [ETL: извлечение, очистка, преобразование и загрузка данных](https://aws.amazon.com/ru/what-is/etl/)
   :::

---

## Чем факты отличаются от измерений в DWH? [#q-transfer-0199]

Таблица фактов фиксирует событие или измерение процесса в выбранном grain и содержит меры и внешние ключи. Измерения описывают участников и контекст, по которым фильтруют и группируют: клиента, товар, дату. Grain объявляют до выбора столбцов, иначе появляются дубли и неверные суммы. Меры бывают аддитивными, полуаддитивными и неаддитивными; например, остаток нельзя бездумно суммировать по времени. Grain и временную семантику фиксируют до реализации, иначе технически корректный join даст неверную бизнес-метрику.

:::note[Ссылки для изучения]

1. [Факты, измерения и гранулярность: разделы 3.2 и 3.4 в ревью BI-модели](https://habr.com/ru/companies/lemana_tech/articles/948004/)
   :::

---

## Как типы SCD сохраняют историю измерений? [#q-transfer-0200]

SCD 1 заменяет значение и не хранит историю. SCD 2 добавляет новую версию строки с surrogate key, интервалом действия и признаком текущей записи, сохраняя состояние на дату. SCD 3 держит ограниченное число прежних значений в дополнительных столбцах. Тип выбирают по бизнес-вопросу: нужна ли реконструкция прошлого, аудит или только актуальное состояние. SCD 2 требует непересекающихся интервалов и корректного join по времени факта.

:::note[Ссылки для изучения]

1. [Теория и практика DWH: типы SCD 1, 2 и 3 и история измерений](https://habr.com/ru/articles/1073420/)
   :::

---

## Зачем разделять Staging и Data Mart? [#q-transfer-0286]

Staging принимает сырой снимок или поток с минимумом необратимых преобразований, фиксирует партию и позволяет повторить очистку без нового чтения источника. Data Mart публикует данные в бизнес-grain, с согласованными метриками и SLA для конкретных потребителей. Разделение упрощает аудит и backfill: ошибка витрины не требует заново извлекать источник, а сырой слой не становится пользовательским контрактом. Grain и временную семантику фиксируют до реализации, иначе технически корректный join даст неверную бизнес-метрику.

:::note[Ссылки для изучения]

1. [Антихрупкость DWH: историзируемый staging и слой витрин](https://habr.com/ru/articles/281553/)
   :::

---

## Чем витрина для BI отличается от датасета для ML? [#q-transfer-0287]

BI-витрина обычно оптимизирована под устойчивые метрики, агрегаты, понятные измерения и интерактивные запросы. ML-датасет связывает признаки с labels на корректный момент времени, чтобы исключить leakage, и должен воспроизводиться по версии данных и кода. Для online inference добавляются freshness и согласованность offline/online значений. Поэтому один физический источник возможен, но grain, SLA и проверки различаются. Grain и временную семантику фиксируют до реализации, иначе технически корректный join даст неверную бизнес-метрику.

:::note[Ссылки для изучения]

1. [BI-витрины: формат потребителя и быстрые интерактивные запросы](https://habr.com/ru/articles/281553/)
1. [ML-датасет: временные таргеты, утечки и воспроизводимость на примере рекомендаций](https://habr.com/ru/companies/sberbank/articles/1076666/)
   :::
