【问题标题】:Copy data from a JSON file to Redshift using the COPY command使用 COPY 命令将数据从 JSON 文件复制到 Redshift
【发布时间】:2014-12-05 10:08:13
【问题描述】:

我正在尝试使用COPY 命令和JSONPath 将JSON 文件加载到Redshift。据我了解,对于 JSON 文件中的每条记录,COPY 命令都会为 SQL 生成一条记录。

我需要从 JSON 中的一条记录生成 多个 记录到 SQL,但我不清楚如何做到这一点。

这是一个例子。假设我们有以下 JSON 文件:

{
    {
        "id": 1,
        "value": [1, 2, 3, 4],
        "other": "ops"
    },
    {
        "id": 2,
        "value": [5, 6, 7, 8]
    }
}

我想生成以下行以存储在 SQL 中:

id value
1  1
1  2
1  3
1  4
2  5
2  6
2  7
2  8

JSONPath 文件应该是什么样的?是否可行?

在related SO post 中,解决方案是在加载到 Redshift 之前以某种方式生成具有正确模式的数据。我可以预处理 JSON 文件以某种方式将其展平并将其存储回 S3。但这会使事情复杂化很多。

另一个相关问题是,如果一条记录中缺少一个字段(例如上述示例的第二条记录中的"other" 字段),我该如何设置默认值?

【问题讨论】:

    标签: json copy amazon-redshift jsonpath


    【解决方案1】:

    您不能在复制命令中执行转换。使用 ETL 工具而不是直接复制到 RedShift。使用 JSON 格式后,默认值将根据表 DDL 分配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-22
      • 1970-01-01
      • 2020-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-11
      相关资源
      最近更新 更多