1. Общее описание

Внимание

С версии 2.6.0 по умолчанию для хранения персистентных данных используется Prostore версии 7.6 и выше с хотя бы одним ADP (для обеспечения высокой доступности персистентных данных модуля необходимо использование больше одного датасорса ADP).

REST-Uploader - Модуль асинхронной загрузки данных из сторонних источников реализован для обеспечения параллельного обновления данных в Компоненте «Витрина данных» с независимым масштабированием REST-интерфейса.

Операции с данными:

  • загрузка: отправка запроса на .../upload;

  • Модификация данных из внешних источников: отправка запроса на .../modify;

  • логическое удаление: отправка запроса на .../delete (при этом для логических таблиц данные только помечаются как удаленные);

  • удаление исторических данных: отправка запроса на .../truncate.

В Таблица 2.45 приведен перечень операций, выполняемых REST-Uploader с данными Витрины.

Таблица 1.15 Функции REST-Uploader

Операция

Описание операций

Поддерживаемые режимы для типов таблиц

Логическая

proxy

standalone

spapshot

upsert

без sys_op

Загрузка или обновление данных для переданного набора первичных ключей

llw, stream

llw, stream

llw, stream

llw, stream

delete

без sys_op

Удаление данных по переданному набору первичных ключей

llw, stream

llw

llw

llw, stream

truncate

без sys_op

Удаление данных, включая исторические

llw

[с for_system_time]

llw

llw

llw

[с for_system_time]

modify

с sys_op

Cовмещение загрузки и логического удаления в одной операции.

stream

не поддерживается

не поддерживается

stream

Примечание

Для управления прикладными данными в снапшот-таблицах требуется обновление REST-Uploader до версии 2.6.0 и выше. Все изменения данных снапшот-таблиц выполняются в операциях записи, но вне механизма дельт. Т.е. при открытой дельте данные не изолируются (запишутся/удалятся сразу, не дожидаясь закрытия дельты) и не откатываются при выполнении rollback delta.

Спецификация модуля асинхронной загрузки данных из сторонних источников приведена в документе «Руководство администратора Компонента Витрина данных» в Раздел 2.2.12.5.

Внимание

Не рекомендуется использовать персональные данные в качестве первичного ключа, т.к. первичный ключ может отображаться в логах Системы при удалении истории.

Обеспечена буферизация поступающих на загрузку данных. Буферизированные данные направляются в базу менеджером дельт с группировкой по датамартам.

Обеспечены следующие функциональные особенности:

  • идентификатор в формате строки;

  • метаданные от сервера витрины кешируются механизмом, и проверяются на соответствие по количеству и по типам полей (при несоответствии загружаемых данных метаданным целевой таблицы сервис для передачи / загрузки данных возвращает статус запроса с ошибкой, без размещения данных в очереди на загрузку);

  • загруженные данные размещаются вместе с UUID в очереди с именем «queue»;

  • формируется запись с ключом «status.[UUID запроса]» и статусом 0 в очереди;

  • клиенту, отправившему запрос, возвращается успешный статус запроса вместе с UUID;

  • в логе приложения формироваться запись события получения запроса на загрузку с указанием идентификатора запроса, идентификатора ВУЗа, времени обработки и размера загруженных данных.

Внимание

Загружаемые файлы обязательно должны быть в кодировке UTF-8

Примечание

Заливка данных через через модуль REST-Uploader не предусматривают параллельную заливку в датамарты вместе с другими инструментами. Параллельная заливка данных в те же датамарты вручную или средствами ETL приведет к конфликту в работе с дельтами и к ошибкам соответственно.

Общие правила формата загружаемых CSV-файлов приведены в таблице Таблица 2.46.

Таблица 1.16 Общие правила формата загружаемых CSV-файлов

Параметр

Значение

Разделитель строк

Любой вариант из: CR/LF (0x0D0A), CR (0x0D), LF (0x0A)

Разделитель полей

по настройке csv-parser/separator (Раздел 2.2.9.2)

Строка заголовка

да (обязательно)

Порядок полей в строке

определяется строкой заголовка

Ограничитель текстового поля

по настройке csv-parser/quote-char (Раздел 2.2.9.2)

Символ маскировки в текстовом поле

по настройке csv-parser/escape-char (Раздел 2.2.9.2)

Обнаружение значения null

До релиза 1.5.0 (включительно): по настройке csv-parser/field-as-null (Раздел 2.2.9.2)

начиная с релиза 1.10.0: в текущей реализации парсера данная настройка не поддерживается

Кодирование символов

UTF-8

Десятичный разделитель

символ . (0x2E), может не указываться для целых значений

Формат даты

любой из: dd.MM.yyyy, yyyy-MM-dd

Формат времени

любой из: HH:mm:ss, H:mm:ss

Формат даты-времени

до релиза 1.5.0(включительно) любой из: yyyy-MM-dd HH:mm:ss, dd.MM.yyyy HH:mm:ss

начиная с релиза 1.10.0 любой из: yyyy-MM-dd HH:mm:ss.000000, dd.MM.yyyy HH:mm:ss.000000