CREATE TEMPLATE - Amazon Redshift

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 .

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