COPY從 Amazon S3 - Amazon Redshift

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

COPY從 Amazon S3

若要從位於一或多個 S3 儲存貯體中的檔案載入資料,請使用FROM子句指示如何在 Amazon S3 中COPY找到檔案。您可以提供資料檔案的物件路徑做為FROM子句的一部分,也可以提供包含 Amazon S3 物件路徑清單的資訊清單檔案的位置。COPY從 Amazon S3 使用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://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;

參數

FROM

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

's3://copy_from_s3_objectpath'

指定含有資料之 Amazon S3 物件的路徑 Amazon S3 - 例如 's3://amzn-s3-demo-bucket/custdata.txt's3://copy_from_s3_objectpath 參數可以參考單一檔案,或一組有相同金鑰前綴的物件或資料夾。例如,custdata.txt 這個名稱是參考一些實體檔案的金鑰前綴:custdata.txtcustdata.txt.1custdata.txt.2custdata.txt.bak 等。金鑰前綴也可以參考一些資料夾。例如,'s3://amzn-s3-demo-bucket/custfolder' 參考資料夾 custfoldercustfolder_1custfolder_2 等。如果金鑰前綴參考多個資料夾,則會載入這些資料夾中的所有檔案。如果 key prefix 符合檔案以及資料夾 (例如)custfolder.log,也會COPY嘗試載入檔案。如果 key prefix 可能導致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://amzn-s3-demo-bucket/manifest.txt'。無法參考金鑰前綴。

資訊清單是JSON格式的文字檔案,其URL中列出要從 Amazon S3 載入的每個檔案。包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 旗標。如果設定mandatorytrue,如果找不到該項目的檔案,就會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 } } ] }

即使已指定、、、或ZSTD選項,資訊清單檔案也不得加密或壓縮。ENCRYPTED GZIP LZOP BZIP2COPY如果找不到指定的清單文件或清單文件格式不正確,則返回錯誤。

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

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

authorization

該COPY命令需要授權才能存取其他 AWS 資源中的資料,包括 Amazon S3、Amazon EMR、Amazon DynamoDB 和亞馬遜。EC2您可以參考附加至叢集的 AWS Identity and Access Management (IAM) 角色 (以角色為基礎的存取控制) 或提供使用者的存取認證 (以金鑰為基礎的存取控制),來提供該授權。為了提高安全性和靈活性,我們建議使用IAM基於角色的訪問控制。如需詳細資訊,請參閱授權參數

MANIFEST

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

ENCRYPTED

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

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

如果加密檔案為壓縮格式,請新增GZIPLZOP、BZIP2、或ZSTD參數。

即使指定了ENCRYPTED選項,資訊清單JSONPaths檔案和檔案也不能加密。

MASTERSYMMETRIC_ KEY '根密鑰'

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

如果加密檔案為壓縮格式,請新增GZIPLZOP、BZIP2、或ZSTD參數。

REGION[AS] 'aws-region'

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

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

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

注意

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

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

選用的參數

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

不支援的參數

您不能在 Amazon S3 COPY 中使用以下參數:

  • SSH

  • READRATIO