Перейти к основному содержимому

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

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

Подмена операций доступна пользователю с ролью 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.

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

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