Механизм отказоустойчивости MatrixGate

В этом документе описывается механизм отказоустойчивости в MatrixGate.

Внутренне MatrixGate использует внешние таблицы для вставки данных в целевую таблицу микропакетами. Следовательно, данные загружаются пакетами, и если ранее любая строка содержала ошибку форматирования, весь пакет отклонялся.

Начиная с версии 4.3, MatrixGate предоставляет механизм отказоустойчивости. Теперь одна некорректная строка не мешает загрузке остальных данных. MatrixGate возвращает информацию об ошибочной строке и записывает ошибку в лог.

Примечание!
Отказоустойчивость применяется только к ошибкам форматирования данных. Если происходит нарушение ограничений (например, дублирование ключа в уникальном индексе), весь пакет всё равно будет отклонён.

1 Информация об ошибках

В отличие от предыдущих версий, где любые неверные данные приводили к ответу HTTP 500, теперь MatrixGate возвращает HTTP 200 даже при возникновении ошибок. Тело ответа содержит сведения о проблемных строках. Например:

At line: 2
missing data for column "c3"

2 Управление порогом ошибок

Отказоустойчивость не является неограниченной. Порог допустимых ошибок управляется параметром GUC: gp_reject_limit. Если количество строк с ошибками превышает 5 * gp_reject_limit, вставка пакета завершается неудачей.

Более подробную информацию см. в разделе MatrixGate.