Подмена операций
Предусловия
Подмена операций доступна пользователю с ролью APPADMIN.
Последовательность выполнения
Для настройки подмены операций:
-
Нажмите модуль Capture или Applier на графе репликации.

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

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

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

-
Выберите замену операций в поле Подмена операций:
- update -> insert — вставить вместо обновить;
- delete -> skip — пропустить вместо удалить;
- update -> skip — пропустить вместо обновить;
- insert -> skip — пропустить вместо вставить.
подсказкаМожно выбрать до трех замен.

-
Нажмите OK.
Результат
Чтобы убедиться, что подмена операций настроена:
-
Нажмите значок Визуальный редактор, чтобы перейти в JSON-редактор.
-
Проверьте блок 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.
Рекомендации по тестированию конфигурации
- Указывайте соединения источника и приемника при тестировании маппинга и ремаппинга.