Redshift COPY 命令写入主体失败(0 != 575)原因:无法膨胀无效或不完整的收缩数据
Redshift COPY command Failed writing body (0 != 575) Cause: Failed to inflateinvalid or incomplete deflate data
我在 S3 上有一个名为 data.csv.gz 的文件,它是一个压缩的 CSV 文件。我已经使用 ungzip 命令成功解压缩了它,所以据我所知我知道它已正确压缩。
运行下面的命令报错
COPY to_table ("id", "something", "something_else")
FROM 's3://my.domain.com/somewhere/data.csv.gz'
CREDENTIALS 'aws_access_key_id=********;aws_secret_access_key=********'
IGNOREHEADER 1 TRUNCATECOLUMNS CSV REGION 'us-east-1' GZIP;
错误是:
-----------------------------------------------
error: Failed writing body (0 != 575) Cause: Failed to inflateinvalid or incomplete deflate data. zlib error code: -3
code: 9001
context: S3 key being read : ...
...
-----------------------------------------------
这是什么意思,如何解决?
该文件是 SSE-S3 加密的,如果这很重要 - 据我所知,它不应该。
当您在复制过程中使用 gzip 选项但无法将文件读取为 gzip 时,会发生这种情况。
我遇到了同样的问题,我删除了 s3 中的现有文件夹并重新运行 卸载脚本然后复制脚本。
在我的例子中,gz 文件是完整的。这是一个合法的 gzip 文件。我使用 file -i
和 gzip -v -t
cmds.
仔细检查了它
我什至解压缩了文件,重新压缩并上传到 s3。但仍然有同样的错误。
然后我发现这个 gz 文件的最后一行“损坏”了。它不知何故被切成两半,我不得不删除这一行,重新压缩,然后上传到 s3。
之后一切正常
然而神秘的是,如果一行像这样被切成两半,我们应该得到 stl_load_errors
¯\_(ツ)_/¯
我唯一的猜测是我们的原始 gzip 文件仍然损坏但无法使用这 2 个命令检测到,我仍然能够解压缩它。
我在 S3 上有一个名为 data.csv.gz 的文件,它是一个压缩的 CSV 文件。我已经使用 ungzip 命令成功解压缩了它,所以据我所知我知道它已正确压缩。
运行下面的命令报错
COPY to_table ("id", "something", "something_else")
FROM 's3://my.domain.com/somewhere/data.csv.gz'
CREDENTIALS 'aws_access_key_id=********;aws_secret_access_key=********'
IGNOREHEADER 1 TRUNCATECOLUMNS CSV REGION 'us-east-1' GZIP;
错误是:
-----------------------------------------------
error: Failed writing body (0 != 575) Cause: Failed to inflateinvalid or incomplete deflate data. zlib error code: -3
code: 9001
context: S3 key being read : ...
...
-----------------------------------------------
这是什么意思,如何解决?
该文件是 SSE-S3 加密的,如果这很重要 - 据我所知,它不应该。
当您在复制过程中使用 gzip 选项但无法将文件读取为 gzip 时,会发生这种情况。
我遇到了同样的问题,我删除了 s3 中的现有文件夹并重新运行 卸载脚本然后复制脚本。
在我的例子中,gz 文件是完整的。这是一个合法的 gzip 文件。我使用 file -i
和 gzip -v -t
cmds.
我什至解压缩了文件,重新压缩并上传到 s3。但仍然有同样的错误。
然后我发现这个 gz 文件的最后一行“损坏”了。它不知何故被切成两半,我不得不删除这一行,重新压缩,然后上传到 s3。 之后一切正常
然而神秘的是,如果一行像这样被切成两半,我们应该得到 stl_load_errors
¯\_(ツ)_/¯
我唯一的猜测是我们的原始 gzip 文件仍然损坏但无法使用这 2 个命令检测到,我仍然能够解压缩它。