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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 19: Строка 19:
 
Загрузка данных из файла в справочник
 
Загрузка данных из файла в справочник
 
|-
 
|-
|/DataConverter/ConvertXmlToJson || DataConverter  
+
|[https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /DataConverter/ConvertXmlToJson] || DataConverter  
 
''(дополнительный функционал)''  
 
''(дополнительный функционал)''  
 
|| Метод для преобразования данных из формата XML в Json || Json-модель результата преобразования данных
 
|| Метод для преобразования данных из формата XML в Json || Json-модель результата преобразования данных
 
|-
 
|-
|/DataConverter/ConvertCsvToJson || DataConverter  
+
|[https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /DataConverter/ConvertCsvToJson] || DataConverter  
 
''(дополнительный функционал)''  
 
''(дополнительный функционал)''  
 
|| Метод для преобразования данных из формата CSV в Json || Json-модель результата преобразования данных
 
|| Метод для преобразования данных из формата CSV в Json || Json-модель результата преобразования данных
 
|-
 
|-
|/DataConverter/ConvertExcelToJson|| DataConverter  
+
|[https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /DataConverter/ConvertExcelToJson]|| DataConverter  
 
''(дополнительный функционал)''  
 
''(дополнительный функционал)''  
 
|| Метод для преобразования данных из формата Excel в Json || Json-модель результата преобразования данных
 
|| Метод для преобразования данных из формата Excel в Json || Json-модель результата преобразования данных
 
|-
 
|-
| Текст ячейки || DataCopier
+
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /DataCopier/CopyDictionaryElement/CopyDictionaryElement] || DataCopier
 
''(дополнительный функционал)''
 
''(дополнительный функционал)''
 
|| Метод для копирования элемента справочника || Идентификатор нового элемента справочника
 
|| Метод для копирования элемента справочника || Идентификатор нового элемента справочника
 
|-
 
|-
| Текст ячейки || DataCopier
+
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /DataCopier/CopyIndocatorData/CopyIndicator] || DataCopier
 
''(дополнительный функционал)''
 
''(дополнительный функционал)''
 
|| Метод для копирования данных показателя || Json-модель скопированных данных показателя
 
|| Метод для копирования данных показателя || Json-модель скопированных данных показателя
 
|-
 
|-
| Текст ячейки || DataLoader || Метод для загрузки данных в таблицу || Json-модель загруженных в таблицу данных
+
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /DataLoader/LoadTableData] || DataLoader || Метод для загрузки данных в таблицу || Json-модель загруженных в таблицу данных
 
|-
 
|-
| Текст ячейки || DataLoader || Метод для загрузки данных в справочник || Json-модель загруженных в справочник данных
+
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /Data/Load] || /DataLoader/LoadDictionaryData || Метод для загрузки данных в справочник || Json-модель загруженных в справочник данных
 
|-
 
|-
| Текст ячейки || Kafka
+
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /Kafka/Push] || Kafka
 
''(дополнительный функционал)''  
 
''(дополнительный функционал)''  
 
|| Метод для передачи данных от сервера клиенту || Json-модель результата передачи данных
 
|| Метод для передачи данных от сервера клиенту || Json-модель результата передачи данных
 
|-
 
|-
| Текст ячейки || Kafka
+
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /Kafka/PushTest] || Kafka
 
''(дополнительный функционал)''
 
''(дополнительный функционал)''
 
|| Тестовый метод для передачи данных от сервера клиенту || Json-модель результата передачи данных
 
|| Тестовый метод для передачи данных от сервера клиенту || Json-модель результата передачи данных
 
|-
 
|-
| Текст ячейки || Kafka
+
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /Kafka/Pull] || Kafka
 
''(дополнительный функционал)''
 
''(дополнительный функционал)''
 
|| Метод для передачи данных от клиента, ответ порождается сервером || Json-модель результата передачи данных
 
|| Метод для передачи данных от клиента, ответ порождается сервером || Json-модель результата передачи данных
 
|-
 
|-
| Текст ячейки || Текст ячейки || Метод для установки объектов DataManager:
+
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/Installer/Installer_Install] || Installer || Метод для установки объектов DataManager:
  
 
* FirstInstallTechObjects
 
* FirstInstallTechObjects
Строка 62: Строка 62:
 
  || Json-модель результата установки объектов DataManager
 
  || Json-модель результата установки объектов DataManager
 
|-
 
|-
| Текст ячейки || Текст ячейки || Метод для проверки задачи на завершение и формирования логов и статистики || Json-модель результатов проверки и формирования логов и статистики
+
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/LogManager/LogManager_CheckCompleteTaskLog /LogManager/CheckCompleteTaskLog] || LogManager|| Метод для проверки задачи на завершение и формирования логов и статистики || Json-модель результатов проверки и формирования логов и статистики
 
|-
 
|-
| Текст ячейки || Текст ячейки || Метод для добавления результата задачи для ведения статистики и логирования || Json-модель результатов добавления задачи
+
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/LogManager/LogManager_AddTaskResult /LogManager/AddTaskResult] || LogManager || Метод для добавления результата задачи для ведения статистики и логирования || Json-модель результатов добавления задачи
 
|-
 
|-
| Текст ячейки || Текст ячейки || Метод для формирования логов и статистики по задаче || Json-модель результатов формирования логов и статистики
+
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/LogManager/LogManager_CompleteTaskLog /LogManager/CompleteTaskLog] || LogManager || Метод для формирования логов и статистики по задаче || Json-модель результатов формирования логов и статистики
 
|-
 
|-
| Текст ячейки || Текст ячейки || Метод для получения информации по задаче || Json-модель задачи
+
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/TaskManager/TaskManager_NextTask /TaskManager/NextTask] || TaskManager || Метод для получения информации по задаче || Json-модель задачи
 
|}
 
|}
 
=== Объекты репозитория ===
 
=== Объекты репозитория ===

Версия 13:29, 5 сентября 2022

DataManager - сервис по работе с загрузкой данных в объекты платформы 3V / объекты БД

Цель:

  • Организация загрузки данных из внешних источников без привлечения разработчиков
  • Снижение времени на выполнение интеграций с внешними источниками данных

Задачи:

  • Передача данные из внешних источников в объекты платформы 3V
  • Загрузка данные из задач Jira в объекты платформы 3V (Корпоративный портал использует его для загрузки данных из Jira (трудозатраты, задачи и т.д.))

Методы

*на примере 3v-group.net

Название Конроллер Описание Результат
/Data/Load Data Метод для загрузки данных в таблицу Json-модель загруженных в таблицу данных
/Data/LoadFromFile/LoadFromFile Data Метод для загрузки данных из файла Json-модель результата загрузки данных из файла

Загрузка данных из файла в справочник

/DataConverter/ConvertXmlToJson DataConverter

(дополнительный функционал)

Метод для преобразования данных из формата XML в Json Json-модель результата преобразования данных
/DataConverter/ConvertCsvToJson DataConverter

(дополнительный функционал)

Метод для преобразования данных из формата CSV в Json Json-модель результата преобразования данных
/DataConverter/ConvertExcelToJson DataConverter

(дополнительный функционал)

Метод для преобразования данных из формата Excel в Json Json-модель результата преобразования данных
/DataCopier/CopyDictionaryElement/CopyDictionaryElement DataCopier

(дополнительный функционал)

Метод для копирования элемента справочника Идентификатор нового элемента справочника
/DataCopier/CopyIndocatorData/CopyIndicator DataCopier

(дополнительный функционал)

Метод для копирования данных показателя Json-модель скопированных данных показателя
/DataLoader/LoadTableData DataLoader Метод для загрузки данных в таблицу Json-модель загруженных в таблицу данных
/Data/Load /DataLoader/LoadDictionaryData Метод для загрузки данных в справочник Json-модель загруженных в справочник данных
/Kafka/Push Kafka

(дополнительный функционал)

Метод для передачи данных от сервера клиенту Json-модель результата передачи данных
/Kafka/PushTest Kafka

(дополнительный функционал)

Тестовый метод для передачи данных от сервера клиенту Json-модель результата передачи данных
/Kafka/Pull Kafka

(дополнительный функционал)

Метод для передачи данных от клиента, ответ порождается сервером Json-модель результата передачи данных
[1] Installer Метод для установки объектов DataManager:
  • FirstInstallTechObjects
  • DataManagerTasks
  • DataManagerTasksResults
Json-модель результата установки объектов DataManager
/LogManager/CheckCompleteTaskLog LogManager Метод для проверки задачи на завершение и формирования логов и статистики Json-модель результатов проверки и формирования логов и статистики
/LogManager/AddTaskResult LogManager Метод для добавления результата задачи для ведения статистики и логирования Json-модель результатов добавления задачи
/LogManager/CompleteTaskLog LogManager Метод для формирования логов и статистики по задаче Json-модель результатов формирования логов и статистики
/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