DataManager: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
(Полностью удалено содержимое страницы)
Метка: очистка
 
(не показана 1 промежуточная версия этого же участника)
Строка 1: Строка 1:
DataManager - сервис по работе с загрузкой данных в объекты платформы 3V / объекты БД
 
  
'''Цель:'''
 
* Организация загрузки данных из внешних источников без привлечения разработчиков
 
* Снижение времени на выполнение интеграций с внешними источниками данных
 
'''Задачи:'''
 
* Передача данные из внешних источников в объекты платформы 3V
 
* Загрузка данные из задач Jira в объекты платформы 3V (Корпоративный портал использует его для загрузки данных из Jira (трудозатраты, задачи и т.д.))
 
 
=== Методы ===
 
[https://3v.3v-group.net/data-manager-public/swagger/index.html#/ ''*на примере 3v-group.net'']
 
{| class="wikitable"
 
|-
 
! Название !! Конроллер !! Описание  !! Результат
 
|-
 
|[https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /Data/Load] || Data || Метод для загрузки данных в таблицу || Json-модель загруженных в таблицу данных
 
|-
 
|[https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_LoadFromFile /Data/LoadFromFile/LoadFromFile]|| Data || Метод для загрузки данных из файла || Json-модель результата загрузки данных из файла
 
Загрузка данных из файла в справочник
 
|-
 
|[https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /DataConverter/ConvertXmlToJson] || DataConverter
 
''(дополнительный функционал)''
 
|| Метод для преобразования данных из формата XML в Json || Json-модель результата преобразования данных
 
|-
 
|[https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /DataConverter/ConvertCsvToJson] || DataConverter
 
''(дополнительный функционал)''
 
|| Метод для преобразования данных из формата CSV в Json || Json-модель результата преобразования данных
 
|-
 
|[https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /DataConverter/ConvertExcelToJson]|| DataConverter
 
''(дополнительный функционал)''
 
|| Метод для преобразования данных из формата Excel в Json || Json-модель результата преобразования данных
 
|-
 
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /DataCopier/CopyDictionaryElement/CopyDictionaryElement] || DataCopier
 
''(дополнительный функционал)''
 
|| Метод для копирования элемента справочника || Идентификатор нового элемента справочника
 
|-
 
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /DataCopier/CopyIndocatorData/CopyIndicator] || DataCopier
 
''(дополнительный функционал)''
 
|| Метод для копирования данных показателя || Json-модель скопированных данных показателя
 
|-
 
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /DataLoader/LoadTableData] || DataLoader || Метод для загрузки данных в таблицу || Json-модель загруженных в таблицу данных
 
|-
 
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /Data/Load] || /DataLoader/LoadDictionaryData || Метод для загрузки данных в справочник || Json-модель загруженных в справочник данных
 
|-
 
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /Kafka/Push] || Kafka
 
''(дополнительный функционал)''
 
|| Метод для передачи данных от сервера клиенту || Json-модель результата передачи данных
 
|-
 
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /Kafka/PushTest] || Kafka
 
''(дополнительный функционал)''
 
|| Тестовый метод для передачи данных от сервера клиенту || Json-модель результата передачи данных
 
|-
 
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /Kafka/Pull] || Kafka
 
''(дополнительный функционал)''
 
|| Метод для передачи данных от клиента, ответ порождается сервером || Json-модель результата передачи данных
 
|-
 
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/Installer/Installer_Install] || Installer || Метод для установки объектов DataManager:
 
 
* FirstInstallTechObjects
 
* DataManagerTasks
 
* DataManagerTasksResults
 
|| Json-модель результата установки объектов DataManager
 
|-
 
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/LogManager/LogManager_CheckCompleteTaskLog /LogManager/CheckCompleteTaskLog] || LogManager|| Метод для проверки задачи на завершение и формирования логов и статистики || Json-модель результатов проверки и формирования логов и статистики
 
|-
 
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/LogManager/LogManager_AddTaskResult /LogManager/AddTaskResult] || LogManager || Метод для добавления результата задачи для ведения статистики и логирования || Json-модель результатов добавления задачи
 
|-
 
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/LogManager/LogManager_CompleteTaskLog /LogManager/CompleteTaskLog] || LogManager || Метод для формирования логов и статистики по задаче || Json-модель результатов формирования логов и статистики
 
|-
 
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/TaskManager/TaskManager_NextTask /TaskManager/NextTask] || TaskManager || Метод для получения информации по задаче || Json-модель задачи
 
|}
 
=== Объекты репозитория ===
 
'''DataManagerTasks - Задачи загрузки данных'''
 
 
* NAME - наименование задачи
 
* OPTIONS - Json настройка с описанием источника, приемника, перекодировки данных
 
* BEGIN_DATE - дата последнего запуска
 
* NEXT_DATE - дата следующего запуска
 
* COOLDOWN - периодичность запуска
 
* DESCRIPTION - описание задачи
 
 
'''DataManagerTasksResults - Результаты загрузки данных'''
 
 
* RESULT - результат выполнения экземпляра задачи
 
* STATUS - статус выполнения
 
* BEGIN_DATE - дата начала
 
* END_DATE - дата завершения
 
* TASK - сама задача загрузки данных
 
 
=== Источники данных ===
 
* files
 
* dbase
 
* https
 
Поддерживаемые форматы для предоставления данных - ''JSON, XML, CSV, XLSX''
 
 
=== Приемники данных ===
 
* Справочники (методы записи -platform API, DB script, - задается в настройках задачи);
 
* Показатели (методы записи - DB script, - задается в настройках задачи);
 
* Таблица DB (методы записи - DB script, - задается в настройках задачи).
 
 
=== Логика работы ===
 
'''Producer (host)'''
 
* Producer опрашивает все тенанты указанные в конфигурационном файле;
 
* Рассчитывает задачу и ее параметры;
 
* Предоставляет интерфейс для получения задачи consumer-ом.
 
''Задачи берутся по очереди из каждого тенанта с одним набором параметров. Т.е. в рамках тенанта задачи выполняются по очереди, в рамках сервиса каждая следующая задача берется из следующего тенанта. (из навигаторе берется самый первый справочник справочника Задачи загрузки данных
 
''
 
 
'''Consumer'''
 
* После запуска consumer обращается к producer;
 
* Получает от него модель задачи с параметрами на выполнение;
 
* После выполнения задачи, независимо от результата, запрашивает новую задачу для выполнения;
 
* Результат выполнения задачи записывается в справочник с результатами выполнения задач.
 
 
'''DataMapper'''
 
 
''Сервис который занимается преобразованием данных.''
 
 
* Приводит все данные к формату json;
 
* Исходя из настроек маппинга, разворачивает json в плоский (табличный) вид;
 
* Выполняет загрузку данных в зависимости от метода записи (api / sql)
 
* Поддерживает выражения
 
 
=== Целевая схема использования ===
 
[[Файл:DM- Целевая схема.png|слева|1000px|border]]
 

Текущая версия на 05:27, 6 сентября 2022