Мы разложили данные в «звезду» и соединили таблицы связями. Возникает резонный вопрос: но ведь это же обычная база данных со справочниками и внешними ключами — что тут нового? На самом деле то, что строит Power BI, называется семантической моделью, и это принципиально другая вещь, чем таблицы в БД. Понять разницу важно — иначе непонятно, за что вообще отвечает аналитик.
Что входит в семантическую модель
База данных — это таблицы и связи между ними. Семантическая модель — это таблицы и связи плюс ещё несколько слоёв:
- таблицы (факты и измерения) — как в БД;
- связи с поведением (направление фильтрации, активные/неактивные) — не просто ссылочная целостность;
- меры на DAX — переиспользуемые показатели (Выручка, Маржа, YTD), несущие бизнес-логику;
- иерархии (Год → Квартал → Месяц), форматы (₽, %), сортировки, категории данных (это география, это URL);
- права на строки (RLS) — кто какие данные видит.
Семантическая модель — это «слой смысла» поверх данных. Она хранит не только что есть (таблицы), но и как это понимать и считать: что такое «Выручка», в каком разрезе она живёт, как форматируется, кто её видит. Слово «семантическая» именно об этом — про значение, а не только про хранение.
Чем это отличается от БД с внешними ключами
Кажется, что связь в модели = внешний ключ в БД. Похоже, но назначение разное.
| База данных (OLTP) | Семантическая модель | |
|---|---|---|
| Зачем | записывать и хранить транзакции | быстро анализировать и агрегировать |
| Оптимизирована под | запись отдельных строк | чтение и суммирование миллионов строк |
| Хранение | по строкам, на диске | по столбцам, сжато, в памяти (VertiPaq) |
| Внешний ключ / связь | гарантирует целостность ссылок | автоматически фильтрует: измерение → факт |
| Показатели | считаются запросом каждый раз | меры — готовая переиспользуемая логика |
| Для кого | для приложений и разработчиков | для бизнес-пользователя мышкой, без SQL |
Внешний ключ в БД говорит «эта запись ссылается на ту» — и всё. Связь в модели сама фильтрует данные: выбрал регион в срезе — продажи пересчитались. Плюс модель несёт меры — а в БД «выручки YTD» не существует, её надо каждый раз вычислять запросом. Модель превращает данные из «склада» в готовый к анализу инструмент.
Аналогия
База данных — это склад сырья. Всё аккуратно сложено, ничего не теряется, но чтобы что-то получить, нужен специалист с запросом (SQL).
Семантическая модель — это витрина магазина. Те же товары, но с ценниками (форматы), разложенные по категориям (иерархии), с калькулятором на кассе (меры) и табличкой «вход только для своих» (RLS). Покупатель (бизнес-пользователь) берёт что нужно сам, не зная, как устроен склад.
Зачем это бизнесу
- Одна правда. К одной модели подключаются десятки отчётов — все считают «Выручку» одинаково. Поправили логику меры в одном месте — поправилось везде (подробнее — в экспертном курсе).
- Самообслуживание. Аналитик собрал модель — дальше менеджер сам строит отчёты, перетаскивая понятные «Выручка» и «Регион», без SQL.
- Скорость. Столбцовое сжатое хранилище в памяти отвечает на «сумма по 10 млн строк» за миллисекунды — обычной БД так не получится.
Семантическая модель не заменяет базу данных и не конкурирует с ней. БД — источник и место записи; модель — аналитический слой поверх (часто как раз из этой БД и загруженный через Power Query). Это разные этажи: внизу — хранение и транзакции, наверху — смысл и анализ.
Что дальше
Теперь понятно, что мы строим — семантическую модель, аналитический слой смысла поверх данных. Пора перейти к практике: следующий урок — установка Power BI Desktop, и дальше собираем всё это руками.