由于截断,来自 S3 命令的 AWS COPY 失败 - 已解决

AWS COPY From S3 Command Fails As A Result of Truncation - RESOLVED

首先,我想提一下,我尝试在现有的 SO 问题中搜索此问题,但找不到遇到的情况。因此提出一个新问题。

所以我正在尝试将数据从 S3 导入到 Redshift。

S3 中的数据是 JSON 由换行符分隔的数据,即 \n(使用 UNLOAD 命令从其他 redshift 集群导出)

复制命令为-

copy redhist_table_name
from 's3://bucket/path/to/s3/json/file.json'
iam_role 'iam_role_info'
region 'region';
json 'auto';

STL_LOAD_ERRORS 显示错误为 - delimiter not found 但是当我仔细查看时,我发现复制命令仅从 json 复制前 1024 个字符导致上述错误的行

我查找了复制命令提供的所有选项以查看是否有增加此限制的方法,但我找到了 none。

知道这个限制是从哪里来的吗?或者这不是这个问题的根本原因?

所以我想这不是根本原因。 Stl_load_errors 仅在“raw_line”列中存储 1024 个字符。一行的长度很可能有限制,但我知道它比 1024 个字符长得多。

文件中的哪一行 COPY 失败了?在文件中的第一个还是后面的某个地方?

如果文件深处有一行,则可能有问题。 UNLOAD to COPY 应该可以正常工作,但我可以看到可能存在一些特殊情况(例如字符串值中的 ")。如果它是特定行,则发布该行(如果需要则进行清理)会有所帮助。