web-dev-qa-db-ja.com

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

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

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

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

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

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

AWSQuickSolutions:Redshiftテーブルをドロップできない、またはドロップテーブルがハングする を通じてトラブルシューティングも試みましたが、svv_table_infoへのアクセス権がありません。

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

7
ivb1

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

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;
1
Ernie Castruita

@nofinatorの返信は私にとってはうまくいったので他の人にも役立つかもしれないので報告する:

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

1
Vzzarr

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

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

0
Mazen AB

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

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

0
user7865286

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

0
norpcom