Причины ошибок при загрузке и обновлении данных

Раздел описывает причины основных ошибок, возникающих во время вставки данных — загрузки и обновления данных.

При загрузке и обновлении данных в standalone-таблицах также могут возникать ошибки, связанные с ограничениями конкретной СУБД. При разборе таких ошибок следуйте рекомендациям, доступным в документации соответствующей СУБД.

Если ошибка возникает во время вставки данных в логические таблицы, система отменяет операции записи, которые не удалось успешно завершить, и возвращает данные в состояние, предшествовавшее этим операциям. При ошибках вставки данных в standalone-таблицах изменения не отменяются автоматически, и их нужно отменять вручную в соответствующем датасорсе.

Способы управления операциями записи см. в разделе Управление операциями записи.

Основные причины ошибок при загрузке данных

  • Проблемы с данными:
    • Некорректная схема или записи Avro в сообщениях топика Kafka.
    • Несоответствие полей (их порядка, количества или типа) между сообщениями Kafka, внешней таблицей загрузки или целевой таблицей. Исключение — поле sys_op при загрузке в логические таблицы, которое указывается явно в сообщениях Kafka, но скрыто как служебное поле в таблицах.
    • Загрузка различающихся наборов записей в датасорсы (например, из-за разницы в офсетах Kafka).
  • Проблемы с конфигурацией:
    • Некорректный путь к топику Kafka в свойствах внешней таблицы загрузки.
    • Недостаточные интервалы ожидания при работе с брокером сообщений Kafka (EDML_FIRST_OFFSET_TIMEOUT_MS, EDML_CHANGE_OFFSET_TIMEOUT_MS, ADB_MPPW_FDW_TIMEOUT_MS).
    • Некорректные настройки сервиса мониторинга статусов Kafka в конфигурации.
  • Проблемы с инфраструктурой:
    • Расхождения времени между серверами инсталляции.
    • Некорректная установка коннектора для загрузки данных.

Основные причины ошибок при обновлении данных

  • Несоответствие порядка, количества или типов столбцов между таблицей-приемником данных и запросом на обновление данных.
  • Отсутствие в запросе INSERT VALUES, INSERT SELECT или UPSERT VALUES значений обязательных столбцов таблицы-приемника данных.
  • Указание в запросе INSERT SELECT датасорсов тех типов, для которых недоступна вставка данных.