

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# COPIAR com MODELO
<a name="r_COPY-WITH-TEMPLATE"></a>

É possível usar modelos do Redshift com comandos COPY para simplificar a sintaxe dos comandos e garantir a consistência nas operações de carregamento de dados. Em vez de especificar os mesmos parâmetros de formatação repetidamente, defina-os uma vez em um modelo e faça referência ao modelo em seus comandos COPY. Quando você usa um modelo, o comando COPY associa os parâmetros do modelo a quaisquer parâmetros especificados diretamente no comando. Se o mesmo parâmetro aparecer no modelo e no comando, o parâmetro do comando terá precedência. Para obter mais informações, consulte [CREATE TEMPLATE](r_CREATE_TEMPLATE.md). 

Os modelos para o comando COPY podem ser criados com:
+ [Parâmetros de formato de dados](copy-parameters-data-format.md)
+ [Parâmetros de compactação de arquivo](copy-parameters-file-compression.md)
+ [Parâmetros da conversão de dados](copy-parameters-data-conversion.md)
+ [Operações de carregamento de dados](copy-parameters-data-load.md)

Para ver uma lista completa de parâmetros compatíveis, consulte o comando [COPY](r_COPY.md).

## Permissão obrigatória
<a name="r_COPY-WITH-TEMPLATE-privileges"></a>

Para usar um modelo em um comando COPY, você deve ter:
+ Todas as permissões necessárias para executar o comando COPY (consulte [Permissões obrigatórias](r_COPY.md#r_COPY-permissions)).
+ Uma das seguintes permissões de modelo:
  + Privilégios de superusuário.
  + Privilégio USAGE no modelo e privilégio USAGE no esquema que contém o modelo.

## Sintaxe
<a name="r_COPY-WITH-TEMPLATE-syntax"></a>

```
COPY target_table FROM 's3://...'
authorization
[ option, ...]
USING TEMPLATE [database_name.][schema_name.]template_name;
```

## Parâmetros
<a name="r_COPY-WITH-TEMPLATE-parameters"></a>

 *database\$1name*   
(Opcional) O nome do banco de dados no qual o modelo existe. Se não especificado, será usado o banco de dados atual.

 *schema\$1name*   
(Opcional) O nome do esquema no qual o modelo existe. Se não for especificado, o modelo será pesquisado no caminho de pesquisa atual.

 *template\$1name*   
O nome do modelo a ser usado em COPY. 

## Observações de uso
<a name="r_COPY-WITH_TEMPLATE-usage-notes"></a>
+ Os parâmetros específicos do comando (origem, destino e autorização) ainda devem ser especificados no comando COPY.
+ Os modelos não podem conter especificações de arquivo de manifesto para comandos COPY.

## Exemplos
<a name="r_COPY-WITH-TEMPLATE-examples"></a>

Os seguintes exemplos mostram como criar um modelo e usá-lo em comandos COPY:

```
CREATE TEMPLATE public.test_template FOR COPY AS
CSV DELIMITER '|' IGNOREHEADER 1 MAXERROR 100;

COPY public.target_table
FROM 's3://amzn-s3-demo-bucket/staging-folder'
IAM_ROLE 'arn:aws:iam::123456789012:role/MyLoadRoleName'
USING TEMPLATE public.test_template;
```

Quando existe um parâmetro no modelo e no comando, o parâmetro do comando tem precedência. Neste exemplo, se o modelo `public.test_template` contiver `DELIMITER '|'`, mas o comando COPY especificar `DELIMITER ','`, o delimitador de vírgula (`,`) do comando será usado em vez do delimitador de barra vertical (`|`) do modelo. 

```
COPY public.target_table
FROM 's3://amzn-s3-demo-bucket/staging-folder'
IAM_ROLE 'arn:aws:iam::123456789012:role/MyLoadRoleName'
DELIMITER ','
USING TEMPLATE public.test_template;
```