Подмена операций#

Предусловия#

Подмена операций доступна пользователю с ролью APPADMIN.

Последовательность выполнения#

Для настройки подмены операций:

  1. Нажмите модуль Capture или Applier на графе репликации.

    Графы репликации, Редактирование маппинга

  2. Нажмите Редактировать в поле Маппинг в открывшемся окне Модуль.

    Графы репликации, Редактирование маппинга

  3. Нажмите Визуальный редактор в открывшемся окне Редактирование маппинга.

    Графы репликации, Редактирование маппинга

  4. Дважды нажмите на название таблицы для репликации или выберите Добавить и введите названия таблиц источника и потребителя в открывшемся окне Маппинг таблиц.

    Графы репликации, Редактирование маппинга

  5. Выберите замену операций в поле Подмена операций:

    • update -> insert — вставить вместо обновить;

    • delete -> skip — пропустить вместо удалить;

    • update -> skip — пропустить вместо обновить;

    • insert -> skip — пропустить вместо вставить.

    Можно выбрать до трех замен.

    Графы репликации, Подмена операций

  6. Нажмите OK.

Результат#

Чтобы убедиться, что подмена операций настроена:

  1. Нажмите значок Визуальный редактор, чтобы перейти в JSON-редактор.

  2. Проверьте блок operation_map таблицы, для которой задана подмена операций. В редакторе JSON отображается блок вида:

      "operation_map": [
      {
      "source_operation": "update",
      "target_operation": "insert"
      }
    

Рекомендации по конфигурированию#

В GraDeLy можно конфигурировать маппинг и трансформацию полей как для модуля capture, так и для модуля applier. Маппинг проверяется с учетом метаданных действующих подключений БД источника или приемника.

Общие рекомендации#

  • Для ремаппинга и настройки трансформации конфигурируйте маппинг для модуля-applier: так конфигурация будет проверена на основе метаданных БД приемника при запуске графа для маппинга и после запуска графа для трансформации.

  • Используйте визуальный редактор маппинга: он позволит визуально проверить конфигурацию по типам данным, а также ограничениям (constraints) полей.

Рекомендации по трансформации полей#

  • Будьте осторожны при настройке трансформации ключевых полей источника: эти поля используются для идентификации записи на приемнике, и при подмене полей идентифицировать эти записи на приемнике не получится.

  • Проверяйте результаты на переполнение при выполнении трансформаций с арифметическими действиями.

  • Остерегайтесь ошибки деления на ноль.

  • Проверяйте, что итоговое значение строки помещается в тип данных на приемнике либо используйте явное ограничение длины, например: substr("string1+string2",1+z,%target_type_length%+z), где z — смещение позиции относительно начала строки, если выполняете строковые трансформации с конкатенацией строк.

  • Помните, что при настройке формул для NULLABLE полей может встретиться значение NULL, не являющееся ни числом, ни строкой.

Рекомендации по ремаппингу полей#

  • Проверьте, что типы данных верны и их размерность достаточна.

  • Особое внимание уделяйте ограничениям (constraints) на полях источника и приемника.

Тип данных, максимальное количество символов для этого типа данных, максимальное количество символов без учета знака – для числовых данных отображается в скобках рядом с названием колонки в окне Маппинг колонок в визуальном редакторе маппинга.

Редактирование маппинга, маппинг колонок

Также отображается:

NOT NULL, если колонка не может быть null;

UNIQUE, если значение колонки должно быть уникальным;

PK, если колонка является первичным ключом;

FK, если колонка является внешним ключом;

DEFAULT, если есть значение по умолчанию;

CHECK, если есть условие, которое проверяется перед вставкой. Например, условие для числовой колонки, что значение должно быть >5. Условие отображается при наведении на колонку:

Редактирование маппинга, маппинг колонок

Рекомендации по подмене операций#

  • Перечень разрешенных операций подмены:

    • update -> insert

    • delete -> insert

    • delete -> update

    • delete -> skip

  • Соблюдайте уникальность операций подмены: для каждого вида операции используйте не больше одной подмены.

  • Убедитесь в отсутствии ограничений типа Primary key и UNIQUE при использовании подмены операций типа update -> insert.

Рекомендации по тестированию конфигурации#

  • Указывайте соединения источника и приемника при тестировании маппинга и ремаппинга.