ETL-процесс на Clickhouse по сбору статистики из API
SSH доступ Развернутые ClickHouse и Airflow Коннекторы к внешнему XML API
Технический стек
ClickHouse (хранилище данных)
Python для ETL-процессов
Airflow для оркестрации
FastAPI для REST API
База данных - создание 30+ таблиц с оптимизацией под сбор ежедневной аналитики
ETL-процессы - загрузка данных из внешнего XML API (15+ endpoints)
Backend API - 15+ REST endpoints для мобильного приложения
Ключевые требования: Время ответа API < 100мс для простых запросов
Live-обновления с задержкой < 30 секунд Обработка до 30 запросов/сек к внешнему API
Retry-логика и fallback при недоступности источника Мониторинг и алерты Покрытие тестами > 80%
Нам пишут клиенты:
Хотим Оптимизировать систему аналитики данных API Ozon Seller
1. Общее описание проекта Существует система для сбора и анализа данных из личных кабинетов продавцов Ozon Seller. Данные (продажи, остатки, цены) в большом объеме поступают на сторонний сервер (SQL базу данных), Текущий процесс включает ручную выгрузку данных из этой базы в промежуточные ("стоковые") листы Google Таблиц, откуда они впоследствии используются в основных листах с дашбордами и аналитикой.
Система нестабильна, требует постоянного ручного контроля и не справляется с ростом объема данных. Цель проекта — создание отказоустойчивой, автоматизированной и высокопроизводительной системы загрузки и обработки данных.
Цель: Автоматизировать и сделать надежной систему выгрузки данных из Ozon Seller в дашборды Google Таблиц.
Проблемы: Рандомные сбои выгрузки продаж и цен. Нет уведомлений об ошибках. Таблицы с большим объемом данных (3-5 тыс. товаров) работают медленно.
Задачи: Архитектура: Убрать выгрузку сырых данных в стоковые листы. Дашборды должны получать с сервера готовые данные.
Надежность: Внедрить обработку ошибок и повторные попытки выгрузки. Создать систему оповещений о проблемах (в таблице/Telegram).
Производительность: Максимально разгрузить таблицы, оптимизировав формулы и перенести вычисления на сервер.
Документация: Предоставить доступ к коду и написать подробную инструкцию для будущих исполнителей.
Результат: Стабильная система без ручного вмешательства с дашбордами и прозрачным мониторингом ошибок.