ОШИБКА: загрузка в таблицу — недопустимые данные в команде КОПИРОВАНИЯ

#amazon-web-services #amazon-redshift

#amazon-web-services #amazon-redshift

Вопрос:

Я импортирую данные из CSV-файла в Amazon Redshift с помощью команды КОПИРОВАНИЯ и получаю ошибку :

 COPY table1 FROM 's3://cucket1/table1.csv' 
credentials 'aws_access_key_id=aaaa;aws_secret_access_key=aaaa' 
IGNOREHEADER 1  
csv 
NULL AS 'N' 
timeformat 'auto';
 

ОШИБКА: не удалось загрузить в таблицу ‘table1’. Проверьте системную таблицу ‘stl_load_errors’ для получения подробной информации.

мой файл csv выглядит так :

 "id","name","created_at","updated_at"
"1","2","NULL","NULL"
"2","1","NULL","NULL"
"6","1","NULL","NULL"
"87","1","NULL","NULL"
 

Когда я удаляю нулевые значения из файла csv, команда КОПИРОВАНИЯ работает нормально.
Как обрабатывать нулевые значения в команде копирования redshift? enter code here

Ответ №1:

Похоже, у вас NULL есть формат "NULL" . Это должно сработать:

 COPY table1 FROM 's3://cucket1/table1.csv' 
credentials 'aws_access_key_id=aaaa;aws_secret_access_key=aaaa' 
IGNOREHEADER 1  
csv 
NULL AS 'NULL' 
timeformat 'auto';
 

Кроме того, ознакомившись с stl_load_errors ними, вы получите лучшее представление о том, что не так.

Вы пробовали select * from stl_load_errors order by starttime desc limit 100; ? Этот запрос должен предоставить вам все сведения о данных, которые не удалось загрузить. Я подозреваю, что в вашем случае это было так, что "NULL" данные не были проанализированы в TIMESTAMP type.