ETL и единое ядро данных маркетплейсов
Проект: Единое ядро данных маркетплейсов
Переиспользуемая Python-библиотека для read-only получения и нормализации данных WB/Ozon.
Что показывает кейс
Это пример переиспользуемого data-core для маркетплейсов: нормализация кабинетов, товаров, продаж и справочников, контроль загрузок и единые контракты данных для нескольких продуктовых сценариев.
Контекст
Клиенты WB и Ozon быстро начинают дублировать одну и ту же инфраструктурную логику: конфигурацию, пагинацию, rate-limit, обработку API-ошибок и правила сохранения. Это усложняет каждый следующий marketplace-продукт.
Что вошло в контур проекта
Библиотека отделяет общее ядро от marketplace-адаптеров, унифицирует конфигурацию, пагинацию, rate-limit и иерархию API-ошибок, предоставляет typed-клиенты и loader-слой, а хранение подключается через опциональные ClickHouse/Redis зависимости.
Решение
Выделена самостоятельная read-only Python-библиотека с общим core и отдельными адаптерами WB/Ozon, typed API-клиентами и loader-слоем.
- Общая конфигурация marketplace-клиентов.
- Единая иерархия auth/permission/validation/API ошибок.
- Offset- и next-token пагинация.
- Rate-limit и базовый HTTP-клиент на httpx.
- WB/Ozon фасады и loader implementations по доменам данных.
- Опциональные ClickHouse/Redis интеграции и pytest-набор клиентов.
Рабочий процесс
- Product code
- Unified core
- WB / Ozon adapter
- Pagination / limits
- Loader
- Storage
Технологический контур
- Python
- httpx
- WB API
- Ozon API
- ClickHouse
- Pytest
Бизнес-эффект
Новые сценарии работы с маркетплейсами строятся на одном тестируемом data-core вместо повторной реализации низкоуровневой интеграции.