COPY コマンドを使ってテーブルをロードする
COPY コマンドは Amazon Redshift の超並列処理 (MPP) アーキテクチャを活用し、Amazon S3 のファイル、DynamoDB テーブル、リモートホストから出力されたテキストのいずれかから並列でデータをロードします。
COPY コマンドのすべてのオプションを学習する前に、Amazon S3 データをロードするための基本的なオプションを学習することをお勧めします。「Amazon Redshift 入門ガイド」は、デフォルトの IAM ロールを使用して Amazon S3 データをロードするための COPY コマンドの簡単な使用方法を示しています。詳細については、「ステップ 4: Amazon S3 から Amazon Redshift にデータをロードする」を参照してください。
注記
大量のデータをロードする場合、COPY コマンドを使うことをお勧めします。個々に INSERT ステートメントを使ってテーブルにデータを入力すると著しく時間がかかる場合があります。または、他の Amazon Redshift データベーステーブルにデータが既に存在する場合、パフォーマンスを向上させるには INSERT INTO ... SELECT または CREATE TABLE AS を使用します。詳細については、「INSERT」または「CREATE TABLE AS」を参照してください。
Amazon Redshift で別の AWS リソースからデータをロードするには、リソースにアクセスして必要なアクションを実行するためのアクセス許可が必要です。
COPY コマンドを使ってデータをテーブルにロードするための権限を与えるか、取り消すには、INSERT 権限を与えるか、取り消します。
データを Amazon Redshift テーブルにロードするために、適切な形式にする必要があります。このセクションでは、ロードする前のデータを準備し確認するための指針、ならびに実行する前の COPY ステートメントを検証するための指針を紹介します。
Amazon S3 バケットにアップロードするデータファイルの情報を保護するには、事前に暗号化しておきます。COPY を実行すると、ロード時にデータが復号されます。一時的セキュリティ認証情報をユーザーに与えることで、データロードのアクセスを制限することもできます。一時的セキュリティ認証情報はセキュリティを強化します。使用期限が短く、期限が切れた後は再利用できないためです。
Amazon Redshift には、区切られた非圧縮データをすばやくロードするための COPY 機能が組み込まれています。加えて、gzip、lzop、bzip2 のいずれかによりファイルを圧縮することで、そのファイルのアップロードにかかる時間を短縮できます。
COPY クエリに ESCAPE、REMOVEQUOTES、および FIXEDWIDTH のキーワードが含まれる場合、非圧縮データの自動分割はサポートされませんが、CSV キーワードの場合はサポートされます。
Amazon Redshift では、AWS クラウド内で転送されるデータのセキュリティを確保するために、COPY、UNLOAD、バックアップ、復旧オペレーションの実行時の Amazon S3 または Amazon DynamoDB との通信に、ハードウェアでアクセラレーションされた SSL を使用します。
Amazon DynamoDB テーブルからデータを直接ロードするとき、Amazon DynamoDB がプロビジョニングするスループットの消費量を制御するオプションがあります。
任意で COPY を使い、入力データを分析したり、ロードプロセスの一部として最適な圧縮エンコーディングをテーブルに自動的に適用したりできます。