8. Приложение 1. Эксплуатация CSV-Uploader
8.1. Инструкция по эксплуатации CSV-Uploader
8.1.1. Общие правила формата загружаемых CSV-файлов
Общие правила формата загружаемых CSV-файлов приведены в Таблица 8.1.
Параметр |
Значение |
|---|---|
Разделитель строк |
Любой вариант из: CR/LF (0x0d0A), CR (0x0d), LF (0x0d) |
Разделитель полей |
По настройке csv-parser/separator (Параметры конфигурации) |
Строка заголовка |
Да (обязательно) |
Порядок полей в строке |
Определяется строкой заголовка |
Ограничитель текстового поля |
По настройке csv-parser/quote-char (Параметры конфигурации) |
Символ маскировки в текстовом поле |
По настройке csv-parser/escape-char (Параметры конфигурации) |
Обнаружение значения null |
До релиза 1.5.0 (включительно): по настройке csv-parser/field-as-null (Параметры конфигурации) Начиная с релиза 1.10.0: в текущей реализации парсера данная настройка не поддерживается |
Кодирование символов |
UTF-8 |
Десятичный разделитель |
символ |
Формат даты |
Любой из: |
Формат времени |
Любой из: |
Формат даты-времени |
До релиза 1.5.0(включительно) любой из: Начиная с релиза 1.10.0 любой из: |
8.1.2. Загрузка структуры Витрины
Примечание
XML-файл со структурой Витрины может быть загружен только один раз после установки Компонента «Витрина данных Лайт» и при наличии прямого подключения к Prostore (настройка prostore-rest-client.enabled: true).
Для передачи XML-файла со структурой Витрины выполните следующие действия:
Откройте программный интерфейс CSV-uploader.
Выберите вкладку Загрузка структуры.
В открывшемся окне Загрузка структуры Витрины нажмите кнопку Выберите файл, выберите XML-файла для загрузки и нажмите кнопку Загрузить (см. Рисунок - 8.43).
Рисунок - 8.43 Загрузка структуры Витрины
В случае успешного применения настроек отобразится информационное сообщение: Список таблиц загружен.
8.1.3. Выгрузка шаблона CSV
Примечание
Выгрузка шаблонов CSV-файлов возможна только при наличии прямого подключения к Prostore (настройка prostore-rest-client.enabled: true)
Для выгрузки шаблона CSV-файла со структурой Витрины выполните следующие действия:
Откройте программный интерфейс CSV-uploader.
Выберите вкладку Выгрузка шаблона CSV.
Выберите таблицу для выгрузки, например, demo_view_test.ticket, для выгрузки примера CSV-таблиц для СМЭВ4 (см. Рисунок - 8.44).
Нажмите кнопку Выгрузить. Файл будет загружен на локальный компьютер. Если требуется выгрузить все таблицы, нажмите кнопку Выгрузить все.
Рисунок - 8.44 Выгрузка шаблона CSV
В случае успешной выгрузки на экране монитора отобразится информационное сообщение: «Список таблиц выгружен».
8.1.4. Загрузка CSV-файла
Для загрузки CSV-файла выполните следующие действия:
Откройте программный интерфейс CSV-uploader.
Выберите вкладку Загрузить.
В открывшемся окне Загрузка файла выберите:
а) Режим:
Вставка - параметр определяет, что данные будут добавлены.
Удаление - параметр определяет, что данные будут удалены.
- б) Выполнять проверку форматно-логического контроля: переключатель отображается, если в настройках модуля CSV-uploader, включен ФЛК
(validation.enabled = true) и указан адрес модуля REST-Uploader (validation.rest-uploader-url), а также выбран режим «Вставка»:
Включено - перед загрузкой файлов на Витрину данных выполняется ФЛК при помощи модуля REST-Uploader;
Выключено - данные загружаются на Витрину данных без ФЛК.
Примечание
При включении настройки upload.mandatoryFlk: true переключатель «Выполнять проверку форматно-логического контроля» неактивен и всегда находится во включенном положении.
в) Таблицу, в ручном или автоматическом режиме
Для автоматического определения типа таблиц включите переключатель Автоматическое определение таблицы;
если автоматическое определение таблиц не требуется, выключите переключатель. В этом случае Витрину и таблицу можно выбрать в выпадающих списках или, при включенной опции metadata.free-input ввести в соответствующих полях.
Примечание
Автоматический режим определения таблицы доступен только при наличии прямого подключения к Prostore (настройка prostore-rest-client.enabled: true). При отсутствии прямого подключения к Prostore (настройка prostore-rest-client.enabled: false) Витрины и таблицы для выбора загружаются из файла конфигурации (раздел metadata).
Рисунок - 8.45 Загрузка CSV-файла
Рисунок - 8.46 Выбор таблицы из списка
Нажмите кнопку Выберите файл чтобы выбрать файл для загрузки.
Нажмите кнопку Загрузить.
Убедитесь, что файл с таблицами был загружен.
Рисунок - 8.47 Результат загрузки
В случае успешной загрузки отобразится информационное сообщение: «Операция успешно выполнена: [идентификатор запроса]».
8.1.5. Обязательная загрузка данных с предварительным форматно-логическим контролем
При включении настройки VALIDATION_MANDATOR: true, переключатель Выполнять проверку форматно-логического контроля неактивен и
находится во включенном положении.
В данном режиме загрузка данных в ручном режиме с использованием CSV-Uploader невозможна, для всех загружаемых данных будут проводиться проверки форматно-логического контроля в модуле REST-Uploader см. Рисунок - 8.48.
Рисунок - 8.48 Обязательная загрузка данных с предварительным форматно-логическим контролем
8.1.6. Загрузка данных без подключения к Prostore
При отсутствии прямого подключения к Prostore выбор витрин и таблиц выполняется в интерфейсе загрузчика в виде выпадающих списков (см. Рисунок - 8.49).
При этом, для выбора таблиц сначала нужно выбрать Datamart (в случае, если ручной ввод названия таблицы отключен).
Рисунок - 8.49 Выбор датамарта/таблицы из предопределенного списка
Рисунок - 8.50 Отображение выбора датамарта/таблицы из предопределенного списка
При включении ручного ввода названия таблицы под полем выбора таблиц отображается текстовое поле ввода (см. Рисунок - 8.51).
Рисунок - 8.51 Отображение текстового поля ввода
8.1.7. Аутентификация
8.1.7.1. Использование jwt-токена при включенной аутентификации в модуле REST-Uploader
При использовании ФЛК перед загрузкой данных на Витрину данных может потребоваться дополнительная аутентификации в модуле REST-Uploader. В этом случае необходимо использование jwt-токена. Для этого необходимо выставить следующую настройку в модуле CSV-Uploader:
auth.mode: JWT.
При такой конфигурации, при открытии загрузчика CSV-Uploader отображается модальное окно ввода токена пользователя, а на странице загрузки данных на Витрину данных отображается поле Изменить JWT. (см. Рисунок - 8.52).
Рисунок - 8.52 Модальное окно ввода токена
Значение внесенного JWT-токена используется как барьерный токен при обращении к REST-Uploader.
Внесенное значение токена сохраняется в сессии пользователя и автоматически подставляется при включении переключателя выполнения ФЛК проверок. Для того чтобы изменить JWT-токен для аутентификации, необходимо нажать кнопку Изменить JWT (см. Рисунок - 8.53).
Рисунок - 8.53 Отображение кнопки Изменить JWT
8.1.7.2. Аутентификация через Datamart studio
При загрузке данных CSV-Uploader в удаленную Витрину необходимо пройти аутентификацию через ПО Datamart studio.
Для включения аутентификации через Datamart studio необходимо выставить следующую настройку в модуле CSV-Uploader:
auth.mode: STUDIO;auth.studio.ui-prompt:true- запрос логина и пароля на странице «Загрузка», (отдельно для каждого datamart);false- используются логины и пароли, из конфигурационного файла (блокauth.studio.datamarts).
8.1.8. Настройки CSV-uploader
Для CSV-uploader можно настроить следующие параметры:
автоматический запуск загрузки CSV-файлов по расписанию;
настройка журнала загрузок по расписанию.
8.1.8.1. Автоматический запуск загрузки CSV-файлов по расписанию
Для настройки автоматического запуска загрузки CSV-файлов по расписанию, выполните следующие действия:
Откройте программный интерфейс CSV-uploader.
Выберите вкладку Настройки.
В открывшемся окне Настройки в поле Запуск по расписанию, укажите время в
Cronформате (например,0 15 10? * *- загрузка файлов будет происходить каждый день в 10.15) и путь к каталогу с CSV-файлами (см. Рисунок - 8.54) .Установите маркер в поле Включить, для активации автоматического запуска загрузки.
Нажмите кнопку Применить настройки.
Рисунок - 8.54 Автоматический запуск загрузки CSV-файлов по расписанию
В случае успешного применения настроек отобразится информационное сообщение: «Конфигурация успешно получена».
8.1.8.2. Настройка журнала загрузок по расписанию
Для настройки журнала загрузок по расписанию выполните следующие действия:
Откройте программный интерфейс CSV-uploader.
Выберите вкладку Настройки.
В открывшемся окне Настройки в поле Размер страницы, укажите количество записей на страницу, например,
20(см. Рисунок - 8.55).Нажмите кнопку Применить настройки.
Рисунок - 8.55 Настройка журнала загрузок по расписанию
В случае успешного применения настроек отобразится информационное сообщение: Конфигурация успешно получена.
8.1.9. Просмотр журнала загрузок по расписанию
В журнале загрузок по расписанию можно просмотреть действия выполненные в CSV-uploader:
Время - время, когда операция была выполнена.
Уровень - статус операции.
ERROR- ошибка загрузки;INFO- описание операции
Сообщение - краткое информационное сообщение об операции.
Для просмотра журнала загрузок по расписанию, выполните следующие действия:
Откройте программный интерфейс CSV-uploader.
Выберите вкладку Журнал загрузок по расписанию.
В открывшемся окне просмотрите операции, которые были выполнены в CSV-uploader (см. Рисунок - 8.56).
Нажмите кнопку Применить настройки.
Рисунок - 8.56 Просмотр журнала загрузок по расписанию
8.1.10. Интерфейс Форматно-логического контроля
На вкладке Журнал загрузок отображается:
список последних отправленных файлов, определяемых настройками модуля CSV-Uploader - значение по умолчанию 20:
время записи;
пользователь;
идентификаторы файлов;
статус загрузки файла;
кнопка запроса отчета об ошибках для файла (кнопка отображается активной только в случае финальных статусов):
статус 3, Успешно обработан;;
статус 4, Ошибка обработки запроса;
статус 7, Ошибки ФЛК;
элементы пагинации списка requestId.
Рисунок - 8.57 Просмотр журнала загрузок
При нажатии на кнопку запроса отчета об ошибках для файла, модуль CSV-Uploader скачивает файл на ПК пользователя автоматически или при нажатии на название отчета с выводом сообщения о загрузке файла.
9. Приложение 2. Пример XML-файла со структурой витрины
<?xml version='1.0' encoding='utf-8'?>
<ns:PODDMetadataRequest
xmlns:ns="urn://x-artefacts-podd-gosuslugi-local/metadata/datamart/2/1.6.0"
xmlns:ns1="urn://x-artefacts-podd-gosuslugi-local/metadata/types/1.3">
<ns:requestId>00000000-0000-0000-0000-000000000001</ns:requestId>
<ns:metadata>
<ns1:datamart>
<ns1:id>1806436d-437a-400d-b32e-aa15c1a2d4bc</ns1:id>
<ns1:mnemonic>demo_view</ns1:mnemonic>
<ns1:description>demo_view</ns1:description>
<ns1:tenantId>c52f062e-af97-4a44-a33f-d1a94024d0cf</ns1:tenantId>
<ns1:version>
<ns1:major>1</ns1:major>
<ns1:minor>0</ns1:minor>
</ns1:version>
<ns1:supportedFrom>2021-01-01T00:00:00</ns1:supportedFrom>
<ns1:datamartClass>
<ns1:id>4c4ff97b-938b-4db6-9f4d-ae21046e4d20</ns1:id>
<ns1:mnemonic>Passenger</ns1:mnemonic>
<ns1:description>Passenger</ns1:description>
<ns1:classAttribute>
<ns1:id>6fe29bdb-7db1-405a-a05c-b49c541c92bd</ns1:id>
<ns1:mnemonic>Code</ns1:mnemonic>
<ns1:description>Code</ns1:description>
<ns1:type>LONG</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>e590e7b3-b611-4891-bbd1-a5e256105e73</ns1:id>
<ns1:mnemonic>Id</ns1:mnemonic>
<ns1:description>Id</ns1:description>
<ns1:type>STRING</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>c97a8102-6ad0-4dbd-934d-c82b83a4d83f </ns1:id>
<ns1:mnemonic>FirstName</ns1:mnemonic>
<ns1:description>FirstName</ns1:description>
<ns1:type>STRING</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>d2312bfb-7ec0-4c95-9026-0f6dea48c5d9</ns1:id>
<ns1:mnemonic>MiddleName</ns1:mnemonic>
<ns1:description>MiddleName</ns1:description>
<ns1:type>STRING</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>7b63db89-bd0e-4c92-8bc0-e609175937b9</ns1:id>
<ns1:mnemonic>LastName</ns1:mnemonic>
<ns1:description>LastName</ns1:description>
<ns1:type>STRING</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>8f3e7f95-f66b-4d4a-b2eb-55a3e6134c3e</ns1:id>
<ns1:mnemonic>Birthday</ns1:mnemonic>
<ns1:description>Birthday</ns1:description>
<ns1:type>DATE</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>e3658240-b405-4838-99af-d32cd063c463</ns1:id>
<ns1:mnemonic>Passport</ns1:mnemonic>
<ns1:description>Passport</ns1:description>
<ns1:type>STRING</ns1:type>
</ns1:classAttribute>
<ns1:primaryKey>
<ns1:id>6fe29bdb-7db1-405a-a05c-b49c541c92bd</ns1:id>
<ns1:mnemonic>Code</ns1:mnemonic>
<ns1:description>Code</ns1:description>
<ns1:type>
<ns1:id>00000000-0000-0000-0000-000000000001</ns1:id>
<ns1:value>LONG</ns1:value>
</ns1:type>
</ns1:primaryKey>
</ns1:datamartClass>
<ns1:datamartClass>
<ns1:id>cafe41db-3878-4796-ba60-cbd54f042c63</ns1:id>
<ns1:mnemonic>Ticket</ns1:mnemonic>
<ns1:description>Ticket</ns1:description>
<ns1:classAttribute>
<ns1:id>bc90563b-168a-4faa-9394-7b7390dd0d92</ns1:id>
<ns1:mnemonic>Id</ns1:mnemonic>
<ns1:description>Id</ns1:description>
<ns1:type>STRING</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>ac93618f-752b-44d5-a77c-23a3c9eb069b</ns1:id>
<ns1:mnemonic>PassengerId</ns1:mnemonic>
<ns1:description>PassengerId</ns1:description>
<ns1:type>STRING</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>51355519-2d59-426e-b199-9589930acaaa</ns1:id>
<ns1:mnemonic>TripId</ns1:mnemonic>
<ns1:description>TripId</ns1:description>
<ns1:type>STRING</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>fe92c245-929e-4684-b9c9-22bda6939c09</ns1:id>
<ns1:mnemonic>Number</ns1:mnemonic>
<ns1:description>Number</ns1:description>
<ns1:type>LONG</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>4a32ded4-c970-4874-b0b1-2e3eed8b6483</ns1:id>
<ns1:mnemonic>ByCard</ns1:mnemonic>
<ns1:description>ByCard</ns1:description>
<ns1:type>BOOLEAN</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>35f59c80-fcc3-483c-9cd3-dc3afb606d66</ns1:id>
<ns1:mnemonic>Price</ns1:mnemonic>
<ns1:description>Price</ns1:description>
<ns1:type>DOUBLE</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>8b46ff55-6853-458c-851d-6e1666da918b</ns1:id>
<ns1:mnemonic>Sold</ns1:mnemonic>
<ns1:description>Sold</ns1:description>
<ns1:type>TIMESTAMP</ns1:type>
</ns1:classAttribute>
<ns1:primaryKey>
<ns1:id>fe92c245-929e-4684-b9c9-22bda6939c09</ns1:id>
<ns1:mnemonic>Number</ns1:mnemonic>
<ns1:description>Number</ns1:description>
<ns1:type>
<ns1:id>00000000-0000-0000-0000-000000000001</ns1:id>
<ns1:value>LONG</ns1:value>
</ns1:type>
</ns1:primaryKey>
</ns1:datamartClass>
<ns1:datamartClass>
<ns1:id>76268090-60ee-4960-8268-1b91f4186e87</ns1:id>
<ns1:mnemonic>Trip</ns1:mnemonic>
<ns1:description>Trip</ns1:description>
<ns1:classAttribute>
<ns1:id>bd173e24-ea7e-4869-9d43-9f57f5b0a82f</ns1:id>
<ns1:mnemonic>Id</ns1:mnemonic>
<ns1:description>Id</ns1:description>
<ns1:type>STRING</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>1ed32816-8bdb-4d35-9f66-8c08df13ad28</ns1:id>
<ns1:mnemonic>Number</ns1:mnemonic>
<ns1:description>Number</ns1:description>
<ns1:type>INTEGER</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>78f587fa-b53e-4912-b631-0c4a249d20b6</ns1:id>
<ns1:mnemonic>Duration</ns1:mnemonic>
<ns1:description>Duration</ns1:description>
<ns1:type>STRING</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>1750c564-20a7-4e07-988a-b382227123e4</ns1:id>
<ns1:mnemonic>Length</ns1:mnemonic>
<ns1:description>Length</ns1:description>
<ns1:type>FLOAT</ns1:type>
</ns1:classAttribute>
<ns1:primaryKey>
<ns1:id>1ed32816-8bdb-4d35-9f66-8c08df13ad28</ns1:id>
<ns1:mnemonic>Number</ns1:mnemonic>
<ns1:description>Number</ns1:description>
<ns1:type>
<ns1:id>00000000-0000-0000-0000-000000000002</ns1:id>
<ns1:value>INTEGER</ns1:value>
</ns1:type>
</ns1:primaryKey>
</ns1:datamartClass>
</ns1:datamart>
</ns:metadata>
</ns:PODDMetadataRequest>