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 到不存在的表中的主要内容,如果未能解决你的问题,请参考以下文章
如何从 SQL 脚本执行 AWS S3 到 Redshift Copy 命令?
如果我使用 COPY 命令将数据从 S3 加载到 Redshift,它会遵循我的 dist 样式和键吗?