Под NDA
2 200 000
Обучение
Россия, Уфа
Декабрь 2017
Заказчик был заинтересован в создании удобного приложения для хранения и обработки данных о результатах и процессе обучения. В теории оно должно каждый день получать данные от всех обучающих организаций региона, хранить их и формировать отчеты за периоды, а также фильтровать по организациям, компетенциям и другим параметрам. При этом на формирование отчета должно уходить не более 2 секунд.
Нужно было определить единый формат данных, учитывая, что каждый учащийся совершает множество действий (посещает уроки, получает оценки), и по разным действиям структура информации будет разной. К тому же объем информации очень большой: совокупная численность учащихся – более 1 000 000 человек. Эти данные нужно хранить, и их количество будет постоянно увеличиваться. Для составления отчетов по разным срезам придется считать данные в режиме реального времени.
Для работы с образовательными учреждениями мы выбрали стандарт xApi, который разработан для хранения и передачи информации о ходе обучения и позволяет описать любое событие в едином формате. Так мы решили вопрос о приеме, обработке и хранении данных.
Чтобы уменьшить нагрузку на приложение мы фильтруем входящую информацию: выбираем то, что нужно для отчетов и агрегируем в виде полуфабрикатов, чтобы сохранить в отдельной базе данных tarantool. Она умеет быстро работать с такими заготовками, так что теперь при запросе отчета система работает с удобно структурированной информацией.
Мы также разделили разные задачи приложения по разным серверам. Первый – принимает данные и обрабатывает, второй – сохраняет все входящие данные в БД MongoDB, а третий – готовит данные для отчетов, сохраняет их в базу tarantool и выдает по запросам.
Отчеты формируются быстрее 0,1 секунды. Заказчик получил нужную систему, а коллеги смогли сдать проект в целом.
Красивое Решение с удовольствием обсудит вашу задачу