Ответ
Это ключевые концепции многомерного моделирования в хранилищах данных, лежащие в основе схем «звезда» и «снежинка».
-
Факты (Facts) — это числовые, аддитивные показатели бизнес-процессов, которые можно суммировать, усреднять и т.д. Они отвечают на вопрос «Что произошло?».
- Примеры: Сумма продажи, количество единиц товара, продолжительность звонка, остаток на счёте.
- Хранятся в таблицах фактов, которые содержат ключи для связи с измерениями и сами числовые меры (metrics).
-
Измерения (Dimensions) — это описательные атрибуты, которые контекстуализируют факты. Они отвечают на вопросы «Кто? Что? Где? Когда? Почему?» и используются для фильтрации, группировки и маркировки данных.
- Примеры: Дата, продукт, клиент, магазин, статус заказа.
- Хранятся в таблицах измерений, которые содержат первичные ключи и текстовые/категориальные поля.
Пример на SQL (схема «звезда» для розничных продаж):
-- Измерение: Продукт
CREATE TABLE dim_product (
product_key INT PRIMARY KEY, -- Суррогатный ключ
product_id INT, -- Бизнес-ключ из OLTP-системы
product_name VARCHAR(255),
category VARCHAR(100),
brand VARCHAR(100)
);
-- Факт: Продажи
CREATE TABLE fact_sales (
date_key INT REFERENCES dim_date(date_key),
product_key INT REFERENCES dim_product(product_key),
store_key INT REFERENCES dim_store(store_key),
quantity_sold INT, -- Мера (факт)
revenue DECIMAL(15,2) -- Мера (факт)
);
Простой аналитический запрос: SELECT brand, SUM(revenue) FROM fact_sales JOIN dim_product USING(product_key) GROUP BY brand;