С какой проблемы начинаем
Маркетплейсы растут, правил больше, отчётов — ещё больше. У каждого — свои форматы, задержки и ограничения. В итоге у команды десятки выгрузок, сотни таблиц, разные версии «правды» и вечная сводка «вручную». Деньги утекают — потихоньку, каждый день.
- Данные разрознены: Ozon, WB, ЯМ, 1C, MPStats.
- Excel тормозит на больших объёмах.
- Отчёты противоречат друг другу, спорим «кто прав».
- Нет истории и причин: «почему просел SKU?» — непонятно.
Хранилище данных (DWH) решает это: источники собираем в одном месте, приводим к общей логике, обновляем автоматически.
Зачем это бизнесу
- Один источник правды по всем площадкам и SKU.
- Прозрачные отчёты: продажи, финансы, остатки, реклама, конкуренты.
- Прогноз спроса и рекомендации по цене и закупкам.
- Готовые выгрузки в Excel и визуализации в DataLens.
Кому это нужно
- Продавцам на двух и более площадках.
- Командам с разрозненными данными.
- Компаниям, которым нужны прогнозы, цены и реклама на данных.
- Бизнесу, который вырос из Excel.
Что собираем
- Продажи, остатки, цены, скидки, конкуренты, отзывы.
- Финансы и реклама (ставки, показы, клики, конверсии).
- Справочники (карточки, SKU, 1С). Внешние агрегаторы (MPStats).
- Источники: API маркетплейсов, выгрузки, 1С, MPStats. Сохраняем raw, затем модель.
> Почему важно хранить у себя: маркетплейсы чистят историю. Мы сохраняем «сырые» данные у вас (Staging). Сроки хранения — по вашей политике.
Архитектура
Слоистая модель: Staging → ODS → DWH → Витрины. Обеспечиваем скорость, отказоустойчивость и прозрачность.
graph TD
A[Маркетплейсы/API/1C/MPStats] -->|Extract| B[Staging]
B -->|Clean/Normalize| C[ODS]
C -->|Model| D[DWH: Факты и Измерения]
D -->|Aggregate| E[Витрины]
E --> F[Отчёты / DataLens / Excel / BI]
D --> G[ML/AI: прогноз, цены, реклама]
Стек технологий
- Языки: Python, TypeScript/JavaScript, Bash(Shell)
- Хранилища: ClickHouse, PostgreSQL, Redis, ChromaDB, MinIO(S3)
- Оркестрация: Apache Airflow, Kubernetes, Docker, GitLab/GitHub CI/CD
- Аналитика: Yandex DataLens, Excel (XlsxWriter), Next.js
- ML/AI: TensorFlow, OpenCV, LLM/VLM
Почему Airflow
- Зависимости: сбор → очистка → загрузка → публикация
- Ретраи и идемпотентность
- SLA, календарь, алерты, наблюдаемость
- DAG как код: ревью, версионирование
50–100 API
- Сначала сохраняем raw(Staging) — страховка и аудит
- Затем строим модель: факты и измерения
- ClickHouse — аналитика, PostgreSQL — справочники/интеграции
Витрины и представления
- Views — для онлайна и гибкости
- Materialized views — для тяжёлой аналитики
- Инкрементальность — для больших фактов
Админ‑панель
- Веб(Next.js), Telegram‑бот, Streamlit
- Запуск задач, статусы, перезапуски, выгрузки, роли
Git/S3/CI
- Код в GitLab/GitHub; сборка — Docker; деплой — CI/CD
- MinIO/S3 — отчётные артефакты и изображения (иконки), выгрузки, бэкапы
Инфраструктура
- Kubernetes — масштабирование воркеров ETL
- Airflow — центральная оркестрация
- Ваша VPC/облако — контроль периметра и хранения
ML и ИИ
- Прогноз спроса, динамические цены, оптимизация закупок/рекламы
- LLM/VLM: анализ отзывов, поиск по описаниям
- Развёртывание: GPU bare‑metal, on‑premise или API провайдеров; можем хостить у нас
Процессы и SLA
- Ежедневные/почасовые обновления, алерты, мониторинг
- Контроль качества: обязательные поля, схемы, диапазоны
- Регламенты принятия решений
Результаты
- Единая картина продаж и остатков
- Управляемые цены и закупки, меньше неликвида
- Реклама на данных, а не на ощущениях
Этапы внедрения
1. Аудит данных и целей
2. Архитектура: источники и витрины
3. Сборка: Airflow, коннекторы, расписания
4. Модель DWH: факты/измерения
5. Отчёты: DataLens, Excel
6. ML‑модули
7. Обучение и поддержка
Опыт
Делали пайплайны в Airflow, витрины в ClickHouse, отчёты в DataLens. Интеграции с 1С, агрегаторами и площадками.
Безопасность
- Секреты, роли, сетевые политики, аудит
- Разграничение доступа к витринам
FAQ
- Сроки: пилот 1–2 мес., полный контур 3–6 мес.
- Можно ли начать с малого? Да — продажи/остатки → остальное поэтапно
Глоссарий
- DWH — хранилище данных для аналитики
- SCD — историзация изменений атрибутов
- Витрина — агрегированная таблица для отчётов
- ETL/ELT — сбор, преобразование, загрузка
Стоимость и сроки
Пилот — 1–2 месяца. Внедрение — от 3–6 месяцев. Бюджет зависит от источников, объёма и SLA.
Политика хранения
- Staging — полный слепок ответов API
- ODS/DWH — нормализованные таблицы с историзацией
- S3/MinIO — архивы, бэкапы, большие файлы
Качество данных
- Идентификация SKU/GTIN/Артикул/1С; мэппинг, дедупликация, аудит
Производительность
- ClickHouse: партиции, сортключи, агрегирующие таблицы, mviews
- PostgreSQL: индексы, партиции, autovacuum
- Инкрементальные загрузки; Redis‑кэш
Витрины и отчёты
- Продажи/остатки, финансы, реклама; конкурентные витрины (MPStats)
Роли и процесс
- Руководитель, категорийщик, маркетолог, аналитик — понимают «что делать сегодня»
Резервирование
- Бэкапы, репликация, план DR, проверка восстановления
Примеры UML
sequenceDiagram
participant MP as Маркетплейсы
participant ETL as Airflow ETL
participant DWH as DWH
participant DM as Витрины
MP->>ETL: API вызовы
ETL->>DWH: Загрузка фактов/измерений
DWH->>DM: Агрегации
DM->>BI: Отчёты