---
pkg: "@nocobase/plugin-action-import-pro"
---
# Импорт Pro

## Введение

Плагин Импорт Pro расширяет стандартные функции импорта, предлагая дополнительные возможности.

## Установка

Этот плагин зависит от плагина Управление асинхронными задачами. Перед использованием Импорт Pro необходимо сначала включить плагин Управление асинхронными задачами.

## Расширенные возможности

![20251029172052](https://static-docs.nocobase.com/20251029172052.png)

- Поддерживает асинхронные операции импорта, выполняемые в отдельном потоке, что позволяет импортировать большие объемы данных.

![20251029172129](https://static-docs.nocobase.com/20251029172129.png)

- Поддерживает расширенные параметры импорта.

## Руководство пользователя

### Асинхронный импорт

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

![index-2024-12-30-09-21-05](https://static-docs.nocobase.com/index-2024-12-30-09-21-05.png)

После завершения импорта вы сможете просмотреть результаты в списке задач импорта.

#### О производительности

Для оценки производительности при импорте больших объемов данных мы провели сравнительные тесты в различных сценариях, с разными типами полей и конфигурациями запуска (результаты могут отличаться в зависимости от конфигурации сервера и базы данных и приведены только для справки):

| Объем данных | Типы полей | Конфигурация импорта | Время обработки |
|------|---------|---------|---------|
| 1 млн записей | Строка, число, дата, email, длинный текст | • Запуск рабочего процесса: Нет<br>• Идентификатор дубликатов: Нет | Около 1 минуты |
| 500 тыс. записей | Строка, число, дата, email, длинный текст, многие-ко-многим | • Запуск рабочего процесса: Нет<br>• Идентификатор дубликатов: Нет | Около 16 минут|
| 500 тыс. записей | Строка, число, дата, email, длинный текст, многие-ко-многим, многие-к-одному | • Запуск рабочего процесса: Нет<br>• Идентификатор дубликатов: Нет | Около 22 минут |
| 500 тыс. записей | Строка, число, дата, email, длинный текст, многие-ко-многим, многие-к-одному | • Запуск рабочего процесса: Асинхронное уведомление<br>• Идентификатор дубликатов: Нет | Около 22 минут |
| 500 тыс. записей | Строка, число, дата, email, длинный текст, многие-ко-многим, многие-к-одному | • Запуск рабочего процесса: Асинхронное уведомление<br>• Идентификатор дубликатов: Обновлять дубликаты, 50 тыс. дублирующихся записей | Около 3 часов |

На основе приведенных результатов тестирования производительности и текущих проектных решений, ниже представлены пояснения и рекомендации относительно влияющих факторов:

1.  **Механизм обработки дублирующихся записей**: При выборе опций **Обновлять дублирующиеся записи** или **Только обновлять дублирующиеся записи** система выполняет операции запроса и обновления построчно, что значительно снижает эффективность импорта. Если ваш файл Excel содержит ненужные дублирующиеся данные, это еще сильнее повлияет на скорость импорта. Рекомендуется очистить файл Excel от ненужных дубликатов (например, с помощью специализированных инструментов для дедупликации) перед импортом в систему, чтобы избежать лишних затрат времени.

2.  **Эффективность обработки полей связей**: Система обрабатывает поля связей, выполняя запросы к связанным данным построчно, что может стать узким местом производительности при работе с большими объемами данных. Для простых структур связей (например, связь "один-ко-многим" между двумя коллекциями) рекомендуется использовать поэтапную стратегию импорта: сначала импортировать основные данные главной коллекции, а затем, после завершения, установить связи между коллекциями. Если бизнес-требования обязывают импортировать связанные данные одновременно, пожалуйста, обратитесь к результатам тестирования производительности в таблице выше для разумного планирования времени импорта.

3.  **Механизм запуска рабочих процессов**: Не рекомендуется включать запуск рабочих процессов при импорте больших объемов данных, в основном по следующим двум причинам:
    -   Даже когда статус задачи импорта показывает 100%, она не завершается немедленно. Системе требуется дополнительное время для создания планов выполнения рабочих процессов. На этом этапе система генерирует соответствующий план выполнения рабочего процесса для каждой импортированной записи, что занимает поток импорта, но не влияет на использование уже импортированных данных.
    -   После полного завершения задачи импорта одновременное выполнение большого количества рабочих процессов может привести к перегрузке системных ресурсов, что повлияет на общую скорость отклика системы и удобство использования.

Указанные выше три фактора будут учтены для дальнейшей оптимизации в будущем.

### Конфигурация импорта

#### Параметры импорта — Запуск рабочего процесса

![20251029172235](https://static-docs.nocobase.com/20251029172235.png)

При импорте вы можете выбрать, запускать ли рабочие процессы. Если эта опция выбрана и коллекция связана с рабочим процессом (событием коллекции), импорт будет построчно запускать выполнение рабочего процесса.

#### Параметры импорта — Идентификация дублирующихся записей

![20251029172421](https://static-docs.nocobase.com/20251029172421.png)

Установите этот флажок и выберите соответствующий режим, чтобы система идентифицировала и обрабатывала дублирующиеся записи во время импорта.

Параметры в конфигурации импорта будут применены как значения по умолчанию. Администраторы могут контролировать, разрешено ли загрузчику изменять эти параметры (за исключением опции запуска рабочего процесса).

**Настройки разрешений для загрузчика**

![20251029172516](https://static-docs.nocobase.com/20251029172516.png)

- Разрешить загрузчику изменять параметры импорта

![20251029172617](https://static-docs.nocobase.com/20251029172617.png)

- Запретить загрузчику изменять параметры импорта

![20251029172655](https://static-docs.nocobase.com/20251029172655.png)

##### Описание режимов

- Пропускать дублирующиеся записи: Система ищет существующие записи на основе содержимого «Поля идентификатора». Если запись уже существует, строка пропускается; если нет, она импортируется как новая запись.
- Обновлять дублирующиеся записи: Система ищет существующие записи на основе содержимого «Поля идентификатора». Если запись уже существует, она обновляется; если нет, она импортируется как новая запись.
- Только обновлять дублирующиеся записи: Система ищет существующие записи на основе содержимого «Поля идентификатора». Если запись уже существует, она обновляется; если нет, она пропускается.

##### Поле идентификатора

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

- [Правило связывания](/interface-builder/actions/action-settings/linkage-rule): Динамическое отображение/скрытие кнопок;
- [Редактировать кнопку](/interface-builder/actions/action-settings/edit-button): Редактирование заголовка, типа и значка кнопки;