View a markdown version of this page

COPY 搭配 範本 - Amazon Redshift

Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊,請參閱部落格文章

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

COPY 搭配 範本

您可以使用 Redshift 範本搭配 COPY 命令來簡化命令語法,並確保資料載入操作之間的一致性。您不需要重複指定相同的格式參數,而是在範本中定義一次參數,並在 COPY 命令中參考範本。當您使用範本時,COPY 命令會將範本中的參數與直接在命令中指定的任何參數結合。如果相同的參數同時出現在範本和命令中,則命令參數優先。如需詳細資訊,請參閱建立 範本

COPY 命令的範本可以使用下列項目建立:

如需支援參數的完整清單,請參閱 COPY命令。

所需的許可

若要在 COPY 命令中使用範本,您必須具有:

  • 執行 COPY 命令所需的所有必要許可 (請參閱 所需的許可 )

  • 下列其中一個範本許可:

    • 超級使用者權限

    • 範本上的 USAGE 權限和包含範本之結構描述上的 USAGE 權限

語法

COPY target_table FROM 's3://...' authorization [ option, ...] USING TEMPLATE [database_name.][schema_name.]template_name;

Parameters

database_name

(選用) 範本存在的資料庫名稱。如果未指定,則會使用目前的資料庫。

schema_name

(選用) 範本所在的結構描述名稱。如果未指定,則會在目前的搜尋路徑中搜尋範本。

template_name

要在 COPY 中使用的範本名稱。

使用須知

  • 命令特定的參數 (來源、目的地、授權) 仍必須在 COPY 命令中指定。

  • 範本不能包含 COPY 命令的資訊清單檔案規格。

範例

下列範例示範如何建立範本,並在 COPY 命令中使用範本:

CREATE TEMPLATE public.test_template FOR COPY AS CSV DELIMITER '|' IGNOREHEADER 1 MAXERROR 100; COPY public.target_table FROM 's3://amzn-s3-demo-bucket/staging-folder' IAM_ROLE 'arn:aws:iam::123456789012:role/MyLoadRoleName' USING TEMPLATE public.test_template;

當範本和命令中都存在參數時,命令參數優先。在此範例中,如果範本public.test_template包含 ,DELIMITER '|'但 COPY 命令指定 DELIMITER ',',則會使用命令中的逗號分隔符號 (,),而不是範本中的管道分隔符號 (|)。

COPY public.target_table FROM 's3://amzn-s3-demo-bucket/staging-folder' IAM_ROLE 'arn:aws:iam::123456789012:role/MyLoadRoleName' DELIMITER ',' USING TEMPLATE public.test_template;