S3 到 Redshift:未知的布尔格式

Posted

技术标签:

【中文标题】S3 到 Redshift:未知的布尔格式【英文标题】:S3 to Redshift: Unknown boolean format 【发布时间】:2017-02-15 23:29:27 【问题描述】:

执行从 S3 到 Redshift 的复制命令,加载 JSON 文件。我在要插入的新表中有一些字段为 bool,但总是出现以下错误:“未知布尔格式”

我的 JSON 被很好地解析,已经运行了一百万次测试。我尝试将布尔字段传递为:

false  //  "false"  //  "False"  //  0  //  "0"  //  null

但是执行时总是报同样的错误:

select * from stl_load_errors;

err_code  err_reason
1210      Unknown boolean format

我在我的声明中看到了一些关于使用 IGNOREHEADER 的 cmets,但这不是一个选项,因为我正在处理的文件是单行 json 格式。忽略头部基本上意味着根本不读取文件。我有其他表像这样工作并且工作正常,但这些表中没有任何 bool 列。

【问题讨论】:

你能分享一些示例 json 和我们的复制命令吗.. 【参考方案1】:

COPY from JSON Format 文档页面提供了一个包含布尔值的示例:


    "id": 0,
    "guid": "84512477-fa49-456b-b407-581d0d851c3c",
    "isActive": true,
    "tags": [
        "nisi",
        "culpa",
        "ad",
        "amet",
        "voluptate",
        "reprehenderit",
        "veniam"
    ],
    "friends": [
        
            "id": 0,
            "name": "Carmella Gonzales"
        ,
        
            "id": 1,
            "name": "Renaldo"
        
    ]

Boolean 文档页面显示的值与您尝试过的类似。

【讨论】:

感谢您的回答。原来 jsonformat 文件有 2 个字段的顺序错误,并且混淆了 bool 和另一种数据类型 -_-

以上是关于S3 到 Redshift:未知的布尔格式的主要内容,如果未能解决你的问题,请参考以下文章

将 RedShift 文件以 CSV 格式移至 S3

使用 Spectrify 以 Parquet 格式将数据从 Redshift 卸载到 S3

将数据从本地复制到 S3 到 Redshift 表时出现问题

S3 转 Redshift 输入数据格式

当“自动”将数据从 S3 加载到 Redshift 表中时,大小写是不是重要? [复制]

将具有多个值的 JSON 从 S3 复制到 Redshift