

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# COPY
<a name="r_COPY"></a>


|  | 
| --- |
|  COPY コマンドと UNLOAD コマンドのクライアント側の暗号化は、2025 年 4 月 30 日以降、新規のお客様は利用できなくなります。2025 年 4 月 30 日より前の 12 か月間に COPY コマンドと UNLOAD コマンドでクライアント側の暗号化を使用していた場合、2026 年 4 月 30 日までは COPY コマンドまたは UNLOAD コマンドでクライアント側の暗号化を引き続き使用できます。2026 年 4 月 30 日を過ぎると、COPY と UNLOAD でクライアント側の暗号化を使用できなくなります。できるだけ早く COPY と UNLOAD でサーバー側の暗号化を使用するよう切り替えることをお勧めします。COPY と UNLOAD でサーバー側の暗号化を既に使用している場合、変更はなく、クエリを変更せずに引き続き使用できます。COPY と UNLOAD の暗号化の詳細については、以下の ENCRYPTED パラメータを参照してください。  | 

データファイルまたは Amazon DynamoDB テーブルから、テーブルにデータをロードします。ファイルは Amazon Simple Storage Service (Amazon S3) バケット、Amazon EMR クラスターまたは Secure Shell (SSH) 接続を使用したリモートホストに配置できます。

**注記**  
Amazon Redshift Spectrum の外部テーブルは読み込み専用です。外部テーブルには COPY できません。

COPY コマンドは、入力データを追加の行としてテーブルに付加します。

どのソースからであっても、単一の入力行の最大サイズは 4 MB です。

**Topics**
+ [必要なアクセス許可](#r_COPY-permissions)
+ [COPY 構文](#r_COPY-syntax)
+ [必須パラメータ](#r_COPY-syntax-required-parameters)
+ [任意指定のパラメータ](#r_COPY-syntax-overview-optional-parameters)
+ [COPY コマンドの使用上の注意とその他のリソース](#r_COPY-using-the-copy-command)
+ [COPY コマンドの例](#r_COPY-using-the-copy-command-examples)
+ [COPY JOB](r_COPY-JOB.md)
+ [テンプレートを使用したコピー](r_COPY-WITH-TEMPLATE.md)
+ [COPY パラメータリファレンス](r_COPY-parameters.md)
+ [使用に関する注意事項](r_COPY_usage_notes.md)
+ [COPY の例](r_COPY_command_examples.md)

## 必要なアクセス許可
<a name="r_COPY-permissions"></a>

COPY コマンドを使用するには、Amazon Redshift テーブルに対する [INSERT](r_GRANT.md#grant-insert) 権限が必要です。

## COPY 構文
<a name="r_COPY-syntax"></a>

```
COPY table-name 
[ column-list ]
FROM data_source
authorization
[ [ FORMAT ] [ AS ] data_format ] 
[ parameter [ argument ] [, ... ] ]
```

テーブル名、データソース、データにアクセスするための許可のわずか 3 つのパラメータで COPY オペレーションを実行できます。

Amazon Redshift は COPY コマンドの機能を拡張し、マルチデータソースから複数のサービスデータ形式でのデータのロード、ロードデータへのアクセス制御、データ変換の管理、ロードオペレーションの管理を可能にします。

以下のセクションでは、COPY コマンドの必須パラメータと、機能別に分類したオプションのパラメータを示します。また、各パラメータについて説明し、さまざまなオプションがどのように連携するかについても説明します。アルファベット順のパラメータリストを使用すると、パラメータの説明に直接移動できます。

## 必須パラメータ
<a name="r_COPY-syntax-required-parameters"></a>

COPY コマンドには 3 つの要素が必要です。
+ [Table Name](#r_COPY-syntax-overview-table-name)
+ [Data Source](#r_COPY-syntax-overview-data-source)
+ [Authorization](#r_COPY-syntax-overview-credentials)

最も単純な COPY コマンドは次の形式を使用します。

```
COPY table-name 
FROM data-source
authorization;
```

次の例では、CATDEMO というテーブルを作成し、Amazon S3 の `category_pipe.txt` というデータファイルからサンプルデータを含むテーブルをロードします。

```
create table catdemo(catid smallint, catgroup varchar(10), catname varchar(10), catdesc varchar(50));
```

以下の例では、COPY コマンドのデータソースは、`redshift-downloads`という名前の Amazon S3 バケットの `tickit` フォルダ内の `category_pipe.txt` というデータファイルです。COPY コマンドには、AWS Identity and Access Management(IAM) ロールを通して、Amazon S3 バケットにアクセスすることが許可されています。クラスターに Amazon S3 にアクセスする権限を持つ既存の IAM ロールがある場合、次の COPY コマンドに ロールの Amazon Resource Name (ARN) を置換して実行できます。

```
copy catdemo
from 's3://redshift-downloads/tickit/category_pipe.txt'
iam_role 'arn:aws:iam::{{<aws-account-id>}}:role/{{<role-name>}}'
region 'us-east-1';
```

他の AWS リージョンからデータをロードする手順など、COPY コマンドを使用してサンプルデータをロードする方法の詳細については、「Amazon Redshift 入門ガイド」の「[Amazon S3 からサンプルデータをロードする](https://docs.aws.amazon.com/redshift/latest/gsg/rs-gsg-create-sample-db.html)」を参照してください。

*table-name*  <a name="r_COPY-syntax-overview-table-name"></a>
COPY コマンドのターゲットテーブル名です。テーブルはすでにデータベースに存在する必要があります。テーブルは一時テーブルまたは永続的テーブルです。COPY コマンドは、新しい入力データをテーブルの既存の行に追加します。

FROM *data\_source*  <a name="r_COPY-syntax-overview-data-source"></a>
ターゲットテーブルにロードするソースデータの場所です。マニフェストファイルは、いくつかのデータソースで指定できます。  
最もよく使われるデータリポジトリは Amazon S3 バケットです。Amazon EMR クラスター、Amazon EC2 インスタンス、またはクラスターが SSH 接続を使用してアクセスできるリモートホストにあるデータファイルからロードすることもできます。または、DynamoDB テーブルから直接ロードすることもできます。  
+ [Amazon S3 からの COPY](copy-parameters-data-source-s3.md)
+ [Amazon EMR からの COPY](copy-parameters-data-source-emr.md) 
+ [リモートホスト (SSH) からの COPY](copy-parameters-data-source-ssh.md)
+ [Amazon DynamoDB からの COPY](copy-parameters-data-source-dynamodb.md)

承認  <a name="r_COPY-syntax-overview-credentials"></a>
他の AWS リソースにアクセスするための承認と許可のために、クラスターが使用する方法を示す句。COPY コマンドが、他の AWS リソース (Amazon S3、Amazon EMR、Amazon DynamoDB、Amazon EC2 など) のデータにアクセスするにためには承認が必要です。クラスターにアタッチされた IAM ロールを参照して、または IAM ユーザーのアクセスキー ID とシークレットアクセスキーを提供して、そのアクセス権限を提供できます。  
+ [認可パラメータ](copy-parameters-authorization.md) 
+ [ロールベースアクセスコントロール](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based) 
+ [キーベースのアクセスコントロール](copy-usage_notes-access-permissions.md#copy-usage_notes-access-key-based) 

## 任意指定のパラメータ
<a name="r_COPY-syntax-overview-optional-parameters"></a>

オプションで、COPY でターゲットテーブルの列にフィールドデータをマッピングする方法の指定、COPY コマンドで正しく読み込み解析できるソースデータ属性の定義、ロード処理中に COPY コマンドが実行する操作の管理ができます。
+ [列のマッピングオプション](copy-parameters-column-mapping.md)
+ [データ形式パラメータ](#r_COPY-syntax-overview-data-format)
+ [データ変換パラメータ](#r_COPY-syntax-overview-data-conversion)
+ [データのロード操作](#r_COPY-syntax-overview-data-load)

### 列のマッピング
<a name="r_COPY-syntax-overview-column-mapping"></a>

デフォルトでは、COPY はデータファイルで発生したフィールドと同じ順序でターゲットテーブルの列にフィールド値を挿入します。デフォルトの列順序が機能しない場合は、列リストを指定するか、JSONPath 式を使用してソースデータフィールドをターゲット列にマッピングできます。
+ [Column List](copy-parameters-column-mapping.md#copy-column-list)
+ [JSONPaths File](copy-parameters-column-mapping.md#copy-column-mapping-jsonpaths)

### データ形式パラメータ
<a name="r_COPY-syntax-overview-data-format"></a>

固定幅、文字区切り形式、カンマ区切り値 (CSV) のテキストファイル、JSON 形式、または Avro ファイルからデータをロードできます。

デフォルトでは、COPY コマンドはソースデータを文字区切り形式 UTF-8 のテキストファイルと見なします。デフォルトの区切り文字はパイプ文字です。ソースデータが別の形式である場合は、以下のパラメータを使用してデータ形式を指定します。
+ [FORMAT](copy-parameters-data-format.md#copy-format)
+ [CSV](copy-parameters-data-format.md#copy-csv)
+ [DELIMITER](copy-parameters-data-format.md#copy-delimiter) 
+ [FIXEDWIDTH](copy-parameters-data-format.md#copy-fixedwidth) 
+ [SHAPEFILE](copy-parameters-data-format.md#copy-shapefile) 
+ [AVRO](copy-parameters-data-format.md#copy-avro) 
+ [JSON format for COPY](copy-parameters-data-format.md#copy-json) 
+ [ENCRYPTED](copy-parameters-data-source-s3.md#copy-encrypted) 
+ [BZIP2](copy-parameters-file-compression.md#copy-bzip2) 
+ [GZIP](copy-parameters-file-compression.md#copy-gzip) 
+ [LZOP](copy-parameters-file-compression.md#copy-lzop) 
+ [PARQUET](copy-parameters-data-format.md#copy-parquet) 
+ [ORC](copy-parameters-data-format.md#copy-orc) 
+ [ZSTD](copy-parameters-file-compression.md#copy-zstd) 

### データ変換パラメータ
<a name="r_COPY-syntax-overview-data-conversion"></a>

テーブルをロードする際に、COPY は暗黙的にソースデータの文字列をターゲット列のデータ型に変換しようとします。デフォルトの動作とは異なる変換を指定する必要がある場合、またはデフォルトの変換がエラーになった場合、次のパラメータを指定してデータ変換を管理できます。
+ [ACCEPTANYDATE](copy-parameters-data-conversion.md#copy-acceptanydate) 
+ [ACCEPTINVCHARS](copy-parameters-data-conversion.md#copy-acceptinvchars) 
+ [BLANKSASNULL](copy-parameters-data-conversion.md#copy-blanksasnull) 
+ [DATEFORMAT](copy-parameters-data-conversion.md#copy-dateformat) 
+ [EMPTYASNULL](copy-parameters-data-conversion.md#copy-emptyasnull) 
+ [ENCODING](copy-parameters-data-conversion.md#copy-encoding) 
+ [ESCAPE](copy-parameters-data-conversion.md#copy-escape) 
+ [EXPLICIT_IDS](copy-parameters-data-conversion.md#copy-explicit-ids) 
+ [FILLRECORD](copy-parameters-data-conversion.md#copy-fillrecord) 
+ [IGNOREBLANKLINES](copy-parameters-data-conversion.md#copy-ignoreblanklines) 
+ [IGNOREHEADER](copy-parameters-data-conversion.md#copy-ignoreheader) 
+ [NULL AS](copy-parameters-data-conversion.md#copy-null-as) 
+ [REMOVEQUOTES](copy-parameters-data-conversion.md#copy-removequotes) 
+ [ROUNDEC](copy-parameters-data-conversion.md#copy-roundec) 
+ [TIMEFORMAT](copy-parameters-data-conversion.md#copy-timeformat) 
+ [TRIMBLANKS](copy-parameters-data-conversion.md#copy-trimblanks) 
+ [TRUNCATECOLUMNS](copy-parameters-data-conversion.md#copy-truncatecolumns) 

### データのロード操作
<a name="r_COPY-syntax-overview-data-load"></a>

次のパラメータを指定して、トラブルシューティングの際のロード操作のデフォルトの動作を管理したり、ロード時間を短縮します。
+ [COMPROWS](copy-parameters-data-load.md#copy-comprows) 
+ [COMPUPDATE](copy-parameters-data-load.md#copy-compupdate) 
+ [IGNOREALLERRORS](copy-parameters-data-load.md#copy-ignoreallerrors) 
+ [MAXERROR](copy-parameters-data-load.md#copy-maxerror) 
+ [NOLOAD](copy-parameters-data-load.md#copy-noload) 
+ [STATUPDATE](copy-parameters-data-load.md#copy-statupdate) 

## COPY コマンドの使用上の注意とその他のリソース
<a name="r_COPY-using-the-copy-command"></a>

COPY コマンドの使用方法の詳細については、次のトピックを参照してください。
+ [使用に関する注意事項](r_COPY_usage_notes.md)
+ [チュートリアル: Amazon S3 からデータをロードする](tutorial-loading-data.md)
+ [データをロードするための Amazon Redshift のベストプラクティス](c_loading-data-best-practices.md)
+ [COPY コマンドを使ってテーブルをロードする](t_Loading_tables_with_the_COPY_command.md)
  + [Amazon S3 からデータをロードする](t_Loading-data-from-S3.md)
  + [Amazon EMR からのデータのロード](loading-data-from-emr.md)
  + [リモートホストからデータをロードする](loading-data-from-remote-hosts.md) 
  + [Amazon DynamoDB テーブルからのデータのロード](t_Loading-data-from-dynamodb.md)
+ [データロードのトラブルシューティング](t_Troubleshooting_load_errors.md)

## COPY コマンドの例
<a name="r_COPY-using-the-copy-command-examples"></a>

さまざまなソースから、異なる形式で、さまざまな COPY オプションを使用して COPY を実行する方法を示すその他の例については、「[COPY の例](r_COPY_command_examples.md)」を参照してください。