如何将单个对象数组从 JSON 复制到 Redshift

问题描述 投票:0回答:2

考虑以下 JSON 数据结构

[{"a":1,"b":2}
,{"a":3,"b":4}
,{"a":5,"b":6}
]

我想使用 Redshift COPY 命令复制此内容。

我认为 JsonPath 是需要的。到目前为止我最接近的是:

{
    "jsonpaths":[
        "$[0].a",
        "$[0].b",
    ]
}

但是,这仅复制第一行。我尝试的任何其他操作都是给出 Member is not an object 错误或不是有效的 JsonPath。

json amazon-redshift
2个回答
0
投票

COPY 示例 - Amazon Redshift 中显示的示例 JSON 文件建议每条记录都应包含在

{...}
中,没有任何内容“高于”该级别。

您的示例(上面)将整个文件包裹在

[...]
中,这可能是导致问题的原因。

如果移除

[...]
外层,它应该可以正常工作。


0
投票

如果数组中的 json 超过 16mb,则中断

create temp table js(data super);
copy js
from 's3://bucket/file.json'
iam_role '...'
format as json 'noshred';
select o from js j, j.data o;
© www.soinside.com 2019 - 2024. All rights reserved.