Клиент: KBC
Домен:
iGaming, BigData #iGaming #BigData
Какие задачи перед нами ставились / Какие проблемы решали:
Необходимо реализовать сбор и очистку данных из внешней системы. Проблема в том что данные представляют собой больше пакеты (2-8гб) доступные по http. При этом часто внутри находится некорректный XML, потому что система продюсер не знает ничего о необходимости экранировать данные полученные от пользователей. На основании полученных данных необходимо отправлять события в 3rd party системы. На оснвании полученных данных нужно делать выводы о качестве трафика.
Как реализовали:
Было две итерации разработки решения. В первой реализации мы использовали NodeJS и реализовали SAX-parser для XML который мог бы игнорировать ошибки. Однако с течением времени объем загружаемых данных кратно вырос и даже в реализации со Streams потребление ресурсов перестало быть адекватным. Во второй итерации мы переписали решение на GoLang, что позволило существенно сократить потребление ресурсов. Сохранение данных происходит в BigQuery, в который поступают данные и их других источников (GA etc). На базе загружаемых данных так же добавлена отдельная системя для отправки вебхуков, с конфигурированием через привычный всем GoogleSheets.
Какие технологии мы использовали:
NodeJS, GoLang, BigQuery, SQL, Google PubSub, GoogleFirebase
Сколько людей всего работали на проекте:
2 engineer, 1 devops engineer