我正在尝试迁移红移数据库中的大型查询事件数据。我使用的是以下命令。
COPY events_20180627 from 's3://big-query-to-rs/big-query-data/events_20180627' CREDENTIALS 'aws_access_key_id=XXXXXXXXX;aws_secret_access_key=XXXXXXXXXXX' format as json 'auto' ;
对于大小大于4MB的行,它给出了以下错误。
亚马逊无效操作: json对象的总大小超过4194304字节的最大限制详细信息:错误: json对象的总大小超过了4194304字节的最大限制代码: 8001上下文:
我浏览了不同的博客和回答没有运气。
有人能告诉我一个解决办法吗?谢谢!
发布于 2022-03-16 08:26:50
也许你们已经知道了,但一开始我还不清楚。
4MB限制位于表insert的一行上,而不是所有行的总数上。我有一个错误,因为我的JSON格式是:
[
{"field1": "a", "field2": "b"},
{"field1": "c", "field2": "d"},
...
]
我认为redshift认为这是一个单行,这就是为什么它给出了4MB的错误。
Redshift期望这种格式:
{"field1": "a", "field2": "b"}
{"field1": "c", "field2": "d"}
...
也就是说,不是嵌套在数组中的对象,而是彼此相邻的普通对象,由可选的空格分隔(我只测试了用换行符分隔,但非常肯定它们是可选的)。
医生:
希望这能帮上忙!
https://stackoverflow.com/questions/59105646
复制