Импорт из CSV
Есть два режима импорта данных из CSV:
- Импорт в существующую модель - позволяет импортировать экземпляры в существующие классы
- Импорт новой модели - позволяет создать онтологию (набор классов, скалярных свойств и отношений между классами) и импортировать экземпляры в созданные классы
Каждый CSV-файл, подлежащий импорту, может быть использован в двух качествах:
- Описание структуры класса и его экземпляров - в этом случае колонки файла используются для описания свойств и отношений класса, а строки - для создания экземпляров;
- Описание связей между экземплярами - строки файла будут использованы для создания отношений между экземплярами классов.
Требования к CSV-файлам
- В первой строке - названия колонок
- Разделителем данных является запятая
- Формат дат - "ГГГГ-ММ-ДД"
- Для логического типа (галочек) могут быть указаны следующие значения:
1,y,yes,да,true,t - разделитель целой и дробной части числа - точка
Импорт в существующую модель
❗Важно
Импорт данных в существующую модель предназначен исключительно для добавления новых записей. Обновление уже существующих записей через импорт не поддерживается. Кроме того, при импорте не выполняется проверка на дубликаты, поэтому система не предотвращает создание повторяющихся экземпляров.
Подготовка импорта
- Откройте раздел "Импорт из CSV" и кликните по кнопке "Импортировать" > "Импорт в существующую модель"
- На панели инструментов рабочего пространства выберите онтологию для импорта;
- Кликните по кнопке "Добавить файлы", чтобы файлы для импорта
Настройка импорта
Настройка импорта экземпляров
Для каждого CSV-файла, который используется для импорта новых экземпляров:
- Перейдите на вкладку с именем файла
- Не устанавливайте флажок "Только для связи", если вы импортируете основные данные. Этот флажок следует включать только для файлов, предназначенных исключительно для установления связей между экземплярами
- В поле "Класс" выберите класс, экземпляры которого будут создаваться при импорте
- В поле "Свойства для построения имени экземпляра" укажите одно или несколько свойств, значения которых будут объединены через символ нижнего подчёркивания (
_) для формирования имени нового экземпляра. Если оставить это поле пустым, имена будут сгенерированы автоматически - Установите соответствие между колонками CSV-файла и свойствами выбранного класса. Убедитесь, что все свойства, которые вы хотите импортировать, отмечены галочками.
- Для свойств, представляющих связи (отношения), дополнительно укажите в поле "Свойство-приёмник в [имя класса]", по какому свойству целевого класса будет выполняться поиск экземпляров для установления связи
Настройка создания связей
Для каждого CSV-файла, который используется для установления связей между экземплярами:
- Перейдите на вкладку с именем файла
- Установите флажок "Только для связи" — он указывает, что файл содержит данные только для установления связей между экземплярами, а не для создания новых записей
- В поле "Класс-источник" выберите класс, экземпляры которого будут выступать в роли субъектов связи (от кого идёт связь)
- В поле "Связь" укажите свойство (отношение), которое будет использоваться для соединения экземпляров класса-источника с экземплярами класса-приёмника
- В поле "Свойство-источник в [имя класса-источника]" выберите то свойство класса-источника, по значению которого система будет искать подходящие экземпляры
- В поле "Колонка значений для источника" укажите колонку из CSV-файла, содержащую значения для поиска экземпляров-источников
- В поле "Свойство-приемник в [имя класса-приёмника]" выберите свойство класса-приёмника, по которому будет выполняться поиск целевых экземпляров
- В поле "Колонка значений для приёмника" укажите колонку из CSV-файла, содержащую значения для поиска экземпляров-приёмников
Пример настройки импорта
Существующая модель для импорта данных из CSV-файлов:
Экземпляры класса "Статус":
АктивноАрхив
Экземпляры класса "Персона":
Иванов И.И.с ИНН123456789012
Файлы для импорта и выполненные настройки
1) Проекты.csv
csv
Название,Код,Бюджет,Статус
Проект 1,001,500,Активно
Проект 2,002,150,АрхивОбратите внимание!
Статусы проектов не импортируются отдельно, так как они уже определены в существующей модели и не требуют загрузки из внешнего файла.
Настройки в системе:
- Флаг Только для связи — не установлен
- Класс —
Проект - Свойства для построения имени экземпляра —
Название - в свойство
имеет бюджет, руб— колонкуБюджет - в свойство
имеет код— колонкуКод - в связь
имеет статус— колонкуСтатус, а в качестве свойства-приемника -Имя экземпляра
2) Персоны.csv
csv
Персона,ИНН
Петров П.П.,123456789034
Сидоров С.С.,123456789056Настройки в системе:
- Флаг Только для связи — не установлен
- Класс —
Персона - Свойства для построения имени экземпляра —
Персона - в свойство
имеет ИНН— колонкуИНН
3) Связи Проект-Персона.csv
csv
Код проекта,ИНН участника
001,123456789012
001,123456789034
002,123456789056
002,123456789034Обратите внимание!
В таблице импортируемых связей указан ИНН 123456789012 для персоны Иванов И.И.
Эта персона не входит в импортируемые данные, но уже существует в текущей модели, поэтому связь будет установлена с существующим экземпляром.
Настройки в системе:
- Флаг Только для связи — установлен
- Класс-источник —
Проект - Связь —
имеет участников - Свойство-источник в "Проект" —
имеет код - Колонка значений для источника —
Код проекта - Свойство-приемник в "Персона" —
имеет ИНН - Колонка значений для приемника —
ИНН участника
Импорт новой модели
Подготовка импорта
- Откройте раздел "Импорт из CSV" (далее - реестр импортов) и кликните по кнопке "Импортировать" > "Импорт новой модели"
- На панели инструментов рабочего пространства введите название будущей онтологии или оставьте предложенное по умолчанию;
- Кликните по иконке (Добавить csv файлы), чтобы добавить файл (или файлы) для импорта
Настройка импорта
Каждый добавленный CSV-файл отображается в виде отдельной закладки в панели настроек.
Настройка класса
- Укажите название класса; не устанавливайте галочку "Является таблицей-связью"
- Для каждого свойства укажите название (или оставьте без изменения) и тип данных
- Установите признак "Не импортировать", чтобы не создавать свойство класса и не устанавливать значения этого свойства для импортируемых экземпляров
- Установите признак "Имя экземпляра", чтобы значение свойства было использовано в качестве наименования создаваемых экземпляров; если признак "Имя экземпляра" будет установлен у нескольких свойств, то результирующим наименованием экземпляров будет являться результат конкатенации значений указанных свойств
- Для свойств типа "Ссылка" укажите связанный класс и свойство для связи
Рассмотрим описание свойства типа "Ссылка" на примере импорта CSV-файла следующего содержимого:
csv
Имя,Дата рождения,Отец
Дмитрий,1980-12-25,,
Лев,2007-05-24,Дмитрий
Екатерина,2009-02-17,ДмитрийЧтобы в результате импорта получить следующую онтологию:
необходимо:
- Для класса установить наименование "Человек"
- Для свойства "Имя" установить признаки "Имя экземпляра" и "Не импортировать"
- Для свойства "Отец" указать наименование "имеет отца", выбрать тип "Ссылка"; в качестве связанного класса указать "Человек", а в качестве свойства для связи - "Имя"
Настройка таблицы-связи
С помощью таблиц-связей могут быть настроены связи типа "многие ко многим" или "один ко многим" между экземплярами.
- Установите признак "Является таблицей-связью" и кликните по кнопке "Добавить описание связи"
- Укажите название связи
- Установите признак "Является коллекцией" при необходимости
- Поля "Свойство-источник в таблице-связи", "Класс-источник" и "Свойство в классе-источнике" используйте для настройки источника связи
- Поля "Свойство-приемник в таблице-связи", "Класс-приемник" и "Свойство в классе-приемнике" используйте для настройки приемника связи
Рассмотрим настройку таблицы-связи на следующем примере. Пусть даны три CSV-файла:
- Студенты.csv
csv
ФИО
Иванов И.И.
Петров П.П.- Курсы.csv
csv
Наименование курса
Математика
Физика- Слушатели курсов.csv
csv
Студент,Курс
Иванов И.И.,Математика
Иванов И.И.,Физика
Петров П.П.,МатематикаДля получения следующей онтологии:
необходимо:
Для файла "Слушатели курсов.csv" установить признак "Является таблицей-связью"
Указать название связи "слушает курсы" и установить признак "Является коллекцией"
В полях для источника связи указать:
- Свойство-источник в таблице-связи: Студент
- Класс-источник: Студент (Студенты.csv)
- Свойство в классе-источнике: ФИО
В полях для приемника связи указать:
- Свойство-приемник в таблице-связи: Курс
- Класс-приемник: Курс (Курсы.csv)
- Свойство в классе-приемнике: Наименование курса
Запуск импорта
Кликните по кнопке "Старт", после того как завершите настройку импорта. Вас перенаправит на страницу реестра импортов, где в колонке "Статус" будет отображен один из следующих статусов:
- В работе - импорт в процессе выполнения
- Завершен - импорт завершен успешно (созданы онтология, классы, свойства и экземпляры)
- Ошибка - импорт завершен с ошибкой, объекты не созданы
Импорт может занимать некоторое время (особенно, если импортируется большой объем данных) и выполняется в фоне после запуска. Страницу импорта и реестра импортов можно закрыть - это не окажет влияния на работу импорта.
Удаление всех импортированных данных (отмена импорта)
Кликните по иконке (Отменить импорт) в строке реестра импортов, чтобы удалить все созданные в результате импорта объекты:
- описатель импорта из реестра импорта
- созданные онтологии, классы, свойства, экземпляры
- загруженные csv-файлы
Удаление описателя импорта
Кликните по иконке (Удалить запись об импорте) в строке реестра импортов, чтобы удалить описатель импорта и загруженные файлы. Импортированные данные при этом удалены не будут.
Редактирование импорта
Кликните по иконке (Редактировать) в строке реестра импортов, чтобы отредактировать импорт, завершенный с ошибкой. После внесения изменений импорт может будет выполнить снова. Успешно завершенные импорты редактировать запрещено.