Redshift пропустить весь файл, который содержит ошибку - PullRequest
0 голосов
/ 15 ноября 2018

Есть ли способ / опция или обходной путь, чтобы пропустить весь файл, который содержит неверные записи, при загрузке данных из S3 в Redshift. Обратите внимание, что я говорю не о том, чтобы пропустить записи, которые являются недопустимыми в файле, а о том, что весь файл содержит неверную запись или запись.

1 Ответ

0 голосов
/ 15 ноября 2018

По умолчанию Redshift завершает работу со всем файлом, если вы не указали опцию Maxerror в команде Copy. Поведение по умолчанию.

 copy catdemo from 's3://awssampledbuswest2/tickit/category_pipe.txt' iam_role 'arn:aws:iam::<aws-account-id>:role/<role-name>' region 'us-west-2'; 

Приведенная выше команда завершится сбоем всего файла и не загрузит данные из данного файла. Прочитайте документацию здесь для получения дополнительной информации.

Если вы укажете опцию Maxerror, то она будет игнорировать только записи # из определенного файла.

 copy catdemo from 's3://awssampledbuswest2/tickit/category_pipe.txt' iam_role 'arn:aws:iam::<aws-account-id>:role/<role-name>' region 'us-west-2' MAXERROR 500;

В приведенном выше примере Redshift допустит до 500 плохих записей.

Я надеюсь, что это отвечает на ваш вопрос, но если это не поможет, обновите вопрос, и я перефокусирую ответ.

...