

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

# データソース
<a name="copy-parameters-data-source"></a>

Amazon S3 バケット、Amazon EMR クラスター、またはクラスターが SSH 接続を使用してアクセスできるリモートホストのテキストファイルからデータをロードできます。また、DynamoDB テーブルから直接データをロードすることもできます。

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

テーブルから Amazon S3 の一連のファイルにデータをエクスポートするには、[UNLOAD](r_UNLOAD.md) コマンドを使用します。

**Topics**
+ [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)

# 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

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

COPY コマンドを使用することで、クラスターの Hadoop Distributed File System (HDFS) に、固定幅ファイル、文字区切りファイル、CSV ファイル、JSON 形式ファイル、または Avro ファイルでテキストファイルを書き込むように設定された Amazon EMR クラスターから、データを並列にロードできます。

**Topics**
+ [Syntax](#copy-parameters-data-source-emr-syntax)
+ [例](#copy-parameters-data-source-emr-example)
+ [パラメータ](#copy-parameters-data-source-emr-parameters)
+ [サポートされているパラメータ](#copy-parameters-data-source-emr-optional-parms)
+ [サポートされないパラメータ](#copy-parameters-data-source-emr-unsupported-parms)

## Syntax
<a name="copy-parameters-data-source-emr-syntax"></a>

```
FROM 'emr://emr_cluster_id/hdfs_filepath'  
authorization
[ optional_parameters ]
```

## 例
<a name="copy-parameters-data-source-emr-example"></a>

次の例では、Amazon EMR クラスターからデータをロードします。

```
copy sales
from 'emr://j-SAMPLE2B500FC/myoutput/part-*' 
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
```

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

FROM  
ロードするデータのソースです。

 'emr://*emr\$1cluster\$1id*/*hdfs\$1file\$1path*'  <a name="copy-emr"></a>
Amazon EMR クラスターの一意の識別子、および COPY コマンドのデータファイルを参照する HDFS ファイルパスです。HDFS データファイル名には、ワイルドカード文字のアスタリスク (\$1) および疑問符 (?) を含めることはできません。  
Amazon EMR クラスターは、COPY 操作が完了するまで稼動している必要があります。COPY 操作が完了する前に HDFS データファイルのいずれかが変更または削除されると、予期しない結果を招いたり、COPY 操作が失敗したりする可能性があります。
ファイル名の引数には、ロードする複数のファイルを指定する *hdfs\$1file\$1path* 引数の一部としてアスタリスク (\$1) および疑問符 (?) を使用できます。たとえば、`'emr://j-SAMPLE2B500FC/myoutput/part*'`であれば、`part-0000`、`part-0001`などのファイルが識別されます。ファイルパスにワイルドカード文字が含まれていない場合は、文字列リテラルとして処理されます。COPY コマンドでフォルダー名のみを指定した場合には、フォルダー内のすべてのファイルがロードされます。  
ワイルドカード文字を使用する場合、またはフォルダ名のみを使用する場合は、不要なファイルがロードされないことを確認してください。例えば、一部のプロセスでは出力フォルダにログファイルが書き込まれることがあります。
詳細については、「[Amazon EMR からのデータのロード](loading-data-from-emr.md)」を参照してください。

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

## サポートされているパラメータ
<a name="copy-parameters-data-source-emr-optional-parms"></a>

Amazon EMR からの 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-emr-unsupported-parms"></a>

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

# リモートホスト (SSH) からの COPY
<a name="copy-parameters-data-source-ssh"></a>

COPY コマンドでは、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスをはじめとするコンピュータなど、1 つ以上のリモートホストから同時にデータをロードすることができます。COPY では Secure Shell (SSH) を使用してリモートホストに接続し、そのホストのコマンドを実行してテキスト出力を生成します。リモートホストになることができるのは、EC2 の Linux インスタンスか、SSH 接続を許可するように設定されている Unix コンピュータまたは Linux コンピュータです。Amazon Redshift は複数のホストに接続でき、各ホストに対して複数の SSH 接続を開くことができます。Amazon Redshift は、各接続を介して一意のコマンドを送信し、ホストの標準出力にテキスト出力を生成します。Amazon Redshift は、テキストファイルと同じようにそれを読み込みます。

FROM 句を使用してマニフェストファイルの Amazon S3 オブジェクトキーを指定します。そのマニフェストファイルは、COPY が SSH 接続を開いてリモートコマンドを実行するために使用する情報を提供します。

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

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

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

```
FROM 's3://'ssh_manifest_file' }
authorization
SSH
| optional-parameters
```

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

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

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

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

FROM  
ロードするデータのソースです。

's3://*copy\$1from\$1ssh\$1manifest\$1file*'  <a name="copy-ssh-manifest"></a>
COPY コマンドは、SSH を使用して複数のホストに接続できるだけでなく、各ホストに対して複数の SSH 接続を作成できます。COPY はそれぞれのホスト接続を介してコマンドを実行し、コマンドからの出力を並列的にテーブルにロードします。*s3://copy\$1from\$1ssh\$1manifest\$1file* 引数は、マニフェストファイルの Amazon S3 オブジェクトキーを指定します。そのマニフェストファイルは、COPY が SSH 接続を開いてリモートコマンドを実行するために使用する情報を提供します。  
*s3://copy\$1from\$1ssh\$1manifest\$1file* 引数は 1 つのファイルを明示的に参照する必要があります。これをキープレフィックスにすることはできません。例を以下に示します。  

```
's3://amzn-s3-demo-bucket/ssh_manifest.txt'
```
マニフェストファイルは、Amazon Redshift がホストに接続する際に使用する JSON 形式のテキストファイルです。マニフェストファイルでは、SSH ホストのエンドポイント、ならびに、Amazon Redshift にデータを返すためにホストで実行されるコマンドを指定します。このほか、ホストのパブリックキー、ログインユーザー名、および各エントリの必須フラグを記載することもできます。次の例は、2 つの SSH 接続を作成するマニフェストファイルを示しています。  

```
{ 
    "entries": [ 
	    {"endpoint":"<ssh_endpoint_or_IP>", 
           "command": "<remote_command>",
           "mandatory":true, 
           "publickey": "<public_key>", 
           "username": "<host_user_name>"}, 
	    {"endpoint":"<ssh_endpoint_or_IP>", 
           "command": "<remote_command>",
           "mandatory":true, 
           "publickey": "<public_key>", 
           "username": "<host_user_name>"} 
     ] 
}
```
マニフェストファイルには、SSH 接続ごとに 1 つずつ `"entries"` 構造が含まれます。単一のホストに対して接続を複数作成することも、複数のホストに対して複数の接続を作成することもできます。例に示すように、フィールド名と値のどちらにも二重引用符が必要です。引用符の文字は、傾きの付いた "高機能な" 引用符ではなくシンプルな引用符 (0x22) にする必要があります。`"mandatory"` フィールドの中で二重引用符を必要としない値は、`true` または `false` のブール値のみです。  
次のリストでは、マニフェストファイルのフィールドについて説明します。    
endpoint  <a name="copy-ssh-manifest-endpoint"></a>
ホストの URL アドレスまたは IP アドレス (`"ec2-111-222-333.compute-1.amazonaws.com"` や `"198.51.100.0"` など)。  
コマンド  <a name="copy-ssh-manifest-command"></a>
テキスト出力またはバイナリ出力を gzip、lzop、bzip2、zstd 形式で生成する際にホストが実行するコマンド。コマンドは、ユーザー *"host\$1user\$1name"* が実行権限を持つコマンドであれば、どれでも指定できます。ファイルを印刷するなどのシンプルなコマンドでも、データベースにクエリを実行したり、スクリプトを実行したりするコマンドでもかまいません。出力 (テキストファイル、gzip バイナリファイル、lzop バイナリファイル、または bzip2 バイナリファイル) は、Amazon Redshift の COPY コマンドが取り込める形式にする必要があります。詳細については、「[入力データを準備する](t_preparing-input-data.md)」を参照してください。  
publickey  <a name="copy-ssh-manifest-publickey"></a>
(オプション) ホストのパブリックキー。公開キーが指定されている場合、Amazon Redshift は公開キーを使用してホストを特定します。公開キーが指定されていなければ、Amazon Redshift がホストの特定を試みることはありません。例えば、リモートホストのパブリックキーが `ssh-rsa AbcCbaxxx…Example root@amazon.com` であれば、パブリックキーのフィールドには `"AbcCbaxxx…Example"` と入力してください。  
mandatory  <a name="copy-ssh-manifest-mandatory"></a>
(オプション) 接続ができなかった場合に COPY コマンドを失敗とするかどうかを示す句です。デフォルトは `false` です。Amazon Redshift が接続を 1 つも正常に確立できなかった場合に、COPY コマンドが失敗になります。  
username  <a name="copy-ssh-manifest-username"></a>
(オプション) ホストシステムにログオンし、リモートコマンドを実行する際に使用するユーザー名。ユーザーログイン名は、ホストの認可されたキーファイルに Amazon Redshift クラスターの公開キーを追加するときに使用したログイン名と同じものにする必要があります。デフォルトのユーザー名は `redshift` です。
マニフェストファイルの作成の詳細については、「[データをロードする手順](loading-data-from-remote-hosts.md#load-from-host-process)」を参照してください。  
リモートホストから COPY を実行するには、COPY コマンドに SSH パラメータを指定する必要があります。SSH パラメータを指定しない場合、COPY では、FROM で指定されたファイルがデータファイルであると想定され、COPY は失敗します。  
自動圧縮を使用する場合には、COPY コマンドでデータの読み込みオペレーションが 2 回実行されます。つまり、COPY コマンドではリモートコマンドが 2 回実行されることになります。初回の読み取り操作は圧縮の分析用データサンプルを提供するためのものであり、実際にデータがロードされるのは 2 回目の読み取り操作です。リモートコマンドを 2 回実行することが問題になるようであれば、自動圧縮は無効にする必要があります。自動圧縮を無効にするには、COMPUPDATE パラメータを OFF に設定して COPY コマンドを実行します。詳細については、「[自動圧縮ありでテーブルをロードする](c_Loading_tables_auto_compress.md)」を参照してください。  
SSH から COPY を使用するための詳細な手順については、「[リモートホストからデータをロードする](loading-data-from-remote-hosts.md)」を参照してください。

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

SSH  <a name="copy-ssh"></a>
SSH プロトコルを使用してリモートホストからデータがロードされることを指定する句です。SSH を指定する場合は、[s3://copy_from_ssh_manifest_file](#copy-ssh-manifest)引数を使用してマニフェストファイルを指定する必要もあります。  
SSH を使用してリモート VPC でプライベート IP アドレスを使用しているホストからコピーしている場合、VPC は拡張された VPC ルーティングを有効化する必要があります。拡張された VPC ルーティングの詳細については、「[Amazon Redshift 拡張 VPC ルーティング](https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html)」を参照してください。

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

SSH からの 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-ssh-unsupported-parms"></a>

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

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

既存の DynamoDB テーブルからデータをロードするには、FROM 句を使用して DynamoDB テーブル名を指定します。

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

**重要**  
DynamoDB テーブルが Amazon Redshift クラスターと同じリージョンに存在しない場合は、REGION パラメータを使用して、データがあるリージョンを指定する必要があります。

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

```
FROM 'dynamodb://table-name' 
authorization
READRATIO ratio
| REGION [AS] 'aws_region'  
| optional-parameters
```

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

次の例では、DynamoDB テーブルからデータをロードします。

```
copy favoritemovies from 'dynamodb://ProductCatalog'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
readratio 50;
```

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

FROM  
ロードするデータのソースです。

'dynamodb://*table-name*'  <a name="copy-dynamodb"></a>
データが入った DynamoDB テーブルの名前 (`'dynamodb://ProductCatalog'` など)。DynamoDB で Amazon Redshift 列に属性がマッピングされる方法の詳細については、[Amazon DynamoDB テーブルからのデータのロード](t_Loading-data-from-dynamodb.md)を参照してください。  
DynamoDB テーブル名は AWS アカウントに固有のものです。アカウントは AWS アクセス認証情報によって識別されます。

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

READRATIO [AS] *ratio*  <a name="copy-readratio"></a>
データロードに使用する DynamoDB テーブルのプロビジョニングされたスループットの比率です。READRATIO は DynamoDB からの COPY では必須です。Amazon S3 からの COPY の実行には使用できません。この割合については、未使用のプロビジョニングされたスループットの平均よりも小さい値に設定することを強くお勧めします。有効な値は、1～200 の整数です。  
READRATIO を 100 以上に設定すると、Amazon Redshift で DynamoDB テーブルのプロビジョニングされたスループット全体を使用できるようになり、COPY セッション中に同じテーブルに対する同時読み込みオペレーションのパフォーマンスが大きく低下します。書き込みトラフィックは影響を受けません。Amazon Redshift がテーブルのプロビジョニングされたスループットを満たさないまれなシナリオをトラブルシューティングする場合には、100 を超える値を使用できます。DynamoDB から Amazon Redshift に継続的にデータをロードする場合、DynamoDB テーブルを時系列テーブルとして編成し、COPY 操作からライブトラフィックを分離することを検討してください。

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

Amazon DynamoDB からの COPY では、オプションで次のパラメータを指定できます。
+ [列のマッピングオプション](copy-parameters-column-mapping.md)
+ 次のデータ変換パラメータがサポートされています。
  + [ACCEPTANYDATE](copy-parameters-data-conversion.md#copy-acceptanydate) 
  + [BLANKSASNULL](copy-parameters-data-conversion.md#copy-blanksasnull) 
  + [DATEFORMAT](copy-parameters-data-conversion.md#copy-dateformat) 
  + [EMPTYASNULL](copy-parameters-data-conversion.md#copy-emptyasnull) 
  + [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) 
+ [データのロード操作](copy-parameters-data-load.md)

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

DynamoDB からの COPY では、次のパラメータは使用できません。
+ 全データ形式パラメータ
+ ESCAPE
+ FILLRECORD
+ IGNOREBLANKLINES
+ IGNOREHEADER
+ NULL
+ REMOVEQUOTES
+ ACCEPTINVCHARS
+ MANIFEST
+ ENCRYPTED