JSON 数据加载到 Redshift 表中

Posted

技术标签:

【中文标题】JSON 数据加载到 Redshift 表中【英文标题】:JSON Data loading into Redshift Table 【发布时间】:2018-11-02 10:29:53 【问题描述】:

我正在尝试将 。下面是示例代码、表结构和 JSON 数据。

我在这个网站和 AWS 上浏览过很多帖子。但是,我的问题还没有解决。

JSON 数据如下,我将以下数据复制到test.json 并上传到 S3...

backslash: "a",newline: "ab",tab: "dd"

表结构如下

create table escapes (backslash varchar(25), newline varchar(35), tab 
varchar(35));

复制命令如下

copy escapes  from 's3://dev/test.json'
credentials 'aws_access_key_id=******;aws_secret_access_key=$$$$$'
format as JSON 'auto';

但它会引发以下错误

亚马逊无效操作:加载到表“转义”失败。检查'stl_load_errors'系统表以获取详细信息。 1 个语句失败。

在'stl_load_errors'表中,错误原因如下“无效值”。

【问题讨论】:

如果不是typo,我认为是数据格式问题。鉴于 JSON 无效。 backslash: "a", newline: "ab", tab: "dd" 理想情况下应该是 "backslash": "a","newline": "ab", "tab": "dd" 我已经厌倦了 "backslash": "a", "newline": "ab", "tab": "dd" 这样的数据。它没有用。这就是我编辑问题中提到的 JSON 数据的原因。 @cloudguru 我尝试了它的工作。在 test.json 中分享您的实际数据 @iammehrabalam, Redshift 表中是否需要定义任何配置。我的表的定义如原始问题中所述。由于数据加载不适用于实际数据,我创建了一个简单的 JSON 文件来测试上面的示例数据并尝试使用复制命令... 对不起朋友.. 这是我的 JSON 文件有问题。我正在使用 Windows Notepad++ .. 有一些我无法想象的特殊字符。 【参考方案1】:

似乎问题在于您的 JSON 数据。理想情况下应该是-


 "backslash": "a",
 "newline": "ab",
 "tab": "dd"

我希望这能解决您的问题,但如果没有,请更新您的问题,我可以重新尝试回答。

【讨论】:

以上是关于JSON 数据加载到 Redshift 表中的主要内容,如果未能解决你的问题,请参考以下文章

时间戳未从 Glue 加载到 Redshift 表中

如何将 JSON 文件加载到 Redshift 表的单个列

从 Redshift 表中获取 JSON 数据

将数据加载到 redshift 数据库中

将 JSON 数据从 dynamoDB 复制到 redshift

使用复制命令将数据从 s3 加载到 redshift