Импорт данных
Механизм импорта позволяет собирать данные из различных источников данных, а затем сопоставлять эти данные с соответствующими таблицами.
Механизм импорта SimpleOne поддерживает:
- различные типы источников данных
- различные форматы файлов (если в качестве типа источника выбран Файл)
Вы можете выбрать источник данных, поместить данные из него во временную таблицу (набор для импорта), а затем сопоставить данные из источника с целевой таблицей при помощи соотношения таблиц и соотношения полей.
Требуемая роль: admin, import_admin.
На схеме ниже представлены основные этапы процесса импорта.
Ключевые понятия
Понятие | Описание |
---|---|
Источник импорта | Запись, указывающая, какие данные набора для импорта должны быть импортированы. |
Набор для импорта | Запись, содержащая ссылки на необработанные данные, загруженные в промежуточную таблицу. Запись также возвращает информацию о состоянии попытки этого импорта. |
Таблица импорта | Автоматически сгенерированная таблица, используемая в качестве временного хранилища для импортированных записей перед преобразованием. Структура таблицы формируется автоматически в зависимости от импортируемых данных. |
Преобразование | Процесс преобразования данных в соответствии с соотношением таблиц и скриптами преобразований, определяющими исходную таблицу (набор для импорта) и целевую таблицу. |
Соотношение таблиц | Запись, определяющая соответствие полей исходной и целевой таблиц в виде набора соотношений полей. |
Скрипт преобразований | Скрипт, который позволяет настраивать операции импорта с использованием нативного JavaScript, расширенного серверным API SimpleOne. |
Соотношение полей | Запись, определяющая связь между полем в исходной таблице и полем в целевой таблице. |
Объединение данных | Эта опция позволяет обновлять существующее записи таблицы в процессе преобразования. Подробнее читайте далее в разделе: Объединение данных (coalesce). |
Источники импорта
Создание источника импорта необходимо для загрузки необработанных данных в систему для дальнейшей обработки и преобразования. Вы можете настроить источник импорта с различными типами источников данных и форматами файлов.
- Перейдите в Импорт → Источники импорта.
- Нажмите Создать и заполните поля.
- Если вы выбрали тип Файл, нажмите на иконку скрепки и прикрепите нужный файл. Вы можете прикрепить файлы в форматах JSON, XML или Excel.
- Нажмите Сохранить или Сохранить и выйти, чтобы применить изменения.
Поля формы Источники для импорта
Поле | Обязательно | Описание |
---|---|---|
Наименование | Да | Укажите название источника импорта. |
Наименование таблицы импорта | Да | Укажите название временной таблицы импорта. |
Тип | Нет | Выберите тип источника импорта. Доступные опции для выбора:
|
Способ получения файла | Нет | Выберите метод добавления файла в источник импорта. Доступные варианты:
Поле появляется, когда выбран тип Файл. |
Формат | Да | Выберите формат файла и прикрепите его к форме. Доступные варианты:
Поле появляется, если выбран тип Файл или Текст. |
Текст импорта | Нет | Введите текст в выбранном Формате, который вам нужно импортировать. Поле появляется, когда выбран тип Текст. |
Настройка LDAP | Нет | Нажмите на иконку лупы , чтобы выбрать протокол, который вам необходим. Поле появляется, когда выбран тип LDAP. Читайте статью Источник данных LDAP, чтобы узнать больше. |
После сохранения, следующие действия пользовательского интерфейса появляются на форме источника импорта. Они отвечают за дальнейшую обработку импорта.
Действие | Описание |
---|---|
Пробная загрузка (20 записей) | Используйте это действие для создания пробного набора для импорта из 20 записей, предназначенных для анализа структуры данных импорта. Не используйте тестовый набор для дальнейшего преобразования. |
Загрузить все | Используйте это действие для создания новой записи набора для импорта, содержащего все данные из источника импорта. Используйте этот набор для дальнейшего преобразования. |
После загрузки данных в источник импорта, сохранения записи и вызова одного из действий загрузки данных, в связанном списке Наборы для импорта появляется новая запись.
Использование формата JSON
В качестве источника импорта можно использовать файлы, содержащие данные в формате JSON. В этом случае убедитесь, что файлы соответствуют следующим критериям:
- Файлы JSON должны быть актуальными. Используйте документ RFC 8259 в качестве руководства.
- Тип данных для использования в структуре JSON один из следующих: объект JSON, массив объектов, оБбъект с массивом объектов. Использование dot-walking не поддерживается.
Объект JSON
{
"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. |
Статус | Нет | Состояние загрузки набора для импорта. Поле заполняется автоматически и доступно только для чтения. Возможные значения:
|
Краткое описание | Нет | Поле описывает структуру созданной таблицы и заполняется данными автоматически. Пример значения поля:
|
Записи Набора для импорта находятся в отношениях родитель-потомок с записями таблицы Элементы наборов.
Схема трансформации
Схема трансформации представляет собой набор соотношений полей. Укажите этом наборе соотношения полей указывается корреляция между полями временной таблицы импорта и полями целевой таблицы.
Для каждой операции импорта требуется по крайней мере одна запись схемы трансформации, которая показывает связь временной таблицы импорта и целевой таблицы.
После создания первого набора для импорта, создайте запись схемы трансформации. Для этого выполните следующие шаги:
- Нажмите на Соотношения таблиц на форме записи источника импорта, который вы настраиваете.
- В появившемся всплывающем сообщении пройдите по ссылке Создать схему трансформации.
- Заполните поля в появившейся форме.
- Нажмите Сохранить или Сохранить и выйти, чтобы применить изменения.
Схему трансформации также можно создать с нуля. Для этого выполните следующие шаги:
- Перейдите в Импорт → Схемы трансформаций, чтобы открыть список соотношений таблиц.
- Нажмите Создать и заполните поля.
- Нажмите Сохранить или Сохранить и выйти, чтобы применить изменения.
Поля формы Схемы трансформаций
Поле | Обязательно | Описание |
---|---|---|
Наименование | Да | Укажите отображаемое название схемы трансформации. |
Активна | Нет | Установите флажок, чтобы сделать схему трансформации доступной для использования. |
Исходная таблица | Да | Выберите таблицу, содержащую данные набора для импорта. |
Целевая таблица | Да | Выберите таблицу, в которую необходимо поместить импортированные данные. |
Форсированный импорт | Нет | Установите флажок, чтобы игнорировать бизнес-правила, правила уведомлений и другие механизмы на стороне сервера, которые могут запускаться действиями создания или обновления записей. В частности, рабочие процессы, связанные с этой записью, не запустятся, история изменений поля не будет записана и не будет отображаться в Ленте активности. Вы можете найти порядок выполнения механизмов и бизнес-правил в статье Порядок выполнения. |
Игнорировать обязательные поля | Нет | Установите флажок, чтобы игнорировать обязательные поля в целевой таблице. |
Использовать скрипт | Нет | Установите флажок, чтобы отобразить поле Скрипт, в котором можно указать скрипт преобразования. Если вы снимете флажок после создания скрипта, скрипт не будет применяться в преобразовании. |
Скрипт | Нет | Введите скрипт соотношения таблиц, который необходимо использовать для преобразования значений полей из исходной таблицы в целевую. Узнайте больше о настройках импорта в разделе API для разработчиков. |
Рекомендации к скрипту
Используйте функцию runTransformRow() со следующими параметрами:
- source – запись Элемента набора, которая будет трансформирована. Вызовите определенное поле из записи, как обычный объект SimpleRecord. Например, source.imp_name.
- map – запись Схемы трансформации, которая используется для процесса преобразования.
- log – объект, который содержит методы info, warn, и error. Методы предназначены для регистрации процесса трансформации.
- target – запись в целевой таблице, которая будет создана или обновлена при трансформации исходной записи. Вызовите определенное поле из записи, как обычный объект SimpleRecord. Например, target.name = source.imp_name. При указании объекта параметра target учитывайте тип поля в целевой таблице.
- isUpdate – Boolean параметр, который проверяет, обновилась ли целевая запись.
Этот скрипт можно использовать для определения связей полей перед трансформацией. Вы также можете настроить соотношения, создав связанные записи на вкладке Соотношения полей схемы трансформации.
Если вы настраиваете соотношения полей с помощью скрипта, создайте еще одну запись соотношения полей, чтобы определить настройку объединения данных (флажок Объединить данные на форме соотношения полей) для этого сеанса трансформации.
Читайте статью API для разработчиков, чтобы узнать больше о расширенном импорте.