从补丁 198 开始,Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息,请参阅博客文章
CREATE TEMPLATE
为 Amazon Redshift 命令(例如 COPY)创建可重用的模板。模板存储可在多个命令执行中引用的常用参数,从而提高一致性并减少手动参数规范。
模板消除了在多个操作中重复指定相同格式化参数的需要,而源路径、目标表和授权可能因操作而异。
所需的权限
要创建模板,您必须拥有以下其中一项:
-
超级用户权限
-
对要在其中创建模板的架构拥有 CREATE 权限,或者对要在其中创建模板的数据库中的架构拥有 CREATE 限定范围权限
语法
CREATE [ OR REPLACE ] TEMPLATE [database_name.][schema_name.]template_name FOR COPY [ AS ] [ [ FORMAT ] [ AS ] data_format ] [ parameter [ argument ] [ , ... ] ];
参数
- OR REPLACE
-
如果指定的数据库和架构中已存在同名的模板,则将替换现有模板。您只能将模板替换为定义相同操作类型的新模板,例如 COPY。您必须具有替换模板所需的权限。
- database_name
-
(可选)将在其中创建模板的数据库的名称。如果未指定,则在当前数据库中创建模板。
如果数据库或架构不存在,则不会创建模板,并且语句将返回错误。您无法在系统数据库
template0、template1、padb_harvest或sys:internal中创建模板。 - schema_name
-
(可选)将在其中创建模板的架构的名称。如果未指定,则在当前架构中创建模板。
如果提供了架构名称,则在该架构中创建新模板(假定创建者有权访问架构)。模板名称必须是该架构中的唯一名称。
- template_name
-
要创建的模板的名称。(可选)可以使用数据库名称和架构名称来限定模板名称。在下面的示例中,
demo_database是数据库名称,demo_schema是架构名称,而test是模板名称。有关有效名称的更多信息,请参阅名称和标识符。CREATE TEMPLATE demo_database.demo_schema.test FOR COPY AS CSV; - COPY
-
指定为其创建模板的 Redshift 命令类型。目前仅支持 COPY 命令。
- [ [ FORMAT ] [ AS ] data_format ]
-
此参数为可选参数。这指定了 COPY 操作的数据格式。
- [ parameter [ argument ]]
-
指定的 redshift 命令的任何有效参数。
例如,COPY 命令的模板可能包括:
有关支持的参数的完整列表,请参阅 COPY 命令。
使用说明
限制
创建模板时,必须指定至少一个参数。
排除的参数:模板中不能包含特定于命令的参数,例如源路径、目标表、授权凭证和清单文件规范。这些参数必须在实际命令中指定。
每个集群的最大模板数量:每个集群最多可以创建 1000 个模板。此限制适用于集群中所有数据库和架构的模板总数。
跨数据库引用:不能跨数据库引用模板。
数据共享:模板不能包含在数据共享中。必须在需要模板的每个集群中单独创建模板。
示例
以下示例为 COPY 命令创建一个模板
CREATE TEMPLATE test_schema.demo_template FOR COPY AS FORMAT JSON 'auto' NULL AS '' MAXERROR 100;
使用 SHOW TEMPLATE 获取模板的定义:
SHOW TEMPLATE test_schema.demo_template;CREATE OR REPLACE TEMPLATE dev.test_schema.demo_template FOR COPY AS FORMAT AS JSON 'auto' NULL '' MAXERROR 100;
查询 SYS_REDSHIFT_TEMPLATE 系统视图以获取有关模板的更多详细信息。
SELECT * FROM SYS_REDSHIFT_TEMPLATE;database_name | schema_name | template_name | template_type | create_time | last_modified_time | owner_id | last_modified_by | template_parameters ---------------+-------------+---------------+---------------+----------------------------+----------------------------+----------+------------------+--------------------- dev | test_schema | demo_template | 1 | 2025-12-17 20:06:01.944171 | 2025-12-17 20:06:01.944171 | 1 | 1 | { "JSON": "auto", "MAXERROR": 100, "NULL": "" }