COPY を使用して CSV ファイルを Amazon Redshift にロードしようとしましたが、何もロードされません

所要時間1分
0

COPY コマンドを使用して、Amazon Simple Storage Service (Amazon S3) から Amazon Redshift に CSV ファイルをロードしようとしています。しかし、ファイルにレコードが含まれているにもかかわらず、何もロードされず、エラーも返されません。これを解決するにはどうすればよいですか?

解決方法

CSV ファイルが行末記号にキャリッジリターン (「\r」、「^M」、または 16 進数の「0x0D」) を使用している場合、COPY を使用して Amazon Redshift にデータをロードすることはできません。Amazon Redshift はキャリッジリターンを行末記号として認識しないため、ファイルは 1 行として解析されます。COPY コマンドの IGNOREHEADER パラメータがゼロ以外の数値に設定されている場合、Amazon Redshift は最初の行をスキップするため、ファイル全体がスキップされます。操作は技術的に成功しているため、ロードエラーは返されません。

この問題を解決するには、キャリッジリターンを CRLF (「\r\n」または 16 進数の「0x0D0A」) または LF (「\n」または 16 進数の「0x0A」) に置き換えます。変更したファイルを S3 バケットにアップロードしてから、COPY コマンドを再試行します。

<b>その他のトラブルシューティングのヒント</b>

  • COPY コマンドを使用するときに、ロックリソースの競合が発生していないか確認します。詳細については、「Amazon Redshift でロックを検出し、解除する方法を教えてください?」を参照してください。
  • Workload Manager (WLM) で競合が発生していないか確認します。STV_WLM_QUERY_STATE クエリを使用して、 COPY コマンドが WLM スロットを取得しようとしているかどうかを確認できます。
  • COPY トランザクションがロールバックされていないか確認します。ロールバックの確認には、SVL_STATEMENTTEXT ビューと STL_UNDONE ビューを使用してください。

関連情報

データソース

COPY の例

STV_WLM_QUERY_STATE

AWS公式
AWS公式更新しました 2年前
コメントはありません

関連するコンテンツ