Отслеживать записи ошибок при многострочном обновлении в Greenplum (Postgres 8.4)? - PullRequest
1 голос
/ 18 октября 2019

Мы пытаемся вставить пакет записей (100 КБ) в зеленую сливу. В случае, если у конкретной записи есть какая-то проблема, есть ли способ отследить конкретную запись, которая вызывает проблему?

В настоящее время происходит сбой всего пакета, и мы пытаемся отфильтровать записи ошибок.

1 Ответ

0 голосов
/ 21 октября 2019

Если вы используете команду COPY для загрузки или gpfdist и внешние таблицы для вставки, вы можете установить предел отклонения сегмента и журнал ошибок, который позволит команде вставлять все хорошие строки с любыми отклоненными строками, помещенными вжурнал ошибок. По умолчанию выполняется откат всего на одну ошибку. Вы можете проверить документацию Greenplum или, в psql, использовать \ h COPY или \ h CREATE EXTERNAL TABLE. Простой пример с COPY:

COPY your_table из '/ your_path / your_file' с разделителем в виде '|'ОШИБКИ ВРЕМЕНИ ОШИБКИ ОТКЛЮЧЕНИЯ СЕГМЕНТА 1000 строк;

Это означает, что перед откатом всего будет записано до 1000 плохих строк. Установите по мере необходимости для ваших данных. Вы можете увидеть, какие плохие строки в журнале:

select gp_read_error_log ('your_table');

Один из столбцов в журнале показывает плохую строку с точным указанием места и ошибкиis.

Джим Макканн Pivotal

...