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_harvestousys:internaldo 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_schemae 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": "" }