Разработка хранилища данных и обеспечение непрерывной поставки под геймификацию

задача

 

  • Организовать хранилище данных и разработку витрин данных
  • Организовать надежную поставку данных до хранилища и из хранилища дальше в приложения
  • Мониторинг поставки

контекст


Геймификация требует огромного количества данных для расчета механик и начисления вознаграждений. Стабильность данных и точность их расчетов напрямую влияет на вовлеченность сотрудников. 

В рамках разработки такой платформы для одного из системообразующих банков, потребовалось выделить данные в отдельный фокусный кусок.

контекст


Геймификация требует огромного количества данных для расчета механик и начисления вознаграждений. Стабильность данных и точность их расчетов напрямую влияет на вовлеченность сотрудников. 

В рамках разработки такой платформы для одного из системообразующих банков, потребовалось выделить данные в отдельный фокусный кусок.

технологии


SQL Server Integration Service,
MS SQL Server, Hadoop, Greenplum, PostgreSQL, CentOS, PHP (Symfony), Zabbix

технологии


SQL Server Integration Service,
MS SQL Server, Hadoop, Greenplum, PostgreSQL, CentOS, PHP (Symfony), Zabbix

основные проблемы

 

  1. На момент разработки источники данных могли быть на разных серверах, с разными базами, с разной частотой обновления и сильно разным подходом к качеству сборки
  2. Низкая возможность повлиять на изменение структуры данных в первоисточниках
  3. Поставка должна осуществляться в несколько приложений, где есть схожие данные из одного источника и при этом есть данные, уникальные для каждой площадки
  4. Чаще всего данные из первоисточника нам не подходят, требуется их модификация
  5. Каждая механика в геймификации требует разный набор данных и разную структуру

Унификация

Мы понимали, что разнообразие сильно усложнит поддержку поставок данных, поэтому первым делом привели все механики к единому виду

Технология

Выбрали доступную технологию, которая подходила архитектурно — SSIS от Microsoft. Потребовался отдельный сервер на базе Windows, но он также забрал на себя часть задач по мониторингу

Архитектура

Вынесли всю разработку витрин в отдельный сервер на PostgreSQL. Описали стандарты разработки,
а сам код разместили в репозитории, чтобы разработкой мог заниматься дата-аналитик

Мониторинг

Создали систему мониторинга из двух уровней: на SSIS сервере, если поставка данных завершилась неудачно, и в приложении — проверка наличия и целостности. В случае проблем приходит оповещение в систему Zabbix

архитектура

Надежность

Сократили количество инцидентов в несколько раз

Скорость

Сократили время реакции на инциденты и тем самым практически полностью исключили недопоставки данных

Простота

Сократили время на разработку данных и ввод новых механик
в платформу

Доступность

Сняли кадровую зависимость. Теперь данные может собирать дата-аналитик, без глубокого понимания, как работает платформа

Доверие

Повысили доверие к платформе и, как следствие, вовлеченность сотрудников. Это подтвердили опросы удовлетворенности
Кейсы

Есть задача?

Напишите нам!