

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 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;
```

### Parameters
<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\_from\_s3\_objectpath*'  <a name="copy-s3-objectpath"></a>
指定含有資料之 Amazon S3 物件的路徑 Amazon S3 - 例如 `'s3://amzn-s3-demo-bucket/custdata.txt'`。*s3://copy\_from\_s3\_objectpath* 參數可以參考單一檔案，或一組有相同金鑰前綴的物件或資料夾。例如，`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\_from\_s3\_manifest\_file*'  <a name="copy-manifest-file"></a>
指定資訊清單檔案 (列出要載入的資料檔案) 的 Amazon S3 物件金鑰。*'s3://*copy\_from\_s3\_manifest\_file'** 引數必須明確參考單一檔案 - 例如 `'s3://amzn-s3-demo-bucket/manifest.txt'`。無法參考金鑰前綴。  
清單檔案是 JSON 格式的文字檔案，其中列出要從 Amazon S3 載入之每個檔案的 URL。URL 包含檔案的儲存貯體名稱和完整物件路徑。資訊清單中指定的檔案可以位於不同的儲存貯體，但所有儲存貯體都必須位於與 Amazon Redshift 叢集相同的 AWS 區域。如果某個檔案列出兩次，則該檔案會載入兩次。下列範例顯示資訊清單的 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`。  
載入格式為 ORC 或 Parquet 的資料檔案時，需要 `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\_from\_s3\_manifest\_file'* 參考的資訊清單中所列的檔案載入資料。如果找不到資訊清單檔案，或此檔案的格式不正確，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) 參數，或在 [使用 CREDENTIALS 參數](copy-parameters-authorization.md#copy-credentials) 字串中包含 **master\_symmetric\_key** 值。  
如果加密檔案是壓縮格式，請增加 GZIP、LZOP、BZIP2 或 ZSTD 參數。  
即使指定 ENCRYPTED 選項，也不得對資訊清單檔案和 JSONPaths 檔案進行加密。

MASTER\_SYMMETRIC\_KEY '*root\_key*'  <a name="copy-master-symmetric-key"></a>
用於將 Amazon S3 上的資料檔案加密的根對稱金鑰。如果指定 MASTER\_SYMMETRIC\_KEY，則還必須指定 [ENCRYPTED](#copy-encrypted) 參數。MASTER\_SYMMETRIC\_KEY 不能與 CREDENTIALS 參數一起使用。如需詳細資訊，請參閱[從 Amazon S3 載入加密的資料檔案](c_loading-encrypted-files.md)。  
如果加密檔案是壓縮格式，請增加 GZIP、LZOP、BZIP2 或 ZSTD 參數。

REGION [AS] '*aws-region*'  <a name="copy-region"></a>
指定來源資料所在的 AWS 區域。當含有資料的 AWS 資源所在區域與 Amazon Redshift 叢集的區域不是同一個區域時，從 Amazon S3 儲存貯體或 DynamoDB 資料表的 COPY 需要 REGION。  
*aws\_region* 的值必須符合 [Amazon Redshift 區域與端點](https://docs.aws.amazon.com/general/latest/gr/rande.html#redshift_region)資料表所列的區域。  
如果指定 REGION 參數，則所有資源 (包括資訊清單檔案或多個 Amazon S3 儲存貯體) 都必須位於指定的區域。  
跨區域傳輸資料需要為含有資料的 Amazon S3 儲存貯體或 DynamoDB 資料表另外付費。如需定價的詳細資訊，請參閱 **Amazon S3 定價頁面上從 Amazon S3 傳出至其他 AWS 區域的資料傳輸**，以及 [Amazon DynamoDB 定價](https://aws.amazon.com/dynamodb/pricing/)頁面上的 **傳出資料傳輸**。 [Amazon S3 ](https://aws.amazon.com/s3/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