Аналитический проект по e-commerce: полная витрина метрик в ClickHouse + интерактивные дашборды в Yandex DataLens.
🧰 Стек
ClickHouse • Yandex DataLens • Python/Jupyter • SQL
- Данные: Kaggle “Online Retail” (Invoices, StockCode, Quantity, UnitPrice, CustomerID, Country).
- Хранилище: ClickHouse (стейджинг → факты → представления/марты).
- BI: Yandex DataLens (KPI, тренды GMV/AOV/ARPU, когорты retention, новые vs возвратные, топ SKU).
- Ядро метрик:
GMV= Σ (Quantity × UnitPrice)Orders= countDistinct(order_id)Buyers= countDistinct(user_id)AOV= GMV / OrdersARPU= GMV / BuyersNew buyer share= New buyers / BuyersRetention= доля когорты, вернувшаяся в n-й месяц
data/ecommerce_full.csv → staging_orders
↳ fact_order_lines (нормализованные строки)
↳ fact_orders (агрегат по заказу)
↳ views/marts (для BI):
v_daily_kpi
v_gmv_by_country
v_orders_enriched
v_cohorts_retention
v_top_products
v_sku_gmv_qty
├─ data/ # описание датасетов
├─ notebooks/ # EDA/подготовка (Jupyter)
├─ sql/ # DDL/DML для ClickHouse
├─ src/ # утилиты загрузки (при необходимости)
- Создай БД и таблицы, загрузи CSV:
clickhouse-client -n < sql/01_create_database.sql
clickhouse-client -n < sql/02_create_tables.sql
# загрузка CSV (путь поправь на свой):
clickhouse-client --query="INSERT INTO staging_orders FORMAT CSVWithNames" < data/ecommerce_full.csv
# построение фактов/представлений:
clickhouse-client -n < sql/03_build_facts_and_views.sql2)Проверь vitrine:
SELECT * FROM v_daily_kpi ORDER BY d LIMIT 10;
SELECT * FROM v_cohorts_retention ORDER BY cohort_month, month_n;📊 Дашборды (DataLens) (срок действия dataseta в Clickhouse истек)
Верхняя панель KPI: GMV / Orders / Buyers / AOV / New buyer share
Тренды: линия GMV по дням (MA7 + кумулятив), GMV по месяцам
Покупатели: нормированная областная (new vs returning)
Retention: тепловая карта по когортам (месяц регистрации × месяцы жизни)
Товары: GMV vs QTY (комбо), Top SKU by GMV
Дополнительно: AOV & ARPU (линии)
Денис Морозов
📧 Kor4yz@yandex.ru · GitHub · Telegram


