错误:加载到表中 - COPY 命令中的数据无效

Posted

技术标签:

【中文标题】错误:加载到表中 - COPY 命令中的数据无效【英文标题】:ERROR: Load into table - Invalid data in COPY command 【发布时间】:2019-04-16 10:09:01 【问题描述】:

我正在使用 COPY 命令将数据从 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 文件中删除 NULL 值时,COPY 命令工作正常。 redshift COPY命令中如何处理NULL值?enter code here

【问题讨论】:

【参考方案1】:

看起来您的NULLs 格式为"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 类型。

【讨论】:

以上是关于错误:加载到表中 - COPY 命令中的数据无效的主要内容,如果未能解决你的问题,请参考以下文章

将 csv 数据加载到表中使用 Hive SQL java 错误 InvocationTargetException

函数作为反应孩子无效? - 需要帮助将提取的数据提取到表中

使用云功能将数据加载到大查询表中,它是附加到表中的,我需要它来替换

oracle 将文本文件中的数据加载到表中

无法通过 Java 执行 Snowflake COPY 命令

Redshift COPY Statement 日期加载错误