View a markdown version of this page

COPIAR com MODELO - 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 .

COPIAR com MODELO

É 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.

Os modelos para o comando COPY podem ser criados com:

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

Permissão obrigatória

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).

  • 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

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

Parâmetros

database_name

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

schema_name

(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_name

O nome do modelo a ser usado em COPY.

Observações de uso

  • 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

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;