建立 範本 - Amazon Redshift

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

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

建立 範本

為 Amazon Redshift 命令建立可重複使用的範本,例如 COPY。範本存放可在多個命令執行中參考的常用參數,可改善一致性並降低手動參數規格。

範本不需要跨多個操作重複指定相同的格式參數,而來源路徑、目標資料表和授權可能因操作而異。

所需權限

若要建立範本,您必須具有下列其中一項:

  • 超級使用者權限

  • 您要建立範本之結構描述的 CREATE 許可,或您要建立範本之資料庫中結構描述的 CREATE 範圍許可

語法

CREATE [ OR REPLACE ] TEMPLATE [database_name.][schema_name.]template_name FOR COPY [ AS ] [ [ FORMAT ] [ AS ] data_format ] [ parameter [ argument ] [ , ... ] ];

Parameters

或 取代

如果指定資料庫和結構描述中已存在同名的範本,則會取代現有的範本。您只能將範本取代為定義相同操作類型的新範本,例如 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 命令。

【 【 格式】 【 AS 】 data_format

這是選擇性的參數。這會指定 COPY 操作的資料格式。

參數 【 引數 】】

指定 redshift 命令的任何有效參數。

例如,COPY 命令的範本可包含:

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

使用須知

  • 根據預設,所有使用者對 PUBLIC 結構描述都具有 CREATE 和 USAGE 權限。若要不允許使用者在資料庫的 PUBLIC 結構描述內建立物件,請使用 REVOKE 命令來移除該權限。

  • 當範本和命令中都存在參數時,命令參數優先。

  • 範本是資料庫物件,並遵循標準 Redshift 物件命名和許可規則。如需有效名稱的相關資訊,請參閱 名稱與識別碼

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

限制

  • 建立範本時,必須至少指定一個參數。

  • 排除參數 – 範本中不能包含命令特定的參數,例如來源路徑、目標資料表、授權登入資料和資訊清單檔案規格。這些參數必須在實際命令中指定。

  • 每個叢集的範本上限 – 每個叢集最多可以建立 1,000 個範本。此限制適用於叢集中所有資料庫和結構描述的範本總數。

  • 跨資料庫參考 – 範本無法跨資料庫參考。

  • 資料共用 – 範本不能包含在資料共用中。範本必須在需要它們的每個叢集中個別建立。

範例

下列範例會建立 COPY 命令的範本

CREATE TEMPLATE test_schema.demo_template FOR COPY AS FORMAT JSON 'auto' NULL AS '' MAXERROR 100;

使用 顯示範本取得範本的定義:

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": "" }