View a markdown version of this page

CREATE TEMPLATE - Amazon Redshift

O Amazon Redshift deixará de oferecer suporte ao uso de UDFs em Python após 30 de junho de 2026. Começaremos a aplicar essa alteração em fases. Consulte mais informações sobre os detalhes do fim da vida útil do Python e as opções de migração na publicação do blog publicada em 30 de junho de 2025.

CREATE TEMPLATE

Cria modelos reutilizáveis para comandos do Amazon Redshift, como COPY. Os modelos armazenam parâmetros comumente usados que podem ser referidos em várias execuções de comando, melhorando a consistência e reduzindo a especificação manual de parâmetros.

Os modelos eliminam a necessidade de especificar repetidamente os mesmos parâmetros de formatação em várias operações, enquanto os caminhos de origem, as tabelas de destino e a autorização podem variar entre as operações.

Privilégios obrigatórios

Para criar um modelo, é necessário ter uma das seguintes opções:

  • Privilégios de superusuário.

  • Permissão CREATE no esquema em que você deseja criar o modelo ou permissão CREATE com escopo nos esquemas no banco de dados em que você deseja criar o modelo

Sintaxe

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

Parâmetros

OR REPLACE

Se um modelo com o mesmo nome já existir no banco de dados e no esquema especificados, o modelo existente será substituído. Só é possível substituir um modelo por um novo modelo que defina o mesmo tipo de operação; por exemplo, COPY. Você deve ter os privilégios necessários para substituir um modelo.

database_name

(Opcional) O nome do banco de dados onde o modelo será criado. Se não especificado, o modelo será criado no banco de dados atual.

Se o banco de dados ou o esquema não existir, o modelo não será criado e a instrução exibirá um erro. Não é possível criar modelos nos bancos de dados template0,template1, padb_harvest ou sys:internal do sistema.

schema_name

(Opcional) O nome do esquema onde o modelo será criado. Se não especificado, o modelo será criado no esquema atual.

Se um nome de esquema for fornecido, o novo modelo será criado no esquema em questão (presumindo que o criador tenha acesso ao esquema). O nome do modelo deve ser exclusivo para o esquema em questão.

template_name

O nome do modelo a ser criado. Como opção, é possível qualificar o nome do modelo com o nome do banco de dados e do esquema. No exemplo a seguir, o nome do banco de dados é demo_database, o nome do esquema é demo_schema e o nome do modelo é test. Para obter mais informações sobre nomes válidos, consulte Nomes e identificadores.

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

Especifica o tipo de comando do Redshift para o qual o modelo foi criado. No momento, é possível usar apenas o comando COPY.

[ [ FORMAT ] [ AS ] data_format ]

Esse parâmetro é opcional. Isso especifica o formato de dados para operações COPY.

[ parameter [ argument ]]

Qualquer parâmetro válido para o comando do Redshift especificado.

Por exemplo, os modelos para o comando COPY podem incluir:

Para ver uma lista completa de parâmetros compatíveis, consulte o comando COPY.

Observações de uso

  • Por padrão, todos os usuários têm privilégios CREATE e USAGE no esquema PUBLIC. Para impedir que usuários criem objetos no esquema PUBLIC de um banco de dados, use o comando REVOKE para remover esse privilégio.

  • Quando existe um parâmetro no modelo e no comando, o parâmetro do comando tem precedência.

  • Os modelos são objetos de banco de dados e seguem as regras padrão de nomeação e permissão de objetos do Redshift. Para obter mais informações sobre nomes válidos, consulte Nomes e identificadores.

  • Os modelos não podem conter especificações de arquivo de manifesto para o comando COPY.

Limitações

  • Pelo menos um parâmetro deve ser especificado ao criar um modelo.

  • Parâmetros excluídos: parâmetros específicos de comando, como caminhos de origem, tabelas de destino, credenciais de autorização e especificações de arquivos de manifesto, não podem ser incluídos nos modelos. Esses parâmetros devem ser especificados no comando real.

  • Número máximo de modelos por cluster: é possível criar um máximo de 1.000 modelos por cluster. Esse limite se aplica ao número total de modelos em todos os bancos de dados e esquemas no cluster.

  • Referências entre bancos de dados: não é possível referir modelos em bancos de dados.

  • Compartilhamento de dados: não é possível incluir modelos em unidades de compartilhamentos de dados. Os modelos devem ser criados separadamente em cada cluster em que são necessários.

Exemplos

O exemplo a seguir cria um modelo para o comando COPY.

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

Use SHOW TEMPLATE para obter a definição do modelo:

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;

Consulte a visualização SYS_REDSHIFT_TEMPLATE do sistema para obter mais detalhes sobre um modelo.

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