CREATE TEMPLATE - Amazon Redshift

Amazon Redshift는 패치 198부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. 기존 Python UDF는 2026년 6월 30일까지 계속 작동합니다. 자세한 내용은 블로그 게시물을 참조하세요.

CREATE TEMPLATE

COPY와 같은 Amazon Redshift 명령에 재사용 가능한 템플릿을 생성합니다. 템플릿은 여러 명령 실행에서 참조할 수 있는 일반적으로 사용되는 파라미터를 저장하여 일관성을 개선하고 수동 파라미터 사양을 줄입니다.

템플릿은 여러 작업에서 동일한 형식 지정 파라미터를 반복적으로 지정할 필요가 없지만 소스 경로, 대상 테이블 및 권한 부여는 작업마다 다를 수 있습니다.

필수 권한

템플릿을 생성하려면 다음 중 하나가 있어야 합니다.

  • 수퍼유저 권한

  • 템플릿을 생성하려는 스키마에 대한 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 명령만 지원됩니다.

[ [ 형식 ] [ 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을 사용하여 템플릿의 정의를 가져옵니다.

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