從 Amazon S3 進行 COPY - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

從 Amazon S3 進行 COPY

若要從位於一或多個 S3 儲存貯體的檔案載入資料,請使用 FROM 子句來指出 COPY 如何尋找 Amazon S3 中的檔案。您可以在 FROM 子句中提供資料檔案的物件路徑,或提供資訊清單檔案 (包含 Amazon S3 物件路徑清單) 的位置。來自 Amazon S3 的 COPY 會使用 HTTPS 連線。確定 S3 IP 範圍已新增至您的允許清單。若要進一步了解所需的 S3 IP 範圍,請參閱網路隔離

重要

如果存放資料檔案的 Amazon S3 儲存貯體所在區域與叢集的 AWS 區域不是同一個,您必須使用 REGION 參數來指定資料所在的區域。

語法

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

範例

下列範例使用物件路徑以從 Amazon S3 載入資料。

copy customer from 's3://mybucket/customer' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';

下列範例使用資訊清單檔案以從 Amazon S3 載入資料。

copy customer from 's3://mybucket/cust.manifest' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' manifest;

參數

FROM

載入的資料來源。如需有關 Amazon S3 檔案編碼的詳細資訊,請參閱資料轉換參數

's3://copy_from_s3_objectpath'

指定含有資料之 Amazon S3 物件的路徑 Amazon S3 - 例如 's3://mybucket/custdata.txt's3://copy_from_s3_objectpath 參數可以參考單一檔案,或一組有相同金鑰前綴的物件或資料夾。例如,custdata.txt 這個名稱是參考一些實體檔案的金鑰前綴:custdata.txtcustdata.txt.1custdata.txt.2custdata.txt.bak 等。金鑰前綴也可以參考一些資料夾。例如,'s3://mybucket/custfolder' 參考資料夾 custfoldercustfolder_1custfolder_2 等。如果金鑰前綴參考多個資料夾,則會載入這些資料夾中的所有檔案。如果金鑰前綴符合檔案又符合資料夾,例如 custfolder.log,COPY 也會嘗試載入此檔案。如果金鑰前綴可能導致 COPY 嘗試載入不需要的檔案,請使用資訊清單檔案。如需詳細資訊,請參閱下列 copy_from_s3_manifest_file

重要

如果存放資料檔案的 S3 儲存貯體所在區域與叢集的 AWS 區域不是同一個,您必須使用 REGION 參數來指定資料所在的區域。

如需詳細資訊,請參閱從 Amazon S3 載入資料

's3://copy_from_s3_manifest_file'

指定資訊清單檔案 (列出要載入的資料檔案) 的 Amazon S3 物件金鑰。's3://copy_from_s3_manifest_file' 引數必須明確參考單一檔案 - 例如 's3://mybucket/manifest.txt'。無法參考金鑰前綴。

清單檔案是 JSON 格式的文字檔案,其中列出要從 Amazon S3 載入之每個檔案的 URL。URL 包含檔案的儲存貯體名稱和完整物件路徑。清單檔案中指定的檔案可以位於不同儲存貯體,但所有儲存貯體必須位於 Amazon Redshift 叢集所在的同一 AWS 區域。如果某個檔案列出兩次,則該檔案會載入兩次。下列範例顯示資訊清單的 JSON,此資訊清單會載入三個檔案。

{ "entries": [ {"url":"s3://mybucket-alpha/custdata.1","mandatory":true}, {"url":"s3://mybucket-alpha/custdata.2","mandatory":true}, {"url":"s3://mybucket-beta/custdata.1","mandatory":false} ] }

雙引號字元是必要的,且必須是簡單引號 (0x22),而不是斜向或「智慧型」引號。資訊清單中的每個項目可以選擇性包含 mandatory 旗標。如果 mandatory 設為 true,COPY 找不到該項目的檔案時會終止;否則,COPY 會繼續。mandatory 的預設值為 false

載入格式為 ORC 或 Parquet 的資料檔案時,需要 meta 欄位,如下列範例所示。

{ "entries":[ { "url":"s3://mybucket-alpha/orc/2013-10-04-custdata", "mandatory":true, "meta":{ "content_length":99 } }, { "url":"s3://mybucket-beta/orc/2013-10-05-custdata", "mandatory":true, "meta":{ "content_length":99 } } ] }

即使指定 ENCRYPTED、GZIP、LZOP、BZIP2 或 ZSTD 選項,也不可對資訊清單檔案進行加密或壓縮。如果找不到指定的資訊清單檔案,或資訊清單檔案的格式不正確,COPY 會傳回錯誤。

如果使用資訊清單檔案,則必須使用 COPY 命令指定 MANIFEST 參數。如果未指定 MANIFEST 參數,COPY 會假設 FROM 指定的檔案是資料檔案。

如需詳細資訊,請參閱從 Amazon S3 載入資料

authorization

COPY 命令需要取得授權來存取另一個 AWS 資源中 (包括在 Amazon S3、Amazon EMR、Amazon DynamoDB 和 Amazon EC2 中) 的資料。您可以參考附加至叢集的 AWS Identity and Access Management (IAM) 角色 (角色型存取控制),或將存取憑證提供給 IAM 使用者 (金鑰型存取控制),以提供此授權。為了提高安全性和彈性,建議使用 IAM 角色型存取控制。如需詳細資訊,請參閱授權參數

MANIFEST

指定使用清單檔案來指出要從 Amazon S3 載入的資料檔案。如果使用 MANIFEST 參數,COPY 會從 's3://copy_from_s3_manifest_file' 參考的資訊清單中所列的檔案載入資料。如果找不到資訊清單檔案,或此檔案的格式不正確,COPY 會失敗。如需詳細資訊,請參閱使用資訊清單指定資料檔案

ENCRYPTED

此子句指定 Amazon S3 上的輸入檔案是以用戶端加密搭配客戶管理金鑰來加密。如需詳細資訊,請參閱從 Amazon S3 載入加密的資料檔案。如果輸入檔案是以 Amazon S3 伺服器端加密 (SSE-KMS 或 SSE-S3) 所加密,請勿指定 ENCRYPTED。COPY 會自動讀取伺服器端加密檔案。

如果指定 ENCRYPTED 參數,則還必須指定 MASTER_SYMMETRIC_KEY 參數,或在 CREDENTIALS 字串中包含 master_symmetric_key 值。

如果加密檔案是壓縮格式,請增加 GZIP、LZOP、BZIP2 或 ZSTD 參數。

即使指定 ENCRYPTED 選項,也不得對資訊清單檔案和 JSONPaths 檔案進行加密。

MASTER_SYMMETRIC_KEY 'root_key'

用於將 Amazon S3 上的資料檔案加密的根對稱金鑰。如果指定 MASTER_SYMMETRIC_KEY,則還必須指定 ENCRYPTED 參數。MASTER_SYMMETRIC_KEY 不能與 CREDENTIALS 參數一起使用。如需詳細資訊,請參閱從 Amazon S3 載入加密的資料檔案

如果加密檔案是壓縮格式,請增加 GZIP、LZOP、BZIP2 或 ZSTD 參數。

REGION [AS] 'aws-region'

指定來源資料所在的 AWS 區域。當含有資料的 AWS 資源所在區域與 Amazon Redshift 叢集的區域不是同一個區域時,從 Amazon S3 儲存貯體或 DynamoDB 資料表的 COPY 需要 REGION。

aws_region 的值必須符合 Amazon Redshift 區域與端點資料表所列的區域。

如果指定 REGION 參數,則所有資源 (包括資訊清單檔案或多個 Amazon S3 儲存貯體) 都必須位於指定的區域。

注意

跨區域傳輸資料需要為含有資料的 Amazon S3 儲存貯體或 DynamoDB 資料表另外付費。如需有關定價的詳細資訊,請參閱 Amazon S3 定價頁面上的資料從 Amazon S3 傳出到其他 AWS 區域Amazon DynamoDB 定價頁面上的資料傳出

根據預設,COPY 會假設資料與 Amazon Redshift 叢集位於相同區域。

選用的參數

從 Amazon S3 COPY 時,您可以選擇性指定下列參數:

不支援的參數

從 Amazon S3 COPY 時,您不能使用下列參數:

  • SSH

  • READRATIO