私はRedshiftにロードしたい約460,000のエントリ(すべてのS3ファイル)を含む大きなマニフェストファイルを持っています。私のコントロールできない問題のために、これらのエントリのいくつか(多分数十以上)が悪いJSONを含んでいるため、マニフェスト全体を一度に渡すとCOPYコマンドが失敗することになります。キー接頭辞付きのCOPYの使用も同じ方法で失敗します。複数のマニフェストファイルを使用してS3からRedshiftにロードしますか?
これを回避するには、一度に1つのURLをマニフェストファイルに書き込んで、psycopg2を使用してCOPYコマンドを発行するPythonスクリプトを作成しました。スクリプトはさらに、エラーをキャッチしてログに記録して、悪いファイルを見つけてもスクリプトが実行されるようにし、悪いファイルを見つけて修正できるようにします。
このスクリプトは、余分なEC2インスタンスでわずか1週間以上実行されており、約75%しか完了していません。このスクリプトは再び使用されるため、実行時間を短縮したいと考えています。
Redshiftについて私が理解しているのは、COPYコマンドが並行して実行されているということです。マニフェストファイルを小さなチャンクに分割してスクリプトを実行すると、すべてのロードにかかる時間が短縮されますファイル?