Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Миграция
Запросы
Операции и обслуживание
Расширение кластера
Настройка производительности
Устранение неполадок
Справочник
Руководство по инструментам
Типы данных
Хранилище данных
Выполняющая система
Конфигурация
Справочник по SQL
Часто задаваемые вопросы
В этом документе описывается механизм отказоустойчивости MatrixGate.
Поскольку в основе MatrixGate используется механизм внешних таблиц, данные вставляются в целевую таблицу пакетами (микропакетами). Соответственно, каждый фрагмент данных при добавлении в базу данных обрабатывается совместно с другими данными пакета. Если формат хотя бы одного элемента данных окажется некорректным, весь пакет данных не будет сохранён.
Начиная с версии 4.3, в MatrixGate реализован механизм отказоустойчивости. Теперь единичная ошибка формата не влияет на ввод остальных данных — при этом возвращается информация об ошибочных данных и ведётся запись в журнал ошибок.
Примечание!
Отказоустойчивость действует только в отношении ошибок формата. Если нарушены правила ограничений (например, уникальный индекс), пакетная запись завершится ошибкой.
В отличие от предыдущего поведения, когда при возникновении ошибочных данных сразу возвращался HTTP-код 500, после включения механизма отказоустойчивости возвращается HTTP-код 200. В теле ответа содержится информация о строках с ошибками, например:
At line: 2
missing data for column "c3"
Разумеется, количество допускаемых ошибок не является неограниченным. Порог отказоустойчивости связан с параметром GUC: gp_initial_bad_row_limit. Если количество строк с ошибками превышает значение 5 * gp_initial_bad_row_limit, пакетная запись завершается неудачей.
Более подробную информацию об использовании см. в разделе MatrixGate.