

 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/)を参照してください。

# Amazon S3 からの COPY
<a name="copy-parameters-data-source-s3"></a>

S3 バケットに配置したファイルからデータをロードするには、FROM 句を使用して COPY が Amazon S3 にあるファイルを見つける方法を指定します。FROM 句の一部としてデータファイルのオブジェクトパスを指定できます。または、Amazon S3 オブジェクトパスのリストを含むマニフェストファイルの場所を指定できます。Amazon S3 からの COPY では、HTTPS 接続が使用されます。S3 IP 範囲が許可リストに追加されていることを確認します。必要な S3 IP 範囲の詳細については、「[ネットワークの隔離](https://docs.aws.amazon.com//redshift/latest/mgmt/security-network-isolation.html#network-isolation)」を参照してください。

**重要**  
データファイルを保持する Amazon S3 バケットがクラスターと同じ AWS リージョンに存在しない場合は、[REGION](#copy-region)パラメータを使用して、データがあるリージョンを指定する必要があります。

**Topics**
+ [構文](#copy-parameters-data-source-s3-syntax)
+ [例](#copy-parameters-data-source-s3-examples)
+ [任意指定のパラメータ](#copy-parameters-data-source-s3-optional-parms)
+ [サポートされないパラメータ](#copy-parameters-data-source-s3-unsupported-parms)

## 構文
<a name="copy-parameters-data-source-s3-syntax"></a>

```
FROM { 's3://objectpath' | 's3://manifest_file' }
authorization
| MANIFEST
| ENCRYPTED
| REGION [AS] 'aws-region'
| optional-parameters
```

## 例
<a name="copy-parameters-data-source-s3-examples"></a>

次の例では、オブジェクトパスを使用して Amazon S3 からデータをロードします。

```
copy customer
from 's3://amzn-s3-demo-bucket/customer' 
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
```

次の例では、マニフェストファイルを使用して Amazon S3 からデータをロードします。

```
copy customer
from 's3://amzn-s3-demo-bucket/cust.manifest' 
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
manifest;
```

### パラメータ
<a name="copy-parameters-data-source-s3-parameters"></a>

FROM  <a name="copy-parameters-from"></a>
ロードするデータのソースです。Amazon S3 ファイルのエンコードの詳細については、[データ変換パラメータ](copy-parameters-data-conversion.md) を参照してください。

's3://*copy\$1from\$1s3\$1objectpath*'  <a name="copy-s3-objectpath"></a>
データを含む Amazon S3 オブジェクトへのパスを指定します (例: `'s3://amzn-s3-demo-bucket/custdata.txt'`)。*s3://copy\$1from\$1s3\$1objectpath* パラメータは、1 つのファイルを参照することも、同じキープレフィックスを持つオブジェクトまたはフォルダの集合を参照することもできます。たとえば、名前 `custdata.txt` は `custdata.txt`、`custdata.txt.1`、`custdata.txt.2`、`custdata.txt.bak` など、複数の物理ファイルを参照するキープレフィックスです。キープレフィックスは複数のフォルダを参照することもできます。たとえば、`'s3://amzn-s3-demo-bucket/custfolder'`は `custfolder` フォルダや `custfolder_1` フォルダなどを参照します。`custfolder_2`キープレフィックスが複数のフォルダを参照する場合、フォルダ内のすべてのファイルがロードされます。キープレフィックスが `custfolder.log` などのフォルダだけでなくファイルとも一致する場合、COPY はファイルのロードも試みます。キープレフィックスが原因で COPY が不要なファイルをロードしようとした場合は、マニフェストファイルを使用します。詳細については、[copy_from_s3_manifest_file](#copy-manifest-file)を参照してください。  
データファイルを保持する S3 バケットがクラスターと同じ AWS リージョンに存在しない場合は、[REGION](#copy-region)パラメータを使用して、データがあるリージョンを指定する必要があります。
詳細については、「[Amazon S3 からデータをロードする](t_Loading-data-from-S3.md)」を参照してください。

's3://*copy\$1from\$1s3\$1manifest\$1file*'  <a name="copy-manifest-file"></a>
ロードするデータファイルをリストするマニフェストファイルの Amazon S3 オブジェクトキーを指定します。*'s3://*copy\$1from\$1s3\$1manifest\$1file'** 引数は、単一のファイル (`'s3://amzn-s3-demo-bucket/manifest.txt'` など) を明示的に参照する必要があります。キープレフィックスを参照することはできません。  
マニフェストは、Amazon S3 からロードする各ファイルの URL をリストする、JSON 形式のテキストファイルです。URL にはバケット名およびファイルの完全オブジェクトパスが含まれます。マニフェストで指定するファイルの場所は異なるバケットでもかまいませんが、すべてのバケットは Amazon Redshift クラスターと同じ AWS リージョンに置かれている必要があります。ファイルが 2 回リストされている場合、ファイルは 2 回ロードされます。次の例は、3 つのファイルをロードするマニフェストの JSON を示しています。  

```
{
  "entries": [
    {"url":"s3://amzn-s3-demo-bucket1/custdata.1","mandatory":true},
    {"url":"s3://amzn-s3-demo-bucket1/custdata.2","mandatory":true},
    {"url":"s3://amzn-s3-demo-bucket2/custdata.1","mandatory":false}
  ]
}
```
二重引用符は必須であり、傾きの付いた "高機能な" 引用符ではなくシンプルな引用符 (0x22) にする必要があります。マニフェストの各エントリには、オプションとして `mandatory` フラグを含めることができます。`mandatory` が `true` に設定されている場合、そのエントリのファイルが見つからなければ、COPY は終了します。ファイルが見つかれば、COPY 処理は継続します。`mandatory` のデフォルト値は `false` です。  
以下の例に示すように、Parquet または ORC 形式のデータファイルからロードする場合、`meta`フィールドは必須です。  

```
{  
   "entries":[  
      {  
         "url":"s3://amzn-s3-demo-bucket1/orc/2013-10-04-custdata",
         "mandatory":true,
         "meta":{  
            "content_length":99
         }
      },
      {  
         "url":"s3://amzn-s3-demo-bucket2/orc/2013-10-05-custdata",
         "mandatory":true,
         "meta":{  
            "content_length":99
         }
      }
   ]
}
```
ENCRYPTED、GZIP、LZOP、BZIP2、または ZSTD オプションを指定している場合でも、マニフェストファイルの暗号化または圧縮は行わないでください。指定したマニフェストファイルが見つからないか、マニフェストファイルの形式が適切ではない場合、COPY はエラーを返します。  
マニフェストファイルを使用する場合、COPY コマンドに MANIFEST パラメータを指定する必要があります。MANIFEST パラメータを指定しない場合、COPY では、FROM で指定されたファイルがデータファイルであると想定します。  
詳細については、「[Amazon S3 からデータをロードする](t_Loading-data-from-S3.md)」を参照してください。

*authorization*  
COPY コマンドが、他の AWS リソース (Amazon S3、Amazon EMR、Amazon DynamoDB、Amazon EC2 など) のデータにアクセスするにためには承認が必要です。この認可を付与するには、クラスターにアタッチした AWS Identity and Access Management (IAM) ロールを参照 (ロールベースのアクセスコントロール) するか、ユーザーのアクセス認証情報を指定 (キーベースのアクセスコントロール) します。セキュリティと柔軟性を強化するために、IAM ロールベースのアクセスコントロールを使用することをお勧めします。詳細については、「[認可パラメータ](copy-parameters-authorization.md)」を参照してください。

MANIFEST  <a name="copy-manifest"></a>
Amazon S3 からロードするデータファイルの識別にマニフェストを使用することを指定します。MANIFEST パラメータが使用されている場合、COPY は *'s3://copy\$1from\$1s3\$1manifest\$1file'* によって参照されるマニフェストに記載されているファイルからデータをロードします。マニフェストファイルが見つからない場合、または形式が正しくない場合、COPY は失敗します。詳細については、「[マニフェストを使用し、データファイルを指定する](loading-data-files-using-manifest.md)」を参照してください。

ENCRYPTED  <a name="copy-encrypted"></a>
Amazon S3 にある入力ファイルの暗号化が、カスタマーマネージドのキーを使用したクライアント側の暗号化であることを指定する句。詳細については、「[暗号化されたデータファイルを Amazon S3 からロードする](c_loading-encrypted-files.md)」を参照してください。入力ファイルが Amazon S3 サーバー側の暗号化 (SSE-KMS または SSE-S3) を使用して暗号化されている場合は、ENCRYPTED を指定しないでください。COPY では、サーバー側で暗号化されたファイルを自動的に読み取ります。  
ENCRYPTED パラメータを指定する場合は、[MASTER_SYMMETRIC_KEY](#copy-master-symmetric-key)パラメータも指定するか、**master\$1symmetric\$1key**値を [CREDENTIALS パラメータの使用](copy-parameters-authorization.md#copy-credentials) 文字列に含める必要があります。  
暗号化されたファイルが圧縮形式である場合は、GZIP、LZOP、BZIP2、ZSTD パラメータを追加してください。  
ENCRYPTED を指定している場合でも、マニフェストファイルと JSONPaths ファイルの暗号化は行わないでください。

MASTER\$1SYMMETRIC\$1KEY '*root\$1key*'  <a name="copy-master-symmetric-key"></a>
Amazon S3 のデータファイルの暗号化に使用されたルート対称キー。MASTER\$1SYMMETRIC\$1KEY を指定する場合、[ENCRYPTED](#copy-encrypted)パラメータも指定する必要があります。MASTER\$1SYMMETRIC\$1KEY は CREDENTIALS パラメータと併用できません。詳細については、「[暗号化されたデータファイルを Amazon S3 からロードする](c_loading-encrypted-files.md)」を参照してください。  
暗号化されたファイルが圧縮形式である場合は、GZIP、LZOP、BZIP2、ZSTD パラメータを追加してください。

REGION [AS] '*aws-region*'  <a name="copy-region"></a>
ソースデータが配置されている AWS のリージョンを指定します。REGION は、データを含む AWS のリソースが Amazon Redshift クラスターと同じリージョンにない場合に、Amazon S3 バケットまたは DynamoDB テーブルから COPY を実行するために必要となります。  
*aws\$1region* の値は、[Amazon Redshift リージョンとエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#redshift_region)テーブルに示されているリージョンと一致している必要があります。  
REGION パラメータが指定されている場合、マニフェストファイルや複数の Amazon S3 バケットを含むすべてのリソースが指定されたリージョンに存在している必要があります。  
リージョン間でデータを転送する場合、Amazon S3 バケットやデータを含む DynamoDB テーブルに対して追加料金が発生します。料金の詳細については、「[Amazon S3 料金](https://aws.amazon.com/s3/pricing/)」ページの「**Amazon S3 から別の AWS リージョンへのデータ転送 (アウト)**」、および「[Amazon DynamoDB 料金](https://aws.amazon.com/dynamodb/pricing/)」ページの「**データ転送 (アウト)**」を参照してください。
デフォルトでは、COPY はデータが Amazon Redshift クラスターと同じリージョンにあると見なします。

## 任意指定のパラメータ
<a name="copy-parameters-data-source-s3-optional-parms"></a>

Amazon S3 からの COPY では、オプションで次のパラメータを指定できます。
+ [列のマッピングオプション](copy-parameters-column-mapping.md)
+ [データ形式パラメータ](copy-parameters-data-format.md#copy-data-format-parameters)
+ [データ変換パラメータ](copy-parameters-data-conversion.md)
+ [データのロード操作](copy-parameters-data-load.md)

## サポートされないパラメータ
<a name="copy-parameters-data-source-s3-unsupported-parms"></a>

Amazon S3 からの COPY では、次のパラメータは使用できません。
+ SSH
+ READRATIO