Як ми перестали будувати аналітику в коді: CDC, BigQuery і нова роль Data Engineer [ukr]
У багатьох системах аналітика будується прямо в backend: події, воркери, enrichment через десятки запитів до бази та виклики інших сервісів. У нашому випадку один аналітичний event генерував до 10 звернень у БД, що при масштабі в мільйони подій створювало значне навантаження на production.
У цій доповіді я розповім, як ми повністю змінили підхід:
- перейшли від application events до CDC через Debezium;
- почали віддавати зміни з кожної таблиці напряму в data pipeline;
- перенесли enrichment та агрегації в BigQuery;
У результаті:
- ми позбулися мільйонів read-запитів до production бази;
- зменшили складність backend-коду;
- відокремили OLTP від аналітики; і зробили побудову аналітики значно швидшою.
Окремо поговоримо про неочевидний ефект:
тепер для побудови нових аналітичних сценаріїв достатньо одного Data Engineer, ERD-схеми та сучасних AI-інструментів — без залучення backend-команди і без змін у продакшн-коді.
Також розглянемо:
- де CDC реально дає виграш, а де ні;
- які проблеми з’являються (lag, дублікати, schema changes);
- як змінюється вартість системи;
Йожеф Гісем
Solution Architect @ MacPaw
- Solution Architect у MacPaw Inc.
- Виступає на конференціях Fwdays (PHP & Architecture Talks), DOU та YouTube-каналах
- Постійний учасник освітньої програми Intern MacPaw: вже 4 роки поспіль допомагає інтегрувати новачків у реальні проєкти
- Ділиться досвідом у сфері архітектури та тестування, зокрема з використанням BDD, Symfony, Redis, Docker та сучасних API-рішень
- Ви могли бачити Йожефа на сценах Fwdays, читати на DOU або слухати інтерв’ю на YouTube-каналі "It’s raining cats & dogs"
- GitHub, Medium, LinkedIn, Facebook