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

