簡體   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