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

时间:2019-10-14 16:33:01

标签: sql amazon-s3 mysql-workbench amazon-redshift

我一直试图从Redshift卸载一些数据到S3存储桶。 除非出现以下错误:

  

Amazon无效操作:无法删除活动门户; [SQL State = XX000,DB Errorcode = 500310]

要注意Redshift和S3在2个不同的存储桶中,所以我指定了卸载区域。

我尝试查找它,其中提到我无法放下桌子。

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

我也尝试通过AWSQuickSolutions: Redshift Table Can’t Be Dropped or Drop Table Hangs进行故障排除,但我无权访问svv_table_info

有什么方法可以卸载吗?

5 个答案:

答案 0 :(得分:1)

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

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

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

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

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

最后,我明白了。发生了什么变化?我现在直接在公司的网络上,而不是在遇到此问题时使用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;

答案 1 :(得分:0)

昨天我有同样的问题。至少在我的事件中,Data-Warehouse中存在一个sev-2。我使用的是Amazon零售使用的Amazon DWP,所以不确定是否与AWS使用的服务相同。

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

答案 2 :(得分:0)

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

通过从其他应用程序运行UNLOAD(在我的案例中是Redshift Console中的查询编辑器),解决了异常Amazon Invalid operation: cannot drop active portal

答案 3 :(得分:0)

修改角色的IAM权限后出现此问题。不幸的是,我不得不重启集群,然后我的UNLOAD命令起作用了。

答案 4 :(得分:0)

我不知道是什么导致了此错误,但卸载失败后却出现了。

我断开连接,然后重新连接我的sql客户端并使其正常工作。不是很方便,但是比重新启动集群更好。