RedshiftからS3にデータをアンロードする方法は?


8

RedshiftからS3バケットに一部のデータをアンロードしようとしています。ただし、次のエラーが発生します。

Amazonの無効な操作:アクティブなポータルをドロップできません。[SQL状態= XX000、DBエラーコード= 500310]

RedshiftとS3は2つの異なるバケットにあるため、アンロード内のリージョンを指定したことに注意してください。

私はそれを調べてみました、それは私がテーブルを落とすことができないと述べています

したがって、「テスト」テーブルを作成しましたが、ビューやその他に接続されていないことが100%確実ですが、それでも同じエラーが発生します。

AWSQuickSolutions使用したトラブルシューティングも試しました。Redshiftテーブルをドロップできない、またはにアクセスできない場合を除いて、テーブルをドロップしますsvv_table_info

アンロードを行う方法はありますか?


よくわかりません。UNLOAD テーブルにしたい(つまり、データをS3にエクスポートする)ことについて話しますが、テーブルを削除することについて話します。どの操作を実行しますか?
John Rotenstein、

2
redshiftにあるデータのコピーをS3に作成して、csvをダウンロードできるようにしたいと考えています。私のメモリでは許されないので、SQLワークベンチでそれを行うことはできません。アンロードでそれができることをオンラインで検索しました。投稿したエラーが表示される場合を除きます。エラーを検索すると、テーブルのドロップについて混乱します。
ivb1

Redshift UNLOADコマンドを使用していますか?(コマンドを見せてもらえますか?)同じリージョンのバケットにアンロードしても機能しますか?アンロードはテーブルの削除とは関係ありません。
John Rotenstein

2
これは私にも起こっています。別のアプリ(私の場合はRedshiftコンソールのクエリエディター)からUNLOADを実行して回避しました。
nofinator

1
セッションを再開して成功しました
darekarsam

回答:


2

@nofinatorの返信は私にとってはうまくいき、他の人にとっても役立つので、

別のアプリからUNLOADを実行することで(私の場合はRedshiftコンソールのクエリエディター)、例外を解決しました Amazon Invalid operation: cannot drop active portal


1

OK、同じ問題に遭遇しました。次の理由により、私の問題に適用されている既知の解決策はありません:

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;

0

昨日も同じ問題がありました。少なくとも私の事件では、データウェアハウスにsev-2がありました。私はAmazon小売で使用されているAmazon DWPを使用しているので、これがAWSで使用されているのと同じサービスかどうかはわかりません。

tldr; これは、redshiftのプロバイダー内のサーバーの問題である可能性があります。


0

ロールのIAMアクセス許可を変更した後、この問題が発生しました。残念ながら、クラスターを再起動する必要があり、その後UNLOADコマンドが機能しました。


0

このエラーの正確な原因はわかりませんが、アンロードに失敗した後でエラーが発生していました。

SQLクライアントを切断して再接続し、それを機能させました。非常に便利ではありませんが、クラスターを再起動するよりは優れています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.