Amazon web services 当时间戳不正确时,来自S3的红移复制失败

Amazon web services 当时间戳不正确时,来自S3的红移复制失败,amazon-web-services,amazon-s3,amazon-redshift,Amazon Web Services,Amazon S3,Amazon Redshift,通过COPY命令将数据从S3加载到红移时,如果文件中的任何记录包含错误的时间戳,则复制失败。我已经将maxerror作为1000传递给COPY命令,但它仍然失败 但是,在随后的重试中,相同的命令会起作用。尽管它无法加载损坏的记录 这就是我得到的错误: ERROR: Assert DETAIL: ----------------------------------------------- error: Assert code: 1000 context: s

通过COPY命令将数据从S3加载到红移时,如果文件中的任何记录包含错误的时间戳,则复制失败。我已经将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
有没有人面临同样的问题?您是如何解决的?

附加

ACCEPTANYDATE dateformat 'auto'
在你的副本声明中

(AWS文件)


这将至少尝试强制执行copy语句不会失败。尽管如此,一些不受支持的格式可能是空的(正如您所提到的,我对损坏的记录(包含错误时间戳的记录)不加载到redshift很满意。但是应该加载其他记录)

您可以做的一个技巧是将时间戳字段作为字符串加载,然后使用UPDATE命令根据字符串填充时间戳列。@JohnRotenstein我对损坏的记录(包含错误时间戳的记录)没有加载到redshift很好。但应该加载其他记录,我认为将copy命令中的maxerror参数设置为某个值应该可以处理这个问题。但我看不到行为一致,有时数据加载,有时失败。我使用的是timeformat“auto”。根据该文件,aws建议将ACCEPTANYDATE与dateformat一起使用,而不是与timeformat一起使用。谢谢,我会试试的。谢谢:)另外,请投票并让其他人知道它是否有效。当然,我还有一个疑问。为什么maxerror不处理此问题?您是否面临与maxerror完全相同的问题?