

 Amazon Redshift는 패치 198부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. 기존 Python UDF는 2026년 6월 30일까지 계속 작동합니다. 자세한 내용은 [블로그 게시물](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)을 참조하세요.

# CREATE TEMPLATE
<a name="r_CREATE_TEMPLATE"></a>

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

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

## 필수 권한
<a name="r_CREATE_TEMPLATE-privileges"></a>

템플릿을 생성하려면 다음 중 하나가 있어야 합니다.
+ 수퍼유저 권한
+ 템플릿을 생성하려는 스키마에 대한 CREATE 권한 또는 템플릿을 생성하려는 데이터베이스의 스키마에 대한 CREATE 범위 지정 권한

## 구문
<a name="r_CREATE_TEMPLATE-synopsis"></a>

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

## 파라미터
<a name="r_CREATE_TEMPLATE-parameters"></a>

 *OR REPLACE*   
동일한 이름의 템플릿이 지정된 데이터베이스 및 스키마에 이미 있는 경우 기존 템플릿이 대체됩니다. 템플릿을 COPY와 같이 동일한 작업 유형을 정의하는 새 템플릿으로만 바꿀 수 있습니다. 템플릿을 교체하는 데 필요한 권한이 있어야 합니다.

*database\_name*  
(선택 사항) 템플릿이 생성되는 데이터베이스의 이름입니다. 지정하지 않으면 템플릿이 현재 데이터베이스에 생성됩니다.  
데이터베이스 또는 스키마가 존재하지 않는 경우 템플릿이 생성되지 않으며, 이 명령문은 오류를 반환합니다. 시스템 데이터베이스 `template0`, `template1`, `padb_harvest` 또는 `sys:internal`에서는 템플릿을 생성할 수 없습니다.

*schema\_name*  
(선택 사항) 템플릿을 생성할 스키마의 이름입니다. 지정하지 않으면 템플릿이 현재 스키마에 생성됩니다.  
스키마 이름이 주어지는 경우 새 템플릿은 그 스키마에서 생성됩니다(생성자가 해당 스키마에 액세스할 수 있다고 가정). 템플릿 이름은 그 스키마에 대한 고유한 이름이어야 합니다.

*template\_name*  
생성될 템플릿의 이름입니다. 선택적으로, 데이터베이스 및 스키마 이름으로 템플릿 이름을 정규화할 수 있습니다. 다음 예에서는 데이터베이스 이름이 `demo_database`이고, 스키마 이름은 `demo_schema`이며, 템플릿 이름은 `test`입니다. 유효한 이름에 대한 자세한 내용은 [이름 및 식별자](r_names.md) 섹션을 참조하세요.  

```
CREATE TEMPLATE demo_database.demo_schema.test FOR COPY AS CSV;
```

COPY  
템플릿이 생성되는 Redshift 명령 유형을 지정합니다. 현재는 COPY 명령만 지원됩니다.

[ [ 형식 ] [ AS ] *data\_format* ]   
이는 선택 가능한 파라미터입니다. COPY 작업의 데이터 형식을 지정합니다.

[ *파라미터* [ 인수 ]]  
지정된 redshift 명령에 유효한 파라미터입니다.  
예를 들어 COPY 명령의 템플릿에는 다음이 포함될 수 있습니다.  
+ [데이터 형식 파라미터](copy-parameters-data-format.md)
+ [파일 압축 파라미터](copy-parameters-file-compression.md)
+ [데이터 변환 파라미터](copy-parameters-data-conversion.md)
+ [데이터 로드 작업](copy-parameters-data-load.md)
지원되는 파라미터의 전체 목록은 [COPY](r_COPY.md) 명령을 참조하세요.

### 사용 노트
<a name="create_template-usage-notes"></a>
+ 기본적으로, 모든 사용자는 PUBLIC 스키마에 대해 CREATE 및 USAGE 권한이 있습니다. 사용자가 데이터베이스의 PUBLIC 스키마에 객체를 만들도록 허용하지 않으려면 REVOKE 명령을 사용하여 그 권한을 제거하세요.
+ 템플릿과 명령 모두에 파라미터가 있는 경우 명령 파라미터가 우선합니다.
+ 템플릿은 데이터베이스 객체이며 표준 Redshift 객체 이름 지정 및 권한 규칙을 따릅니다. 유효한 이름에 대한 자세한 내용은 [이름 및 식별자](r_names.md) 섹션을 참조하세요.
+ 템플릿에는 [COPY](r_COPY.md) 명령에 대한 매니페스트 파일 사양이 포함될 수 없습니다.

### 제한 사항
<a name="create_template-limitations"></a>
+ 템플릿을 생성할 때 하나 이상의 파라미터를 지정해야 합니다.
+ 제외된 파라미터 - 소스 경로, 대상 테이블, 권한 부여 자격 증명, 매니페스트 파일 사양과 같은 명령별 파라미터는 템플릿에 포함할 수 없습니다. 이러한 파라미터는 실제 명령에서 지정해야 합니다.
+ 클러스터당 최대 템플릿 수 - 클러스터당 최대 1,000개의 템플릿을 생성할 수 있습니다. 이 제한은 클러스터의 모든 데이터베이스 및 스키마에 있는 총 템플릿 수에 적용됩니다.
+ 데이터베이스 간 참조 - 데이터베이스 간에 템플릿을 참조할 수 없습니다.
+ 데이터 공유 - 템플릿은 데이터 공유에 포함될 수 없습니다. 템플릿은 필요한 각 클러스터에서 별도로 생성해야 합니다.

## 예제
<a name="r_CREATE_TEMPLATE-examples"></a>

다음 예제에서는 COPY 명령에 대한 템플릿을 생성합니다.

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

[SHOW TEMPLATE](r_SHOW_TEMPLATE.md)을 사용하여 템플릿의 정의를 가져옵니다.

```
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](SYS_REDSHIFT_TEMPLATE.md) 시스템 뷰를 쿼리하여 템플릿에 대한 자세한 내용을 확인합니다.

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