如何在 Redshift 中提取嵌套 JSON 数组并创建具有特定列的表?

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

我在 AWS Redshift 中有一个表,其中有一列名为 json,它将嵌套的 JSON 对象存储为字符串。我需要创建一个包含三列的新表:sid、skill_name 和 Skill_vdd。 json 列在关键行下包含一个嵌套的 JSON 数组,我想从该数组中提取值。

这是 json 列中的示例 JSON:

{
    "Id": 888,
    "Command": "uuuu",
    "step": "rows": [
        {"sid": 1515, "skill_name": "jjjj", "skill_vdd": 9999},
        {"sid": 333, "skill_name": "ttt", "skill_vdd": 333}
    ]
}

我尝试过使用各种 redshift json 函数,但我无法展平 json

如何展平此嵌套 JSON 并从 Redshift 中的 json 列创建一个包含以下列的表:sid、skill_name、skill_vdd?

arrays json amazon-redshift nested-json redshift-query
1个回答
0
投票

我假设该列的所有条目在其数组“行”中不仅仅有 2 个值。 在这种情况下,您需要将此数据 json_parse() 转换为 SUPER 数据类型,然后“取消嵌套”这些数组值。 AWS 这里有一个关于取消嵌套的很好的页面 - https://docs.aws.amazon.com/redshift/latest/dg/query-super.html

这个问题出现了很多次,我之前已经在这里回答过 - UNNEST Redshift 中的超级数据

如果您需要帮助才能使其正常工作,请再次联系并显示您目前拥有的代码。

© www.soinside.com 2019 - 2024. All rights reserved.