Платформа 3V/DataManager: различия между версиями
(не показано 36 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE: DataManager.Задачи загрузки данных}} | {{DISPLAYTITLE: DataManager.Задачи загрузки данных}} | ||
− | DataManager - сервис по работе с загрузкой данных в объекты платформы 3V / | + | DataManager - сервис по работе с загрузкой данных в объекты платформы 3V (справочники и показатели) |
+ | |||
+ | <div class="toccolours mw-collapsible" style="width:600px; background:#FFFFFF;"> | ||
+ | <div style="color:#CC2200">[[Платформа 3V/DataManager|<font style="color: #CC2200">Как работать с DataManager</font>]]</div> | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <div style="width:600px;"> | ||
+ | 1. [[Платформа 3V/DataManager/Начало работы|<font style="color: #0645AD">Как начать работу с DataManager</font>]] | ||
+ | </div> | ||
+ | <div style="width:600px;"> | ||
+ | 2. [[Платформа_3V/DataManager/Источник_данных|<font style="color: #0645AD">Как настроить источник данных для DataManager</font>]] | ||
+ | </div> | ||
+ | <div style="width:600px;"> | ||
+ | 3. [[Платформа_3V/DataManager/Приемник_данных|<font style="color: #0645AD">Как настроить приемник данных для DataManager</font>]] | ||
+ | </div> | ||
+ | <div style="width:600px;"> | ||
+ | 4. [[Платформа 3V/DataManager/Маппинг_справочников|<font style="color: #0645AD">Как настроить маппинг для справочника</font>]] | ||
+ | </div> | ||
+ | <div style="width:600px;"> | ||
+ | 5. [[Платформа 3V/DataManager/Маппинг_показателей|<font style="color: #0645AD">Как настроить маппинг для показателя</font>]] | ||
+ | <div style="width:600px;"> | ||
+ | 6. [[Платформа_3V/DataManager/Частичное_очищение_данных_перед_загрузкой_в_справочник|<font style="color: #0645AD">Частичная очистка данных перед загрузкой в справочник</font>]] | ||
+ | </div></div></div></div> | ||
'''Цель:''' | '''Цель:''' | ||
Строка 6: | Строка 27: | ||
* Снижение времени на выполнение интеграций с внешними источниками данных | * Снижение времени на выполнение интеграций с внешними источниками данных | ||
'''Задачи:''' | '''Задачи:''' | ||
− | * Передача | + | * Передача данных из внешних источников в объекты платформы 3V (справочники и показатели) |
− | * Загрузка | + | * Загрузка данных из задач Jira в объекты платформы 3V (Корпоративный портал использует его для загрузки данных из Jira (трудозатраты, задачи и т.д.)) |
=== Методы === | === Методы === | ||
[https://3v.3v-group.net/data-manager-public/swagger/index.html#/ ''*на примере 3v-group.net''] | [https://3v.3v-group.net/data-manager-public/swagger/index.html#/ ''*на примере 3v-group.net''] | ||
+ | |||
+ | ===== Методы, которые чаще всего нужны для работы с DM ===== | ||
+ | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Название !! Конроллер !! Описание !! Результат | ! Название !! Конроллер !! Описание !! Результат | ||
|- | |- | ||
− | |[https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /Data/Load] || Data || Метод для загрузки данных в | + | |[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_LoadFromFile /Data/LoadFromFile/LoadFromFile]|| Data || Метод для загрузки данных из файла || Json-модель результата загрузки данных из файла или возникшая при загрузке ошибка |
− | + | |} | |
+ | |||
+ | ===== Методы, которые реже всего нужны для работы с DM ===== | ||
+ | ''(в некоторых проектах они нужны, но аналитики их почти не используют)'' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Название !! Конроллер !! Описание !! Результат | ||
|- | |- | ||
|[https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /DataConverter/ConvertXmlToJson] || DataConverter | |[https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /DataConverter/ConvertXmlToJson] || DataConverter | ||
Строка 40: | Строка 71: | ||
|| Метод для копирования данных показателя || Json-модель скопированных данных показателя | || Метод для копирования данных показателя || Json-модель скопированных данных показателя | ||
|- | |- | ||
− | | [https://3v.3v-group.net/data-manager-public/swagger/index.html#/ | + | | [https://3v.3v-group.net/data-manager-public/swagger/index.html#/DataLoader/DataLoader_LoadTableData /DataLoader/LoadTableData] || DataLoader || Метод для загрузки данных в таблицу || Json-модель загруженных в таблицу данных |
− | |||
− | |||
|- | |- | ||
− | | [https://3v.3v-group.net/data-manager-public/swagger/index.html#/ | + | | [https://3v.3v-group.net/data-manager-public/swagger/index.html#/DataLoader/DataLoader_LoadDictionaryData /DataLoader/LoadDictionaryData] || DataLoader || Метод для загрузки данных в справочник || Json-модель загруженных в справочник данных |
− | |||
− | || Метод для | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/Installer/Installer_Install /Installer/Install] || Installer || Метод для установки объектов DataManager: | | [https://3v.3v-group.net/data-manager-public/swagger/index.html#/Installer/Installer_Install /Installer/Install] || Installer || Метод для установки объектов DataManager: | ||
Строка 71: | Строка 90: | ||
| [https://3v.3v-group.net/data-manager-public/swagger/index.html#/TaskManager/TaskManager_NextTask /TaskManager/NextTask] || TaskManager || Метод для получения информации по задаче || Json-модель задачи | | [https://3v.3v-group.net/data-manager-public/swagger/index.html#/TaskManager/TaskManager_NextTask /TaskManager/NextTask] || TaskManager || Метод для получения информации по задаче || Json-модель задачи | ||
|} | |} | ||
+ | |||
=== Объекты репозитория === | === Объекты репозитория === | ||
− | + | ===== DataManagerTasks - Задачи загрузки данных ===== | |
+ | |||
+ | Это справочник, который содержит задачи загрузки данных | ||
+ | |||
+ | [[Файл:справочник задач загрузки данных.png|1000px]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Название !! Код !! Тип данных | ! Название !! Код !! Тип данных | ||
|- | |- | ||
− | | | + | | Наименование || NAME || Строка |
|- | |- | ||
− | | | + | | Настройки загрузки || OPTIONS || Строка |
|- | |- | ||
− | | | + | | Дата последнего запуска || BEGIN_DATE || Дата |
|- | |- | ||
− | | | + | | Дата следующего запуска || NEXT_DATE || Дата |
|- | |- | ||
− | | | + | | Периодичность запуска (сек.) || COOLDOWN || Целое число |
|- | |- | ||
− | | | + | | Описание || DESCRIPTION || Длинный текст |
|} | |} | ||
− | + | ===== DataManagerTasksResults - Результаты загрузки данных ===== | |
− | + | Это справочник, который содержит результат загрузки данных | |
− | + | [[Файл:результат.png|1000px]] | |
− | |||
− | |||
− | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Название !! Код !! Тип данных | ||
+ | |- | ||
+ | | Наименование || NAME || Строка | ||
+ | |- | ||
+ | | Статус || STATUS || Строка | ||
+ | |- | ||
+ | | Дата начала || BEGIN_DATE || Дата | ||
+ | |- | ||
+ | | Дата завершения || END_DATE || Дата | ||
+ | |- | ||
+ | | Результат || RESULT || Длинный текст | ||
+ | |- | ||
+ | | Задача || TASK || Элемент справочника задач загрузки данных | ||
+ | |} | ||
=== Источники данных === | === Источники данных === | ||
Строка 141: | Строка 172: | ||
=== Целевая схема использования === | === Целевая схема использования === | ||
− | [[Файл:DM- Целевая схема.png | + | [[Файл:DM- Целевая схема.png|1000px]] |
+ | |||
+ | === Модель DataManager === | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "Source": { | ||
+ | "discriminator": "UrlDataManagerSource", | ||
+ | "Uri": "", | ||
+ | "Credentials": "", | ||
+ | "Headers": "" | ||
+ | }, | ||
+ | "Destination": { | ||
+ | "discriminator": "", | ||
+ | "SaveMode": "Postgres", | ||
+ | "mapperOptions": [ {}, {}], | ||
+ | "expressions": [{}], | ||
+ | "clearData": false, | ||
+ | "dictionaryIdent": "" | ||
+ | } | ||
+ | </syntaxhighlight> |
Текущая версия на 08:41, 12 декабря 2022
DataManager - сервис по работе с загрузкой данных в объекты платформы 3V (справочники и показатели)
Цель:
- Организация загрузки данных из внешних источников без привлечения разработчиков
- Снижение времени на выполнение интеграций с внешними источниками данных
Задачи:
- Передача данных из внешних источников в объекты платформы 3V (справочники и показатели)
- Загрузка данных из задач Jira в объекты платформы 3V (Корпоративный портал использует его для загрузки данных из Jira (трудозатраты, задачи и т.д.))
Содержание
Методы
Методы, которые чаще всего нужны для работы с DM
Название | Конроллер | Описание | Результат |
---|---|---|---|
/Data/Load | Data | Метод для загрузки данных в справочник/показатель | Результат загрузки (json-модель маппинга (об этом чуть позже)) или возникшая при загрузке ошибка |
/Data/LoadFromFile/LoadFromFile | Data | Метод для загрузки данных из файла | Json-модель результата загрузки данных из файла или возникшая при загрузке ошибка |
Методы, которые реже всего нужны для работы с DM
(в некоторых проектах они нужны, но аналитики их почти не используют)
Название | Конроллер | Описание | Результат |
---|---|---|---|
/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-модель загруженных в таблицу данных |
/DataLoader/LoadDictionaryData | DataLoader | Метод для загрузки данных в справочник | Json-модель загруженных в справочник данных |
/Installer/Install | Installer | Метод для установки объектов DataManager:
|
Json-модель результата установки объектов DataManager |
/LogManager/CheckCompleteTaskLog | LogManager | Метод для проверки задачи на завершение и формирования логов и статистики | Json-модель результатов проверки и формирования логов и статистики |
/LogManager/AddTaskResult | LogManager | Метод для добавления результата задачи для ведения статистики и логирования | Json-модель результатов добавления задачи |
/LogManager/CompleteTaskLog | LogManager | Метод для формирования логов и статистики по задаче | Json-модель результатов формирования логов и статистики |
/TaskManager/NextTask | TaskManager | Метод для получения информации по задаче | Json-модель задачи |
Объекты репозитория
DataManagerTasks - Задачи загрузки данных
Это справочник, который содержит задачи загрузки данных
Название | Код | Тип данных |
---|---|---|
Наименование | NAME | Строка |
Настройки загрузки | OPTIONS | Строка |
Дата последнего запуска | BEGIN_DATE | Дата |
Дата следующего запуска | NEXT_DATE | Дата |
Периодичность запуска (сек.) | COOLDOWN | Целое число |
Описание | DESCRIPTION | Длинный текст |
DataManagerTasksResults - Результаты загрузки данных
Это справочник, который содержит результат загрузки данных
Название | Код | Тип данных |
---|---|---|
Наименование | NAME | Строка |
Статус | STATUS | Строка |
Дата начала | BEGIN_DATE | Дата |
Дата завершения | END_DATE | Дата |
Результат | RESULT | Длинный текст |
Задача | 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)
- Поддерживает выражения
Целевая схема использования
Модель DataManager
1 "Source": {
2 "discriminator": "UrlDataManagerSource",
3 "Uri": "",
4 "Credentials": "",
5 "Headers": ""
6 },
7 "Destination": {
8 "discriminator": "",
9 "SaveMode": "Postgres",
10 "mapperOptions": [ {}, {}],
11 "expressions": [{}],
12 "clearData": false,
13 "dictionaryIdent": ""
14 }