Тип работы:
Предмет:
Язык работы:


Реализация сервиса для генерации отчетности по корпоративному обучению сотрудников

Работа №142162

Тип работы

Дипломные работы, ВКР

Предмет

программирование

Объем работы31
Год сдачи2023
Стоимость4800 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
13
Не подходит работа?

Узнай цену на написание


Введение 5
1. Постановка задачи 7
2. Обзор существующего решения и технологий 8
2.1. Существующая система внутри платформы 8
2.1.1. Функциональность 8
2.1.2. Достоинства и недостатки 9
2.2. OLTP и OLAP подходы 11
2.3. CDC и реплицирование 12
2.4. Вывод 13
2.5. Использованные технологии 14
2.5.1. Greenplum 14
2.5.2. Debezium 14
2.5.3. Airflow 15
2.5.4. Golang 15
3. Требования 16
4. Архитектура 17
4.1. Взаимодействие модулей системы 17
4.2. Сценарии использования 18
4.3. Сервис генерации отчетов 20
5. Особенности реализации 22
5.1. Применение CDC-событий и реплицирование 22
5.2. Формирование агрегированных таблиц для отчетов ... 22
5.3. Оркестрация процессов в Airflow 23
5.4. Поддержка HTTP API и асинхронных запросов в Kafka 24
5.5. Развертывание сервиса и мониторинг 24
6. Тестирование и апробация 26

Необходимым атрибутом любого развивающегося бизнеса является качественное обучение и повышение квалификаций сотрудников компа­нии. В наше время эффективным способом обучать персонал с мини­мальными затратами является дистанционный формат и специальные системы, которые позволяют получать знания удаленно. Организация обучения на таких платформах предполагает использование готовых материалов и уроков с адаптацией под конкретную компанию при необ­ходимости, передачу доступов сотрудникам, выставление сроков про­хождения, проверку усвоенных знаний. Это позволяет специалистам различных сфер (например, бухгалтерии, права, кадров, финансов, гос­закупок) получать доступ к корпоративной базе знаний, соответствую­щей профстандартам, закреплять знания через тесты и проходить ат­тестацию, не отрываясь от рабочего процесса.
При работе с системами дистанционного обучения руководителю компании предоставляется особый доступ, на основе которого формиру­ется учебное заведение. Руководитель может приглашать на обучение сотрудников, назначать им программы и тесты, следить за прогрессом и успеваемостью учеников. Возможность просматривать статистику по обучению является важной составляющей функциональности платфор­мы, поскольку от ее показателей зависят дальнейшие действия руко­водителя - например, в случае неудовлетворительных результатов со­трудников стоит мотивировать назначение нового обучения. При этом для обеспечения удобного и надежного пользовательского опыта дан­ные должны корректно вычисляться и отображаться на странице за приемлемое время.
У одной организации в сфере профессиональных СМИ, разрабаты­вающей платформу для онлайн-обучения сотрудников, возникла необ­ходимость в создании страницы с отображением отчетности для руко­водителей. Планируемый раздел должен как показывать общую ста­тистику по обучению всех сотрудников (их активность, вовлеченность, успеваемость), так и формировать детальные отчеты с описанием прой­денных программ и тестов по каждому ученику. Реализация этой функ­циональности также осложняется большим объемом данных: в рамках одного учебного заведения может быть более 10000 пользователей и десятки тысяч назначений обучений и прохождений программ. Важ­но своевременно обрабатывать информацию, при этом не затрачивая много времени на загрузку раздела.
Данная работа посвящена созданию сервиса, предоставляющего необ­ходимую информацию для отображения на странице со статистикой по обучению пользователей и генерирующего подробные отчеты, с учетом описанных выше сложностей.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В ходе данной работы были получены следующие результаты.
• Произведен обзор существующего решения, которое перестало удо­влетворять требованиям бизнеса ввиду роста объема данных. Вы­полнено сравнение OLTP- и OLAP-подходов, механизмов CDC и репликации; сделан вывод о том, что OLAP-хранилище вместе с CDC позволяет эффективно хранить и агрегировать данные, не нагружая источник.
• Выявлены и сформулированы требования к системе: функцио­нальные (типы генерируемых отчетов, показателей и статистик), а также нефункциональные (способы взаимодействия с системой, частота обновления данных, время ответа).
• Спроектирована архитектура решения, включающая в себя ком­поненты по загрузке, агрегации и экспорту данных, а также сер­вис, предоставляющий интерфейс для получения данных отчетов.
• Реализована следующая функциональность:
• настроены процессы загрузки данных из источника в анали­тическое хранилище Greenplum с помощью Airflow и Debezium;
• созданы таблицы с агрегированной статистикой и написан Airflow DAG для их обновления и загрузки в транзакционную базу сервиса PostgreSQL;
• реализован сервис генерации статистики по отчетам на Go, предоставляющий как синхронное HTTP API, так и асин­хронно обрабатывающий очередь запросов в Kafka, покрыт модульными тестами и настроен мониторинг.
• Проведено нагрузочное и приемочное тестирование, в результате чего были исправлены дефекты и недоработки со стороны бизнес- логики и производительности системы.
Сервис был внедрен и использован для визуализации статистики по обучению сотрудников.


[1] ACID.— [Электронный ресурс].— (дата обращения: 01.05.2023). URL: https://en.wikipedia.org/wiki/ACID.
[2] ASP.NET Web APIs.— [Электронный ресурс].— (дата обращения: 01.05.2023). URL: https://dotnet.microsoft.com/en-us/apps/ aspnet/apis.
[3] Apache Airflow.— [Электронный ресурс].— (дата обращения: 01.05.2023). URL: https://airflow.apache.org/.
[4] Apache Hadoop. — [Электронный ресурс].— (дата обращения: 01.05.2023). URL: https://hadoop.apache.org/.
[5] Apache Kafka.— [Электронный ресурс].— (дата обращения: 01.05.2023). URL: https://kafka.apache.org/.
[6] Apache Sqoop. — [Электронный ресурс].— (дата обращения: 01.05.2023). URL: https://sqoop.apache.org/.
[7] ClickHouse. — [Электронный ресурс].— (дата обращения: 01.05.2023). URL: https://clickhouse.com/docs/ru.
[8] Debezium.— [Электронный ресурс].— (дата обращения: 01.05.2023). URL: https://debezium.io/.
[9] Dockerfile reference.— [Электронный ресурс].— (дата обращения: 01.05.2023). URL: https://docs.docker.com/engine/reference/ builder/.
[10] The ELK Stack: From the Creators of Elasticsearch | Elastic. — [Электронный ресурс].— (дата обращения: 01.05.2023). URL: https://www.elastic.co/what-is/elk-stack.
[11] Fastest cpu secs Go versus Java. — [Электронный ресурс]. — (дата обращения: 01.05.2023). URL: https://benchmarksgame-team. pages.debian.net/benchmarksgame/fastest/go.html.
[12] GORM - The fantastic ORM library for Golang. — [Электронный ресурс].— (дата обращения: 01.05.2023). URL: https://gorm.io/.
[13] The Go programming language.— [Электронный ресурс].— (дата обращения: 01.05.2023). URL: https://go.dev/.
[14] Goroutines. — [Электронный ресурс].— (дата обращения:
01.05.2023). URL: https://go.dev/doc/effective_go#
goroutines.
[15] Grafana: The open observability platform | Grafana Labs.— [Электронный ресурс].— (дата обращения: 01.05.2023). URL: https://grafana.com/.
... всего 33 источника


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ