diff --git a/IT/DWH/layer1.md b/IT/DWH/layer1.md new file mode 100644 index 00000000..cbeea96b --- /dev/null +++ b/IT/DWH/layer1.md @@ -0,0 +1,221 @@ +## ai1 + +### 1 + +Разберу вопрос по частям: сначала — полная структура DWH с предшествующими слоями, затем — как назвать слой с отчётами и дашбордами. + +## Полная архитектура DWH: слои и их состав + +### Предшествующие презентационному слою + +1. **Staging Layer (промежуточный слой)** + * Назначение: временное хранение данных сразу после извлечения из источников. + * Состав: копии исходных данных без изменений, логи загрузки, контрольные суммы. + * Срок хранения: от нескольких часов до нескольких дней. + +2. **Raw Data Layer / ODS (Operational Data Store)** + * Назначение: первичная консолидация данных в неизменном виде. + * Состав: + * сырые данные из CRM, ERP, API, логов и т. д.; + * файлы форматов JSON, XML, CSV, XLSX; + * записи с ошибками и дубликатами (сохраняются для аудита); + * временные метки загрузки. + +3. **Core Layer / Integration Layer (ядро хранилища)** + * Назначение: очистка, нормализация и интеграция данных. + * Состав: + * очищенные и дедуплицированные записи; + * унифицированные справочники (клиенты, продукты, регионы); + * нормализованные таблицы в 3NF или Data Vault; + * суррогатные ключи; + * механизмы SCD (Slowly Changing Dimensions) для отслеживания изменений; + * единая структура данных с историей изменений. + +4. **Data Marts Layer (слой витрин данных)** + * Назначение: подготовка данных под конкретные бизнес‑задачи. + * Состав: + * тематические витрины (продажи, финансы, маркетинг, логистика); + * схемы «звезда» (Star Schema) и «снежинка» (Snowflake Schema); + * денормализованные таблицы для быстрого доступа; + * агрегированные показатели (месячные продажи, средний чек и т. п.). + +--- + +### Презентационный слой (Presentation / Business Intelligence Layer) + +**Назначение:** предоставление данных конечным пользователям в удобной для анализа форме. + +**Полный состав:** + +1. **Витрины данных (Data Marts)** + * специализированные подмножества данных для отделов или функций; + * оптимизированы для конкретных запросов (например, `sales_mart`, `finance_mart`). + +2. **Схемы «звезда» и «снежинка»** + * **Звезда:** центральная таблица фактов (Fact Table) + таблицы измерений (Dimension Tables); + * **Снежинка:** нормализованные таблицы измерений для уменьшения избыточности. + +3. **Материализованные представления (Materialized Views)** + * кэшированные результаты сложных запросов; + * ускоряют генерацию отчётов за счёт предварительного расчёта. + +4. **OLAP‑кубы (Online Analytical Processing Cubes)** + * многомерные структуры для интерактивного анализа; + * поддерживают операции: *drill‑down*, *roll‑up*, *slice*, *dice*; + * примеры инструментов: Microsoft Analysis Services, IBM Cognos. + +5. **Обогащённые таблицы и агрегаты** + * таблицы с предварительно рассчитанными KPI (выручка, маржинальность, retention); + * денормализованные структуры для минимизации JOIN‑ов. + +6. **Семантический слой (Semantic Layer)** + * бизнес‑глоссарий с определениями метрик; + * правила расчёта KPI; + * маппинг бизнес‑терминов на технические поля базы данных. + +7. **Метаданные и каталоги данных** + * описания источников, трансформаций, зависимостей; + * lineage данных (от источника до витрины); + * права доступа и политики безопасности. + +8. **Интерфейсы доступа** + * SQL‑эндпоинты для запросов; + * REST/SOAP API для интеграции с BI‑системами; + * подключения к OLAP‑серверам. + +--- + +## Как назвать слой с отчётами и дашбордами? + + +Этот слой **не является частью DWH** в классическом понимании. Он располагается *поверх* презентационного слоя и имеет несколько вариантов названий: + +1. **BI Layer (Business Intelligence Layer)** — наиболее распространённый термин. + * включает дашборды, отчёты, интерактивные визуализации; + * инструменты: Power BI, Tableau, Qlik, Looker. + +2. **Analytics Layer (аналитический слой)** — если акцент на продвинутой аналитике. + * содержит не только отчёты, но и модели машинного обучения, прогнозные дашборды. + +3. **Consumption Layer (слой потребления данных)** — универсальный вариант. + * охватывает все формы потребления данных: отчёты, API, экспорт в Excel, оповещения. + +4. **Reporting Layer (слой отчётности)** — если фокус строго на статических отчётах. + * подходит для сред с регламентированной отчётностью (финансы, госрегулируемые отрасли). + +5. **Presentation & Visualization Layer** — подчёркивает визуализацию. + * акцентирует внимание на дашбордах и интерактивных графиках. + +--- + +## Итоговая схема архитектуры + +``` +Источники данных + ↓ +Staging Layer + ↓ +Raw Data Layer / ODS + ↓ +Core Layer (интеграция и очистка) + ↓ +Data Marts Layer (витрины) + ↓ +Presentation Layer (агрегаты, кубы, семантика) + ↓ +BI Layer / Consumption Layer (отчёты, дашборды в Power BI/Tableau) +``` + +**Ключевой вывод:** отчёты и дашборды находятся в **BI Layer** (или Consumption Layer), который подключается к презентационному слою DWH, но не входит в его состав. + + +### 2 Data Marts & Presentation Layer + +В разговорах об архитектуре DWH действительно часто говорят, что Data Marts входят в состав презентационного слоя. Я бы сказала так: это не жёсткое правило, а распространённая практика, и тут есть важный нюанс, который часто упускают. + +**Суть в том, что термин «презентационный слой» (Presentation Layer) иногда используют как обобщающее понятие для всего, что находится ближе к конечному пользователю.** А Data Marts в этой логике — один из ключевых инструментов внутри него. То есть презентационный слой не обязательно состоит *только* из витрин: туда же могут входить семантические слои (semantic layer), материализованные представления, OLAP-кубы, а также сами инструменты визуализации (Power BI, Tableau, Qlik), через которые бизнес-пользователи строят отчёты и дашборды. [```1```](https://datafinder.ru/solutions/sales/customer-value-management-maximization/arhitektura-bi-i-dwh-dlya-cvm)[```7```](https://www.vlrtrain.com/2023/11/what-are-layers-of-data-warehouse.html)[```10```](https://www.rudderstack.com/learn/data-warehouse/data-warehouse-layer/) + +**Почему так?** Задача этого уровня — преобразовать тщательно подготовленную аналитическую модель (которая живёт в ядре DWH) в формат, удобный для потребления. Витрины данных как раз решают эту задачу: они создают тематические, часто денормализованные срезы (например, «продажи», «финансы», «маркетинг»), оптимизированные под конкретные задачи отдела. Это сокращает путь от сырых данных к отчёту и ускоряет работу аналитиков. [```3```](https://bi-data.ru/blog/2025/06/20/ods-%D0%B8-%D0%B2%D0%B8%D1%82%D1%80%D0%B8%D0%BD%D1%8B-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-data-marts-%D0%B2-bi/)[```12```](https://www.1cbit.ru/blog/dwh-data-lake-lakehouse-data-mart-klyuchevye-otlichiya/) + +**Но есть и другой взгляд.** В некоторых архитектурных моделях (например, в Layered Scalable Architecture — LSA) слой витрин (Data Marts Layer) выделяют как отдельный, самостоятельный уровень — между ядром хранилища и собственно инструментами отчётности. То есть в такой схеме цепочка выглядит так: источники → staging → ODS → ядро (Core) → Data Marts → инструменты визуализации. Здесь презентационный слой в узком смысле — это уже сами BI-инструменты и дашборды, а Data Marts служат промежуточным «буфером». [```8```](https://habr.com/ru/articles/1037496/) + +**Итог:** когда говорят, что Data Marts входят в презентационный слой, имеют в виду широкую трактовку термина — всё, что непосредственно обслуживает конечного пользователя. А если речь о детальной архитектурной схеме с чётким разделением этапов, витрины могут быть выделены в отдельный слой перед финальным потреблением. [```1```](https://datafinder.ru/solutions/sales/customer-value-management-maximization/arhitektura-bi-i-dwh-dlya-cvm)[```8```](https://habr.com/ru/articles/1037496/) + +Поэтому, когда обсуждаете архитектуру с коллегами, полезно сразу уточнить: говорят ли они о широком «слое потребления» (куда входят и витрины, и BI) или о строгой последовательности этапов обработки. [```1```](https://datafinder.ru/solutions/sales/customer-value-management-maximization/arhitektura-bi-i-dwh-dlya-cvm)[```8```](https://habr.com/ru/articles/1037496/) + +### 3 + +Разберу вопрос подробно — сначала про состав презентационного слоя в DWH (Data Warehouse), затем про отчёты. + +## Состав презентационного слоя (Presentation Layer / Business Intelligence Layer) в DWH + +Презентационный слой — финальный уровень хранилища данных, ориентированный на конечного пользователя (аналитиков, менеджеров, бизнес‑пользователей). Его задача — предоставить данные в удобной для анализа и отчётности форме. + +**Основные компоненты слоя:** + +1. **Витрины данных (Data Marts)** + * Специализированные подмножества данных из корпоративного хранилища, сфокусированные на конкретной бизнес‑области (продажи, финансы, маркетинг и т. д.). + * Часто организованы по схеме «звезда» (Star Schema) или «снежинка» (Snowflake Schema). + * Упрощают доступ к данным для целевых групп пользователей. + +2. **Схемы «звезда» и «снежинка»** + * **Звезда:** центральная таблица фактов (Fact Table) связана с таблицами измерений (Dimension Tables). + * **Снежинка:** таблицы измерений нормализованы, что уменьшает избыточность данных, но может усложнить запросы. + * Обеспечивают быстрый доступ к агрегированным данным для аналитики. + +3. **Материализованные представления (Materialized Views)** + * Предварительно вычисленные результаты сложных запросов, хранящиеся как физические объекты. + * Ускоряют выполнение отчётов и дашбордов за счёт кэширования агрегированных данных. + +4. **Кубы OLAP (Online Analytical Processing Cubes)** + * Многомерные структуры для интерактивного анализа данных по нескольким измерениям (время, продукт, регион и т. д.). + * Поддерживают операции: срез (slice), срез‑прокатка (dice), детализация (drill‑down), обобщение (roll‑up). + * Используются в инструментах типа Microsoft Analysis Services, IBM Cognos, Oracle OLAP. + +5. **Обогащённые таблицы и агрегированные данные** + * Таблицы с предварительно рассчитанными метриками (ежемесячные продажи, средний чек, отток клиентов и т. п.). + * Снижают нагрузку на базу данных при выполнении типовых запросов. + +6. **Метаданные и бизнес‑глоссарий** + * Описания бизнес‑терминов, правил расчёта KPI, источников данных. + * Обеспечивают единое понимание показателей пользователями. + +7. **Интерфейсы доступа** + * SQL‑запросы к витринам данных. + * API для интеграции с BI‑инструментами. + * Прямое подключение BI‑систем (Tableau, Power BI, Qlik) к слою. + +--- + +## Где находятся отчёты? + +Отчёты **не хранятся непосредственно в презентационном слое DWH** как самостоятельные сущности. Вместо этого: + +**1. Источник данных для отчётов** + * Отчёты формируются на основе данных из презентационного слоя: витрин, материализованных представлений, OLAP‑кубов. + * Пример: дашборд в Power BI подключается к витрине `sales_mart` или кубу `Sales_Cube`. + +**2. Инструменты генерации отчётов** + * BI‑платформы (Power BI, Tableau, Looker, Qlik) запрашивают данные из презентационного слоя и визуализируют их. + * Пользовательские SQL‑отчёты выполняются напрямую к витринам или материализованным представлениям. + +**3. Кэширование и публикация отчётов** + * Результаты отчётов могут кэшироваться в BI‑системе для ускорения загрузки. + * Публикуемые дашборды и отчёты хранятся в репозитории BI‑инструмента (например, Power BI Service), а не в DWH. + +**4. Автоматизированные отчёты** + * Планировщики (SSRS, Tableau Server) запускают SQL‑запросы к презентационному слою по расписанию. + * Сформированные отчёты (PDF, Excel) рассылаются пользователям или выкладываются на портал. + +--- + +## Итоговая схема взаимодействия + +``` +[Сырые данные] → [Очистка/ETL] → [Ядро DWH] → [Витрины/Кубы] → [BI‑инструмент] → [Отчёт/Дашборд] + (Презентационный слой) +``` + +**Кратко:** презентационный слой предоставляет структурированные, агрегированные и удобные для анализа данные. Отчёты строятся поверх этого слоя через BI‑инструменты или SQL, но физически хранятся вне DWH — в системах бизнес‑аналитики или в виде файлов (PDF, Excel). + +