Redshift Ограничение команды COPY не найдено

Я пытаюсь загрузить некоторые текстовые файлы в Redshift. Они ограничены табуляцией, за исключением после окончательного значения строки. Это приводит к тому, что разделитель не обнаружил ошибку. Я вижу только способ установить разделитель полей в инструкции COPY, а не способ установить разделитель строк. Любые идеи, которые не связаны с обработкой всех моих файлов, чтобы добавить вкладку в конец каждой строки?

Спасибо

Ответы

Ответ 1

Я не думаю, что проблема связана с отсутствием <tab> в конце строк. Вы уверены, что ВСЕ строки имеют правильное количество полей?

Запустите запрос:

select le.starttime, d.query, d.line_number, d.colname, d.value,
le.raw_line, le.err_reason    
from stl_loaderror_detail d, stl_load_errors le
where d.query = le.query
order by le.starttime desc
limit 100

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

Это поможет найти, где проблема.

Ответ 2

Вы можете получить ошибку, не найденную разделителем, если ваша строка имеет меньше столбцов, чем ожидалось. Некоторые генераторы CSV могут просто выводить одиночную кавычку в конце, если последние столбцы имеют нулевое значение.

Чтобы решить эту проблему, вы можете использовать FILLRECORD для вариантов копирования Redshift.