Разработка BI-дашборда (Business Intelligence)
BI-дашборд — это не просто набор графиков, а инструмент для принятия решений на основе данных. Отличие от обычного дашборда аналитики: самостоятельное построение отчётов пользователями без помощи разработчика (self-service BI), работа с многомерными данными, OLAP-анализ, cohort analysis, predictive metrics.
Архитектура данных для BI
BI работает с данными, оптимизированными для аналитических запросов, а не для транзакций. Стандартный подход — Data Warehouse с размерной моделью:
Star schema:
dim_customers
|
dim_products — fact_orders — dim_dates
|
dim_locations
fact_orders — факты (транзакции), содержит числовые метрики (сумма, количество) и ключи к измерениям. dim_* — измерения (описательные данные). Запросы вида «продажи по регионам за Q3» работают быстро благодаря этой структуре.
ClickHouse как аналитическое хранилище
ClickHouse — колончатая СУБД с огромной скоростью агрегации. На практике: запрос COUNT(*) + SUM(revenue) по таблице с 1 миллиардом строк — секунды, не минуты.
-- ClickHouse: продажи по категориям за последние 30 дней
SELECT
category,
sum(revenue) AS total_revenue,
uniqExact(customer_id) AS unique_customers,
count() AS orders
FROM orders_mv
WHERE toDate(created_at) >= today() - 30
GROUP BY category
ORDER BY total_revenue DESC;
ETL из PostgreSQL в ClickHouse: через clickhouse-local + scheduled job или Apache Airflow.
Self-service BI
Self-service означает, что аналитик или менеджер может сам построить нужный отчёт. Компоненты:
- Конструктор запросов (query builder UI) — drag & drop полей, выбор агрегаций и фильтров без SQL
- Конструктор дашборда — добавить виджет, выбрать тип графика, настроить оси
- Параметризованные отчёты — шаблон с переменными, пользователь вводит значения
Готовые инструменты для встраивания BI в собственное приложение:
- Metabase Embedded — iframe или API, white-label возможности
- Apache Superset — open-source, полноценный BI
- Lightdash — BI поверх dbt models
- Custom — TanStack Table + ECharts + headless query engine
OLAP и slice & dice
OLAP позволяет «нарезать» данные по нескольким измерениям:
- Drill-down: год → квартал → месяц → день
- Slice: только один регион из всех
- Dice: регион × категория × период
- Pivot: строки и колонки меняются местами
В BI-дашборде это реализуется через иерархические фильтры и pivot-таблицы.
Когортный анализ
Когортный анализ — группировка пользователей по периоду первого действия и отслеживание метрик во времени:
| Когорта | M0 | M1 | M2 | M3 |
|---|---|---|---|---|
| Янв 2024 | 100% | 42% | 31% | 28% |
| Фев 2024 | 100% | 39% | 28% | — |
SQL для когортного retention:
WITH cohorts AS (
SELECT user_id, DATE_TRUNC('month', created_at) AS cohort_month
FROM users
),
activity AS (
SELECT user_id, DATE_TRUNC('month', event_at) AS activity_month
FROM user_events WHERE event_type = 'purchase'
)
SELECT
cohort_month,
EXTRACT(MONTH FROM AGE(activity_month, cohort_month)) AS period,
COUNT(DISTINCT a.user_id)::FLOAT / COUNT(DISTINCT c.user_id) AS retention_rate
FROM cohorts c
LEFT JOIN activity a USING (user_id)
GROUP BY 1, 2;
Доступ и безопасность
- Row-level security: каждый менеджер видит только своих клиентов/регион
- Политики на уровне датасета: кто может создавать отчёты, кто только просматривать
- Аудит запросов: кто и когда смотрел какие отчёты
Сроки
MVP BI-дашборда (ClickHouse/PostgreSQL, 10–15 отчётов, базовые фильтры, пользовательские роли): 3–4 месяца. Полноценная BI-платформа с self-service конструктором, когортами, ETL и embedded SDK: 5–9 месяцев.







