Механизм импорта позволяет администраторам собирать данные из различных источников, а затем сопоставлять эти данные с соответствующими таблицами.
Механизм импорта SimpleOne поддерживает:
- различные типы источников данных.
- различные форматы файлов (если в качестве типа источника выбран Файл).
Выберите источник данных, поместите данные из него во временную таблицу Набора для импорта. С помощью схемы трансформации и соотношения полей сопоставьте данные из источника и целевой таблицы.
Требуемая роль: admin.
Ниже представлено графическое представление процесса импорта:
Ключевые понятия
Понятие | Описание |
---|---|
Источник импорта | Запись, указывающая, какие данные набора для импорта должны быть импортированы. |
Набор для импорта | Запись, содержащая ссылки на необработанные данные, загруженные в промежуточную таблицу. Запись также возвращает информацию о статусе процесса импорта. |
Таблица импорта | Автоматически сгенерированная таблица, используемая в качестве временного хранилища для импортированных записей перед преобразованием. Структура таблицы формируется автоматически в зависимости от импортируемых данных. |
Преобразование | Процесс преобразования данных в соответствии со схемой трансформации и скриптами, определяющими исходную таблицу набора для импорта и целевую таблицу. |
Схема трансформации | Запись, указывающая корреляцию между исходной и целевой таблицами. |
Скрипт преобразований | Скрипт, который позволяет настраивать операции импорта с помощью нативного JavaScript, расширенного с помощью серверного API SimpleOne. |
Соотношение полей | Запись, указывающая связь между полем в исходной таблице и полем в целевой таблице. |
Объединение данных | Эта опция позволяет обновлять существующие записи таблицы в процессе преобразования. Для дополнительной информации перейдите к части статьи Объединение данных (COALESCE). |
Источники импорта
Создание источника импорта необходимо для загрузки необработанных данных в систему для дальнейшей обработки и преобразования. Вы можете настроить источник импорта с различными типами источников данных и форматами файлов.
- Перейдите в Импорт → Источники импорта.
- Нажмите Создать и заполните поля.
Если вы выбрали тип Файл, нажмите на иконку скрепки и прикрепите нужный файл.
- Нажмите Сохранить или Сохранить и выйти, чтобы применить изменения.
Поля формы Источник импорта
Поле | Обязательно | Описание |
---|---|---|
Наименование | Да | Укажите название источника импорта. |
Наименование таблицы импорта | Да | Укажите название временной таблицы импорта. |
Тип | Нет | Выберите тип источника импорта. Доступные опции:
|
Способ получения файла | Нет | Выберите метод добавления файла в источник импорта. Доступные опции:
Это поле появляется, когда выбран тип Файл. |
Формат | Да | Выберите формат файла и прикрепите его к форме. Доступные опции:
Это поле появляется, если выбран тип Файл или Текст. |
Текст импорта | Нет | Укажите текст, который вам нужно импортировать. Это поле появляется, когда выбран тип Текст.
Текст Expand source
[ { "property": "value" }, { "property": "value" } ] |
Настройка LDAP | Нет | Нажмите на иконку лупы, чтобы выбрать протокол, который вам необходим. Это поле появляется, когда выбран тип LDAP. Подробнее читайте в статье Импорт LDAP. |
После сохранения, на форме источника импорта появятся действия пользовательского интерфейса, которые отвечают за дальнейшую обработку импорта.
Действие | Описание |
---|---|
Пробная загрузка (20 записей) | Нажмите, чтобы создать пробный набор для импорта из 20 записей для анализа структуры данных импорта. Не используйте тестовый набор для дальнейшего преобразования. |
Загрузить все | Нажмите, чтобы создать новую запись набора для импорта, загрузив туда все данные из источника импорта. Этот набор для импорта можно использовать для дальнейшего преобразования. |
После загрузки данных в источник импорта, сохранения записи и вызова одного из действий загрузки данных, в связанном списке Наборы для импорта появляется новая запись.
Использование формата JSON
В качестве источника импорта можно использовать файлы, содержащие данные в формате JSON. В этом случае убедитесь, что файлы соответствуют следующим критериям:
- Файлы JSON должны быть актуальными. Используйте документ RFC 8259 в качестве руководства.
- Типы данных, доступные для использования в структуре JSON, перечислены ниже. Использование dot-walking не поддерживается.
{ "top500": 1, "name": "More", "sector": "Oil and gas" }
Результат: один элемент. В таблице есть поля top500, name, sector и одна запись.
[ { "top500": 1, "name": "More", "sector": "Oil and gas" }, { "top500": 2, "name": "Nevermore", "sector": "Oil and gas" } ]
Результат: создан набор для импорта со связанной таблицей. Таблица имеет поля top500, name, sector и содержит две записи.
// Path for Each Row == exportField { "exportField":[ { "top500":1, "name":"More", "sector":"Oil and gas" }, { "top500":2, "name":"Nevermore", "sector":"Oil and gas" }, { "top500": 4, "name": "Givememore", "sector": "Oil and gas", "more_info": "https://instance.example.com/company/34" } ] }
Результат: создан набор для импорта со связанной таблицей. Таблица имеет поля top500, name, sector и содержит три записи.
Преобразование имени таблицы импорта и колонок
Во время конвертации данных для импорта системные названия колонок и системные названия таблиц, которые отображаются в поле Наименование таблицы импорта в таблице Источники для импорта, транслитерируются и преобразуются по следующим правилам:
- Каждый символ из списка символов кириллицы заменяется на символ, соответствующий порядковому номеру в списке символов латиницы:
Кириллица Латиница а А a A б Б b B в В v V г Г g G д Д d D е Е e E ё Ё io Io ж Ж zh Zh з З z Z и И i I й Й j J к К k K л Л l L м М m M н Н n N о О o O п П p P р Р r R с С s S т Т t T у У u U ф Ф f F х Х h h ц Ц ts Ts ч Ч ch Ch ш Ш sh Sh щ Щ shch Shch ъ Ъ \ \ ы Ы y Y ь Ь \ \ э Э e e ю Ю yu Yu я Я ya Ya - Затем все символы, не удовлетворяющие регулярному выражению
/[^A-Za-z0-9_]+/u
, заменяются на нижнее подчеркивание _ . То есть все символы, кроме больших и маленьких букв, цифр и нижнего подчеркивания, заменяются на _. - Текущее имя колонки разбивается на части по символу _, а затем они склеиваются символом _, например, для _DOC_____1 в итоге получим doc_1. При этом повторяющиеся символы нижнего подчеркивания сливаются в один.
Текущее имя колонки приводится к нижнему регистру.
Если полученное во время конвертации имя колонки пустое, то устанавливается имя
imp_invalid_column + номер колонки
. Номер колонки определяется ее порядком в таблице, нумерация начинается с 0, напримерimp_invalid_column0
.- К имени добавляется префикс imp, например,
imp_spisok_klientov
.
Набор для импорта
Набор для импорта создается автоматически на основе необработанных данных, загруженных в источник импорта. Набор для импорта – временное хранилище записей, импортируемых из источника данных.
Поля формы Набор для импорта
Поле | Описание |
---|---|
Номер | Поле содержит уникальный номер набора для импорта и заполняется автоматически. |
Источник импорта | Поле содержит соответствующее наименование источника импорта и заполняется автоматически. |
Таблица набора импорта | Поле содержит наименование временной таблицы импорта и заполняется автоматически. Системные имена полей таблицы начинаются с префикса imp. |
Статус | Состояние загрузки набора для импорта. Поле заполняется автоматически и доступно только для чтения. Возможные значения:
|
Краткое описание | Поле описывает структуру созданной таблицы и заполняется автоматически. Пример значения поля: Table structure: (top500 | name | sector) |
Записи Набора для импорта находятся в отношениях родитель-потомок с записями таблицы Элементы наборов.
Схема трансформации
Схема трансформации представляет собой набор соотношений полей. В этом наборе соотношений полей указывается корреляция между полями временной таблицы импорта и полями целевой таблицы.
Для каждой операции импорта требуется по крайней мере одна запись схемы трансформации, которая показывает связь временной таблицы импорта и целевой таблицы.
После создания первого набора для импорта, создайте запись схемы. Для этого выполните следующие шаги:
- Нажмите на Схемы трансформации на форме записи источника импорта, который вы настраиваете.
- В появившемся всплывающем сообщении пройдите по ссылке Создать схему трансформации.
- Заполните поля в появившейся форме.
- Нажмите Сохранить или Сохранить и выйти, чтобы применить изменения.
Схемы трансформаций также можно создать с нуля. Для этого выполните следующие шаги:
- Перейдите в Импорт → Схемы трансформаций, чтобы открыть список схем.
- Нажмите Создать и заполните поля.
- Нажмите Сохранить или Сохранить и выйти, чтобы применить изменения.
Поля формы Схема трансформации
Поле | Обязательное | Описание |
---|---|---|
Наименование | Да | Укажите отображаемое название схемы трансформации таблиц. |
Активна | Нет | Установите флажок, чтобы сделать схему трансформации доступной для использования. |
Исходная таблица | Да | Выберите таблицу, содержащую набор для импорта. |
Целевая таблица | Да | Выберите таблицу, в которую необходимо поместить импортированные данные. |
Форсированный импорт | Нет | Установите флажок, чтобы игнорировать бизнес-правила, правила уведомлений и другие механизмы на стороне сервера, которые могут запускаться действиями создания или обновления записей. В частности, рабочие процессы, связанные с этой записью, не запустятся, история изменений поля не будет записана и не будет отображаться в Ленте активности. Вы можете найти порядок выполнения механизмов и бизнес-правил в статье Порядок выполнения. |
Игнорировать обязательные поля | Нет | Установите флажок, чтобы игнорировать обязательные поля в целевой таблице. |
Использовать скрипт | Нет | Установите флажок, чтобы отобразить поле Скрипт, в котором можно определить скрипт трансформации. Если вы снимите флажок после создания скрипта, скрипт не будет применяться в трансформации. |
Скрипт | Нет | Создайте скрипт схемы трансформации, который необходимо использовать для преобразования значений полей из исходной таблицы в целевую. Для расширенного импорта, используйте доступные классы и методы API. Используйте функцию runTransformRow() со следующими параметрами:
Этот скрипт можно использовать для определения связей полей перед трансформацией. Вы также можете настроить соотношения, создав связанные записи на вкладке Соотношения полей схемы трансформации. Если вы настраиваете соотношения полей с помощью скрипта, создайте еще одну запись соотношения полей, чтобы определить настройку объединения данных (флажок Объединить данные на форме соотношения полей) для этого сеанса трансформации. |
Скрипт преобразования
Скрипт преобразования позволяет настроить импорт данных с помощью JS-скриптов и классов серверного API после создания схемы трансформации. Для этого выполните следующие шаги:
- Перейдите на нужную форму записи Схемы трансформации.
- В области Связанные списки выберите вкладку Скрипты преобразований.
- Нажмите Создать и заполните поля.
- Нажмите Сохранить или Сохранить и выйти, чтобы применить изменения.
Скрипты преобразований также можно создать с нуля. Для этого выполните следующие шаги:
- Перейдите в Импорт → Скрипты преобразований, чтобы открыть список скриптов.
- Нажмите Создать и заполните поля.
- Нажмите Сохранить или Сохранить и выйти, чтобы применить изменения.
Поля формы Скрипт преобразования
Поле | Обязательное | Описание |
---|---|---|
Схема трансформации | Да | Укажите схему трансформации, для которой будет выполняться скрипт. |
Активен | Нет | Установите флажок, чтобы активировать скрипт. |
Когда | Да | Выберите, когда выполнять скрипт. Доступные опции:
|
Порядок | Нет | Укажите порядок, в котором будет выполняться скрипт преобразования. Заполните это поле целым числом. Поле Порядок временно работает некорректно. Наша команда работает над улучшением его логики, чтобы сделать его работу полноценной. Об изменениях мы сообщим вам в одном из следующих релизов. |
Скрипт | Нет | Введите скрипт, используя серверный API SimpleOne. Используйте функцию runTransformScript() со следующими параметрами:
|
Соотношение полей
Соотношения полей используются для создания связи между полями временной таблицы импорта и полями целевой таблицы. Для этого необходимо определить значения из исходной таблицы, которые будут добавлены в целевую таблицу.
В процессе импорта может потребоваться обновить существующие записи в целевой таблице. Чтобы настроить отношения между исходной и целевой таблицами, создайте хотя бы одну запись соотношения полей с установленным флажком Объединить данные. Этот атрибут должен быть включен для соотношения полей, которые содержат уникальные значения. Это может быть электронная почта для пользователя или серийный номер для конфигурационной единицы (КЕ).
Вы можете устанавливать флажок на нескольких записях соотношения полей.
Чтобы создать соотношение полей, выполните следующие действия:
- Перейдите в Импорт → Схемы трансформаций.
- Откройте запись соотношения таблиц, которую вам нужно настроить.
- Нажмите Создать соотношения полей, чтобы открыть виджет Соотношения полей. Смотрите скриншот в таблице ниже.
- Настройте соотношения полей в текущем процессе преобразования.
- Нажмите Создать, чтобы сохранить изменения.
Еще один способ создания соотношения полей:
- Перейдите в Импорт → Схемы трансформаций.
- Откройте запись соотношения таблиц, которую вам нужно настроить.
- В связанном списке Соотношения полей нажмите Создать и заполните поля.
- Нажмите Сохранить или Сохранить и выйти, чтобы применить изменения.
- Повторите предыдущие шаги для каждой записи соотношения полей, которое необходимо установить.
Поля формы Соотношение полей
Поле | Обязательно | Описание |
---|---|---|
Соотношение таблиц | Да | Отображает запись соотношения таблиц, которая использует эту запись соотношения полей. Поле заполняется автоматически, если запись создается через виджет или из связанного списка. |
Исходное поле | Да | Выберите поле исходной таблицы, которое необходимо преобразовать. |
Целевое поле | Да | Выберите поле целевой таблицы, в котором должны храниться значения из исходной таблицы. |
Объединить данные | Нет | Установите флажок, чтобы в процессе преобразования, механизм проверял, равны ли значения в Целевой таблице значениям в Исходной таблице импорта. Если значения равны, запись в Целевой таблице будет обновлена; в противном случае, будет создана новая запись. Вы можете настроить эту опцию в виджете. Нажмите на Создать соотношения полей на форме записи соотношения таблицы, чтобы открыть виджет, содержащий кнопки Добавить COALESCE или Убрать COALESCE. |
Использовать исходный скрипт | Нет | Установите флажок, чтобы определить скрипт преобразования в поле Скрипт. |
Скрипт | Да | Добавьте скрипт, чтобы определить функцию, которая принимает объект записи таблицы Набор для импорта в качестве аргумента и возвращает значение для помещения в Целевое поле. Поле появляется, когда установлен флажок Использовать исходный скрипт. Не снимайте флажок Использовать исходный скрипт после создания скрипта; иначе он не применится. Для расширенного импорта, используйте доступные классы и методы API. Используйте функцию transformEntry() со следующими параметрами:
|
Запуск преобразования
- Перейдите в Импорт → Наборы для импорта.
- Откройте набор для импорта, который вам нужно преобразовать. Убедитесь, что статус набора Загружен.
- Нажмите Трансформировать.
В результате появится всплывающее сообщение Импорт завершен
. Импортированные данные будут перенесены в целевую таблицу.
Последовательность трансформации
На схеме ниже показана последовательность событий, вызванных преобразованием:
- Последовательность начинается со скрипта преобразования При старте импорта. Он выполняется в начале преобразования до того, как будет прочитана какая-либо запись Элемента набора.
- (опционально) Скрипт, указанный в записи Соотношения полей, принимает объект записи таблицы Элемент набора в качестве аргумента и возвращает значение для помещения в целевое поле.
- (опционально) Скрипт, указанный в записи Схемы трансформации, преобразует значения полей из исходной строки в целевую строку.
- Скрипт преобразования В начале трансформации выполняется до преобразования исходной строки в целевую.
- Между выполнением скриптов В начале трансформации и По окончании трансформации создается или обновляется целевая запись.
- Скрипт преобразования По окончании трансформации запускается, когда исходная строка преобразуется в целевую.
- Сценарий преобразования При завершении импорта выполняется, когда преобразуются все исходные строки.
Скрипты, указанные в записях Соотношения полей и Схемы трансформации, а также скрипты преобразований типа В начале трансформации и По окончании трансформации повторяются для каждой записи. Они будут выполняться до тех пор, пока не будет преобразованы все записи из набора.
- No labels