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 명령을 참조하세요.
사용 노트
제한 사항
템플릿을 생성할 때 하나 이상의 파라미터를 지정해야 합니다.
제외된 파라미터 - 소스 경로, 대상 테이블, 권한 부여 자격 증명, 매니페스트 파일 사양과 같은 명령별 파라미터는 템플릿에 포함할 수 없습니다. 이러한 파라미터는 실제 명령에서 지정해야 합니다.
클러스터당 최대 템플릿 수 - 클러스터당 최대 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": "" }