S3 使用 COPY 到 Redshift:无法 COPY 到不存在的表中

Posted

技术标签:

【中文标题】S3 使用 COPY 到 Redshift:无法 COPY 到不存在的表中【英文标题】:S3 to Redshift using COPY: Cannot COPY into nonexistent table 【发布时间】:2021-03-22 12:38:00 【问题描述】:

我是 Redshift 和 S3 的新手。

我尝试将数据保存到 S3 并检索它。 虽然保存到 S3 有效,但检索返回错误:

saving

UNLOAD ('SELECT 5 as field')
TO 's3://my_bucket/test_001/example_1'
-- identification --
REGION 'us-east-1'
HEADER
ALLOWOVERWRITE
CSV

--> 工作过


retrieving

COPY example_1  FROM 's3://my_bucket/test_001/' 
-- same identification as above -- 
CSV

--> 返回错误INTERNAL_ERROR :: [Amazon](500310) Invalid operation: Cannot COPY into nonexistent table example_1

我做错了什么? AFAIK 我关注了这个documentation

【问题讨论】:

【参考方案1】:

您要复制到的表需要在运行 COPY 命令之前存在 - 在您的情况下是表“example_1”。这可以通过多种方式完成,但直接方式是使用 CREATE TABLE 命令。因为你只想存储一个我认为是整数值的列,所以运行

CREATE TABLE example_1 (A INT); 

在运行 COPY 命令之前。

【讨论】:

以上是关于S3 使用 COPY 到 Redshift:无法 COPY 到不存在的表中的主要内容,如果未能解决你的问题,请参考以下文章

S3 -> Redshift 无法处理 UTF8

Redshift COPY 命令无法从 S3 加载数据

如何从 SQL 脚本执行 AWS S3 到 Redshift Copy 命令?

如果我使用 COPY 命令将数据从 S3 加载到 Redshift,它会遵循我的 dist 样式和键吗?

如何在 Copy commd 中使用反斜杠字符将 s3 csv gz 文件加载到 Redshift

使用 COPY 功能自动将数据加载到 Redshift