データファイルをロードする - Amazon Redshift

データファイルをロードする

ソースデータファイルにはさまざまな形式があり、さまざまな圧縮アルゴリズムが使用されます。COPY コマンドを使用してデータをロードすると、Amazon Redshift は Amazon S3 バケットプレフィックスで参照されるすべてのファイルをロードします。プレフィックスは、オブジェクトキー名の先頭にある文字列です。プレフィックスが複数のファイルまたは分割可能なファイルを指している場合、Amazon Redshift は Amazon Redshift の MPP アーキテクチャを利用してデータを並列でロードします。これにより、クラスター内のノード間でワークロードが分割されます。一方、分割できないファイルのデータをロードする場合、Amazon Redshift は直列的なロードを実行します。この処理はかなり低速になります。以下のセクションでは、フォーマットと圧縮に応じて、さまざまなファイルタイプを Amazon Redshift にロードする推奨方法について説明します。

分割可能なファイルからのデータのロード

次のファイルは、データがロードされると自動的に分割できます。

  • 非圧縮の CSV ファイル

  • BZIP で圧縮された CSV ファイル

  • 列形式ファイル (Parquet/ORC)

Amazon Redshift は、128 MB 以上のファイルを自動的にチャンクに分割します。列形式ファイル (特に Parquet と ORC) では、128MB 未満の場合は分割されません。Redshift は、並列動作するスライスを利用してデータをロードします。これにより、ローディングのパフォーマンスが高速化されます。

分割できないファイルからのデータのロード

JSON や CSV などのファイルタイプを GZIP などの他の圧縮アルゴリズムで圧縮しても、自動的に分割されません。この場合、圧縮されたデータを、ほぼ等しいサイズ (1 MB から 1 GB 程度) の複数の小さいファイルに手動で分割することをお勧めします。ファイルの数はクラスター内のスライス数の倍数である必要があります。データを複数のファイルに分割する方法と COPY を使ってデータをロードする例の詳細については、「Amazon S3 からデータをロードする」を参照してください。