我有一堆文件每天都按计划从s3复制到redshift,并且出现错误缺少换行符:在许多文件的最后一行的位置48(字符类型和位置不同)上发现了意外的字符0x3a文件。尽管这些错误指向原始行中的不同字符,但我认为这与以下事实有关:我正在使用的文件在文件末尾(在文件的最后一行)没有换行符。这些文件并非全部单独复制,copy语句使用前缀将文件从s3大量复制到redshift:
COPY schema.table FROM
's3://bucket/prefix'
iam_role 'iam_role_specfic' delimiter '|'
`escape IGNOREBLANKLINES TRIMBLANKS BLANKSASNULL ACCEPTINVCHARS EMPTYASNULL` TRUNCATECOLUMNS FILLRECORD null as '\0'
files in S3 bucket:
prefix_25-character-guid-1234567
prefix_25-character-guid-2345678
prefix_25-character-guid-3456789
我认为s3并非将这些文件作为单独的文件读取,而是作为大量数据读取,并且每个文件末尾都没有换行符(通过在文本编辑器中查看文件来确认) )导致彼此相邻复制的两个文件的第一行和最后一行粉碎在一起。因此,在复制的每个单独文件的最后一行中都会引起错误。
我想知道如何避免这种情况。即我应该告诉s3(在上面显示的复制语句中)让它处理什么?