Записать данные в БД | Write Dataframe to DB V4

Нода позволяет выполнить запись датафрейма в выбранную базу данных.

Подробнее о Denvic Visual Transformer (DVT)

Позволяет записывать данные в базы данных: PostgreSQL, Clickhouse, MySQL, Oracle, Microsoft SQL

На вход нода использует:

  • Подключение. (обратите внимание, что создание таблицы/ее запись/перезапись будет производиться в той базе, которая указана в подключении).

  • Датафрейм.

Настройка ноды производится в 4 этапа:

  1. Таблица. Выбор базы данных и таблицы в ней, либо создание новой таблицы в выбранной базе данных.

  2. Настройка схемы. Здесь доступны два варианта настройки:

    • через SQL-скрипт;

    • с помощью конструктора таблицы. Здесь можно переименовать поля, сменить тип и пр.

  3. Режим записи. Выбор режима записи: append, truncate или upsert.

  4. Параметры записи. Настройки записи таблицы.

Комментарии к колонкам целевой таблицы

В предварительном релизе 1.22.1-rc1 появилась возможность создавать, изменять и очищать комментарии к колонкам целевой таблицы.

Добавление и изменение комментария

  1. Откройте настройки ноды и перейдите на этап «Настройка схемы».

  2. Выберите «Конструктор таблицы».

  3. В строке нужной колонки нажмите ячейку в столбце «Комментарий». Откроется редактор комментария к колонке БД.

  4. Введите описание. На скриншоте для колонки Manager задан текст «Менеджер, который сделал отгрузку».

  5. Нажмите «Сохранить» в редакторе комментария.

Редактирование комментария к колонке в конструкторе таблицы Write DataFrame to DB V4

Перенос и очистка комментария

В редакторе комментария доступны кнопки:

  • «Из DF» — перенести описание из метаданных входного датафрейма. Например, Read Table DB V3 передаёт комментарии колонок исходной таблицы в метаданные результата. Для переноса описание должно присутствовать в этих метаданных.

  • «Очистить» — очистить текст комментария.

  • «Отмена» — отменить редактирование.

  • «Сохранить» — сохранить заданный комментарий.

После переноса или очистки проверьте значение и нажмите «Сохранить» в редакторе комментария.

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

Режимы записи и ошибки

Режим

Поведение

Ошибка во время подготовки данных

append — добавление

Пачки добавляются непосредственно в рабочую таблицу

Уже записанные пачки остаются: результат может быть неполным

truncate — замена

Данные сначала собираются во временной таблице, затем готовый слепок заменяет содержимое рабочей

Рабочая таблица не изменяется

upsert — обновление

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

Рабочая таблица не изменяется

Временная таблица создаётся рядом с целевой, с суффиксом stg…, и удаляется после завершения. Подключению нужны права на создание и удаление таблиц в этой схеме.

Write DataFrame to DB V4 позволяет создать целевую таблицу на этапе «Таблица» и настроить её схему через SQL или конструктор. Создание новой таблицы и режим заполнения её данными — разные настройки.

Размер пачки

Пачка — порция строк для одной операции вставки; она не совпадает с партицией чтения. В руководстве базовый размер пачки — 1000 строк; для подбора производительности можно сравнить значения от 1000 до 10 000. Большие пачки могут ускорять запись, но увеличивают нагрузку на БД; ошибка в данных может отклонить всю пачку.

Повторный запуск

Повтор append после ошибки может создать дубли. Проверьте и при необходимости удалите только частично загруженный диапазон, либо используйте upsert с подходящим ключом. Переключение на truncate заменяет всё содержимое таблицы: выбирайте его, только если это соответствует задаче.

Колонки сопоставляются по именам; поведение для лишних и недостающих колонок задаётся в настройках ноды. Для upsert проверьте ключ, по которому определяется существующая строка.

Нода записи выполняет план чтения и преобразований, поэтому ошибка данных может проявиться здесь, хотя её причина находится в предыдущем шаге. Подробнее: как DVT выполняет проект.