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;