繁体   English   中英

如何将数据从 Redshift 卸载到 S3?

[英]How to unload data from Redshift to S3?

我一直在尝试将一些数据从 Redshift 卸载到 S3 存储桶。 除了我收到以下错误:

亚马逊无效操作:无法删除活动门户; [SQL 状态=XX000,数据库错误代码=500310]

要注意 Redshift 和 S3 位于 2 个不同的存储桶中,因此我指定了卸载中的区域。

我试过查找它,它提到我不能放下桌子。

所以我创建了一个“测试”表,我 100% 确定它没有连接到任何视图或其他视图,但我仍然得到同样的错误。

我还尝试通过AWSQuickSolutions 进行故障排除:Redshift Table Can't Be Dropped 或 Drop Table Hangs除非我无权访问svv_table_info

有什么办法可以卸载吗?

报告@nofinator 回复,因为它对我有用,并且可能对其他人也有帮助:

通过从不同的应用程序运行 UNLOAD,在我的例子中,Redshift 控制台中的查询编辑器解决了异常Amazon Invalid operation: cannot drop active portal

好的,所以我遇到了同样的问题。 没有任何已知的解决方案适用于我的问题,因为:

1) 集群与我创建的 S3 存储桶位于同一区域

2) 我尝试通过 python、cli 和 redshift 运行 UNLOAD 命令,结果相同。

3) 我尝试为 redshift 角色添加存储桶策略

4)我尝试使用 for arns(redshift 角色和 s3 角色)运行卸载命令

最后,我让它工作了。 发生了什么变化? 我现在直接在我公司的网络上,而不是在我遇到这个问题时使用 VPN。

最终对我有用的是:

UNLOAD ('SELECT * FROM table where EXTRACT(YEAR FROM order_datetime_utc )=2019')   
              to 's3://bucket/' 
              REGION 'us-east-1'
                iam_role 'arn:aws:iam::0000000000:role/RedshiftCopyUnload,arn:aws:iam::0000000000:role/S3Access'
              parallel off
              delimiter as '\t' 
gzip;

我昨天有同样的问题。 至少在我的事件中,数据仓库中有一个 sev-2。 我使用亚马逊零售使用的 Amazon DWP,所以不确定这是否与 AWS 使用的服务相同。

tldr; 这可能是红移提供商内部的服务器问题。

在我修改了角色的 IAM 权限后,我遇到了这个问题。 不幸的是,我不得不重新启动集群,然后我的 UNLOAD 命令才起作用。

我不知道究竟是什么导致了这个错误,但我在卸载失败后得到它。

我断开连接然后重新连接我的 sql 客户端并让它工作。 不是超级方便,但比重新启动集群更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM