当时间戳不正确时,来自S3的Redshift COPY失败

时间:2017-09-26 05:19:51

标签: amazon-web-services amazon-s3 amazon-redshift

通过COPY命令从S3将数据加载到Redshift时,如果文件中的任何记录包含不正确的时间戳,则复制失败。我已将maxerror作为1000传递给COPY命令,但它仍然失败。

但是,在后续重试时,相同的命令有效。虽然它无法加载损坏的记录。

这是我得到的错误:

ERROR:  Assert
DETAIL:  
  -----------------------------------------------
  error:  Assert
  code:      1000
  context:   status == 0 - timestamp: '-6585881136298398395'
  query:     30903
  location:  cg_util.cpp:1063
  process:   query1_69 [pid=25674]
  -----------------------------------------------

AWS cli version : aws-cli/1.10.56 Python/2.7.12 Linux/4.4.19-29.55.amzn1.x86_64 botocore/1.4.46

有没有人遇到同样的问题?你是怎么解决的?

1 个答案:

答案 0 :(得分:0)

追加

ACCEPTANYDATE dateformat 'auto'

在你的复制声明中。

ACCEPTANYDATE dateformat (AWS文档)

这至少会强制执行您的复制声明不会失败。仍然,一些不受支持的格式可能为null(正如您所提到的,我对损坏的记录(包含错误时间戳的记录)没有加载到redshift时很好。但是应该加载其他记录