8. Приложение 1. Эксплуатация CSV-Uploader
8.1. Инструкция по эксплуатации CSV-Uploader
8.1.1. Общие правила формата загружаемых CSV-файлов
Общие правила формата загружаемых CSV-файлов приведены в Таблица 8.1.
Параметр |
Значение |
|---|---|
Разделитель строк |
Любой вариант из: CR/LF (0x0D0A), CR (0x0D), LF (0x0A) |
Разделитель полей |
по настройке 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-файл со структурой Витрины может быть загружен только один раз после установки Компонент «Витрина данных Лайт».
Для передачи xml-файла со структурой Витрины, выполните следующие действия:
Откройте программный интерфейс CSV-uploader.
Выберите вкладку Загрузка структуры.
В открывшемся окне Загрузка структуры Витрины нажмите кнопку Выберите файл, выберите XML-файла для загрузки и нажмите кнопку Загрузить. (см. Рисунок - 8.43)
Рисунок - 8.43 Загрузка структуры Витрины
В случае успешного применения настроек отобразится информационное сообщение: Список таблиц загружен.
8.1.3. Выгрузка шаблона CSV
Для выгрузки существующего CSV-файла со структурой Витрины, выполните следующие действия:
Откройте программный интерфейс CSV-uploader.
Выберите вкладку Выгрузка шаблона CSV.
Выберите таблицу для выгрузки, например, demo_view_podd.all_types_table, для выгрузки примера CSV-таблиц
для СМЭВ4 (см. Рисунок - 8.44).
Рисунок - 8.44 Выгрузка шаблона CSV
Нажмите кнопку Выгрузить. Файл будет загружен на локальный компьютер. Если требуется выгрузить все таблицы, нажмите кнопку Выгрузить все.
В случае успешной выгрузки на экране монитора отобразится информационное сообщение: Список таблиц выгружен.
8.1.4. Загрузка CSV-файла
Для загрузки CSV-файла, выполните следующие действия:
Откройте программный интерфейс CSV-uploader.
Выберите вкладку Загрузчик CSV.
В открывшемся окне Загрузка файла выберите Режим загрузки:
Вставка - параметр определяет, что данные будут добавлены.
Удаление - параметр определяет, что данные будут удалены.
В случае, если в настройках модуля CSV-uploader включен ФЛК и прописан адрес модуля REST-Uploader, на странице отображается переключатель с текстом «Выполнять проверку форматно-логического контроля».
Для автоматического определения типа таблиц включите переключатель Автоматическое определение таблицы, если автоматическое определение таблиц не требуется, выключите переключатель и выберите таблицу, в которую требуется внести изменения, например, demo_view_podd.all_types_table (см. Рисунок - 8.45).
Рисунок - 8.45 Загрузка CSV-файла
Нажмите кнопку Выберите файл чтобы выбрать файл для загрузки.
Нажмите кнопку Загрузить.
Убедитесь, что файл с таблицами был загружен.
При включенной настройке определения таблиц после выбора и загрузки файла:
модулем CSV-Uploader определяется таблица загрузки:
в случае, если активен переключатель «Автоматическое определение таблицы» по метаданным csv файла;
в случае если выбрана конкретная таблица, в соответствии с выбором пользователя;
модуль CSV-Uploader обогащает url запроса на загрузку именем датамарта и таблицы;
модуль CSV-Uploader выполняет запрос /v2/datamarts/{datamart_name}/tables/{table_name}/upload к модулю REST-Uploader;
модуль CSV-Uploader отображает текст ответа на странице загрузки в формате:
время ответа;
код ответа;
body ответа:
в случае успешного ответа, модуль CSV-Uploader сохраняет requestId файла в топик flk_logs в внутренней Kafka.
8.1.5. Загрузка CSV-файла с предварительным форматно-логическим контролем
В случае, если в настройках модуля CSV-Uploader включена настройка VALIDATION_ENABLE: true и прописан адрес модуля
REST-Uploader (REST_UPLOADER_URL) при активном режиме «Вставка» на странице отображается переключатель с текстом
«Выполнять проверку форматно-логического контроля» , по умолчанию значение вкл (true) см. Рисунок - 8.46.
Рисунок - 8.46 Переключатель выполнения ФЛК
При включенном переключателе «Выполнять проверку форматно-логического контроля» после выбора файла и нажатия кнопки Загрузить:
модулем CSV-Uploader определяется таблица загрузки:
в случае, если включен переключатель «автоопределение таблицы» по метаданным CSV файла;
в случае если выбрана конкретная таблица, в соответствии с выбором пользователя;
модуль CSV-Uploader обогащает URL запроса на загрузку именем датамарта и таблицы;
модуль CSV-Uploader выполняет запрос
/v2/datamarts/{datamart_name}/tables/{table_name}/uploadк модулю REST-Uploader;модуль CSV-Uploader отображает текст синхронного ответа на странице загрузки в формате:
время ответа;
код ответа;
body ответа.
При выключенном переключателе «Выполнять проверку форматно-логического контроля» загрузка выполняется стандартным способом через модуль CSV-Uploader.
8.1.6. Обязательная загрузка данных с предварительным форматно-логическим контролем
При включении настройки VALIDATION_MANDATOR: true, переключатель «Выполнять проверку форматно-логического контроля» неактивен и
находится во включенном положении.
В данном режиме загрузка данных в ручном режиме с использованием CSV-Uploader невозможна, для всех загружаемых данных будут проводиться проверки форматно-логического контроля в модуле REST-Uploader см. Рисунок - 8.47.
Рисунок - 8.47 Обязательная загрузка данных с предварительным форматно-логическим контролем
8.1.7. Аутентификация с использованием jwt-токена при включенной аутентификации в модуле REST-Uploader
Для использования jwt-токена при загрузке данных с предварительным ФЛК в случае, если в REST-Uploader включена аутентификация, необходимо включить следующие настройки в модуле CSV-Uploader:
VALIDATION_ENABLE:true;JWT_AUTH:true.
В случае, если обе настройки имеют значение true, при открытии загрузчика CSV-uploader отображается модальное окно ввода токена пользователя, а на странице загрузки данных в витрину отображается поле «Изменить JWT» (см. Рисунок - 8.48).
Рисунок - 8.48 Модальное окно ввода токена
Значение внесенного JWT-токена используется как барьерный токен при обращении к REST-Uploader.
Внесенное значение токена сохраняется в сессии пользователя и автоматически подставляется при включении переключателя выполнения ФЛК проверок. Для того, чтобы изменить JWT-токен для аутентификации, необходимо нажать кнопку Изменить JWT (см. Рисунок - 8.49).
Рисунок - 8.49 Отображение кнопки Изменить JWT
8.1.8. Настройки CSV-uploader
Для CSV-uploader можно настроить следующие параметры:
автоматический запуск загрузки CSV-файлов по расписанию;
количество отображаемых записей для Журнала операций.
8.1.9. Автоматический запуск загрузки CSV-файлов по расписанию
Для настройки автоматического запуска загрузки CSV-файлов по расписанию, выполните следующие действия:
Откройте программный интерфейс CSV-uploader.
Выберите вкладку Настройки.
В открывшемся окне Настройки в поле Запуск по расписанию, укажите время в
Cronформате (например,0 15 10? * *- загрузка файлов будет происходить каждый день в 10.15) и путь к каталогу с CSV-файлами (см. Рисунок - 8.50) .
Рисунок - 8.50 Автоматический запуск загрузки CSV-файлов по расписанию
Установите маркер в поле Включить, для активации автоматического запуска загрузки.
Нажмите кнопку Применить настройки.
В случае успешного применения настроек отобразится информационное сообщение: Конфигурация успешно получена.
8.1.10. Настройка Журнала операций
Для настройки Журнала операций, выполните следующие действия:
Откройте программный интерфейс CSV-uploader.
Выберите вкладку Настройки.
В открывшемся окне Настройки в поле Размер страницы, укажите количество записей на страницу, например,
20(см. Рисунок - 8.51).
Рисунок - 8.51 Настройка Журнала операций
Нажмите кнопку Применить настройки.
В случае успешного применения настроек отобразится информационное сообщение: Конфигурация успешно получена.
8.1.11. Просмотр Журнала операций
В Журнале операций можно просмотреть действия выполненные в CSV-uploader:
Время - время, когда операция была выполнена.
Уровень - статус операции.
ERROR- ошибка загрузки;INFO- описание операции.
Сообщение - краткое информационное сообщение об операции.
Для просмотра Журнала операций, выполните следующие действия:
Откройте программный интерфейс CSV-uploader.
Выберите вкладку Журнал операций.
В открывшемся окне просмотрите операции, которые были выполнены в CSV-uploader (см. Рисунок - 8.52).
Рисунок - 8.52 Просмотр Журнала операций
Нажмите кнопку Применить настройки.
8.1.12. Интерфейс Форматно-логического контроля
На вкладке Форматно-логический контроль (см. flk) отображается:
список последних отправленных файлов, определяемых настройками модуля CSV-Uploader - значение по умолчанию 20:
список requestId;
время записи в кафку;
статус загрузки файла;
управляющий элемент для запроса отчета об ошибках для файла (кнопка отображается активной только в случае финальных статусов):
статус 3;
статус 4;
статус 7;
элементы пагинации списка requestId.
Рисунок - 8.53 Форматно-логический контроль
При нажатии на кнопку запроса отчета об ошибках для файла, модуль CSV-Uploader:
вызывает метод
/v2/requests/{request_id}/report/;получает CSV файл с именем
report_requestId.csv;в зависимости от ответа:
если response 200 ok: скачивает файл на ПК пользователя автоматически или при нажатии на название отчета с выводом сообщения о загрузке файла;
если response 400 - выводит сообщение
Нет данных.
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>