Экспорт в базу данных

Узел осуществляет экспорт исходного набора в базу данных.

Важно: Для работы узла требуется предварительно создать подключение к базе данных и связать его с входным портом Подключение. Пример подключения и работы с БД.

Вход

  •  Подключение — порт для установки подключения к базе данных;
  •  Источник данных — таблица данных, подлежащая экспорту в базу;
  •  Управляющие переменные (необязательный порт) — переменными можно задать значения параметров мастера настройки.

Выход

  •  Статус выполнения — переменные выходного порта отображают текст ошибки (если ошибка возникла) и код завершения выполнения узла:
    • 0 — выполнение завершилось без ошибок;
    • 1 — ошибка при выполнении.

Мастер настройки

  • База данных — отображает строку подключения к базе данных. Кнопка Активировать делает активным это подключение.
  • Имя таблицы — задает имя таблицы, в которую планируется осуществить экспорт. Эту таблицу можно выбрать из списка существующих в базе данных. Кнопка Создать таблицу открывает окно создания новой таблицы в БД.
  • Тип экспорта — задается выбором одного из вариантов.

    • Дополнить таблицу данными — строки из таблицы-источника будут добавлены к выбранной таблице базы данных. Для всех БД выполняется запрос вида INSERT INTO table.
    • Очистить таблицу и заполнить данными — таблица базы данных будет полностью очищена и затем наполнена строками экспортируемой таблицы. Выполняются запросы вида DELETE FROM table + INSERT INTO table для всех БД, кроме ClickHouse. В ClickHouse выполняется TRUNCATE TABLE.
    • Выполнить TRUNCATE и заполнить данными — аналогичен предыдущему типу экспорта, за исключением того, что очистка таблицы производится при помощи TRUNCATE, вместо DELETE FROM. Данный тип экспорта не доступен для выбора в БД SQLite, Firebird и Access, так как в них нет поддержки операции TRUNCATE. Для всех БД, подключаемых через ODBC, использование TRUNCATE при экспорте разрешено всегда в силу невозможности определения поддержки данной операции конкретной БД. Если база данных все же не поддерживает операцию TRUNCATE, то при попытке выполнения возникнет ошибка.
    • Удалить записи по ключевым полям — дает возможность на следующем этапе Настройка соответствия между столбцами выбрать ключевое поле, по которому будет происходить удаление записей из таблицы базы данных. Экспорт как таковой при этом не производится. Выполняется запрос вида DELETE FROM table WHERE filter_expr для всех БД, кроме ClickHouse. В ClickHouse используется ALTER TABLE table DELETE WHERE filter_expr.
    • Удалить записи по ключевым полям и дополнить таблицу данными — алгоритм такой же, как и для предыдущего параметра, но после его выполнения строки из таблицы-источника будут добавлены к таблице базы данных. В этом случае объединяются запросы из вариантов "Удалить записи по ключевым полям" и "Дополнить таблицу данными".
    • Обновить существующие записи в таблице — позволяет выбрать ключевое поле, по которому будет происходить обновление записей. Выполняется запрос вида UPDATE table WHERE filter_expr. В ClickHouse не поддерживается по соображениям производительности.

    Кроме того, экспорт выполняется в транзакции с уровнем изоляции READ COMMITED, если БД поддерживает транзакции.

Примечание: для MS Excel поддерживаются следующие типы экспорта: Дополнить таблицу данными и Обновить существующие записи в таблице.

  • Число строк в пачке — устанавливает число строк данных, передаваемых в БД в рамках одной операции (значение по умолчанию — 1000). Минимальное значение — 1, максимальное значение — 1000000. Увеличение числа строк может сократить время выполнения экспорта. Данная настройка доступна только для ClickHouse, Oracle, ODBC.

Примечание: в зависимости от ODBC-драйвера, поддержка пакетных операций может отличаться или отсутствовать. В случае отсутствия поддержки пакетных операций со стороны ODBC-драйвера, настройка параметра Число строк в пачке не повлияет на время экспорта в БД.

  • Периодичность фиксации транзакции (строк) — разделение процесса экспорта на несколько транзакций. Транзакции фиксируются через указанное количество строк. При нулевом значении параметра разделение на транзакции не производится.
  • Игнорировать ошибки — при установленном флаге узел активируется успешно, даже если в процессе активации возникли ошибки. Информация об ошибках записывается в выходной порт Статус выполнения.


Статьи в разделе: