gpt4 book ai didi

amazon-web-services - 将 JSON 数据加载到 AWS Redshift 导致 NULL 值

转载 作者:行者123 更新时间:2023-12-04 01:36:21 24 4
gpt4 key购买 nike

我正在尝试执行加载/复制操作以将数据从 S3 存储桶中的 JSON 文件直接导入到 Redshift。
COPY 操作成功,在 COPY 之后,表具有正确的行数/记录数,但每条记录都是 NULL !

加载需要预期的时间,COPY 命令返回 OK,Redshift 控制台报告成功且没有错误……但如果我从表中执行简单查询,它只返回 NULL 值。

JSON 非常简单 + 扁平,并且格式正确(根据我在此处找到的示例:http://docs.aws.amazon.com/redshift/latest/dg/r_COPY_command_examples.html)

基本上,每行一行,格式如下:

{ "col1": "val1", "col2": "val2", ... }
{ "col1": "val1", "col2": "val2", ... }
{ "col1": "val1", "col2": "val2", ... }

我尝试过根据在 JSON 对象中找到的值和数据类型重写架构以及从未压缩的文件中复制等方法。我认为 JSON 在加载时可能没有被正确解析,但如果无法解析对象,它可能会引发错误。

我的 COPY 命令如下所示:
copy events from 's3://mybucket/json/prefix' 
with credentials 'aws_access_key_id=xxx;aws_secret_access_key=xxx'
json 'auto' gzip;

任何指导将不胜感激!谢谢。

最佳答案

所以我找到了原因——从我在原帖中提供的描述来看,这并不明显。

在 Redshift 中创建表时,列名将转换为小写。
执行 COPY 操作时,列名区分大小写。

我一直在尝试加载的输入数据使用驼峰命名法作为列名,因此当我执行 COPY 时,列与定义的模式不匹配(现在使用所有小写的列名)

但是,该操作不会引发错误。它只是在所有不匹配的列中留下 NULL(在这种情况下,所有列)

希望这有助于有人避免同样的困惑!

关于amazon-web-services - 将 JSON 数据加载到 AWS Redshift 导致 NULL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31128095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com