View a markdown version of this page

Uso de um manifesto para especificar arquivos de dados - 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.

Uso de um manifesto para especificar arquivos de dados

Você pode usar um manifesto para garantir que o comando COPY carregue todos os arquivos necessários, e somente os arquivos necessários, para um carregamento de dados. Você pode usar um manifesto para carregar vários arquivos de buckets diferentes ou arquivos que não compartilham o mesmo prefixo. Em vez de fornecer um caminho de objeto para o comando COPY, você fornece o nome de um arquivo de texto em formato JSON que lista explicitamente os arquivos a serem carregados. O URL no manifesto deve especificar o nome de bucket e o caminho de objeto completo para o arquivo, e não apenas um prefixo.

Para obter mais informações sobre arquivos manifesto, consulte o exemplo de COPY Usar um manifesto para especificar arquivos de dados.

O seguinte exemplo mostra o JSON para carregar arquivos de diferentes buckets e com nomes de arquivos que começam com carimbos de data.

{ "entries": [ {"url":"s3://amzn-s3-demo-bucket1/2013-10-04-custdata", "mandatory":true}, {"url":"s3://amzn-s3-demo-bucket1/2013-10-05-custdata", "mandatory":true}, {"url":"s3://amzn-s3-demo-bucket2/2013-10-04-custdata", "mandatory":true}, {"url":"s3://amzn-s3-demo-bucket2/2013-10-05-custdata", "mandatory":true} ] }

O sinalizador opcional mandatory especifica se COPY deve retornar um erro se o arquivo não for localizado. O padrão de mandatory é false. Independentemente de qualquer configuração obrigatória, COPY será encerrado se nenhum arquivo for encontrado.

O exemplo a seguir executa o comando COPY com o manifesto do exemplo anterior, chamado cust.manifest.

COPY customer FROM 's3://amzn-s3-demo-bucket/cust.manifest' IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole' MANIFEST;

Uso de um manifesto criado por UNLOAD

Um manifesto criado por uma operação UNLOAD usando o parâmetro MANIFEST pode ter chaves que não são necessárias para a operação COPY. Por exemplo, o manifesto UNLOAD a seguir inclui uma chave meta que é necessária para uma tabela externa do Amazon Redshift Spectrum e para o carregamento de arquivos de dados em um formato de arquivo ORC ou Parquet. A chave meta contém uma chave content_length com um valor que é o tamanho real do arquivo em bytes. A operação COPY requer somente a chave url uma chave mandatory opcional.

{ "entries": [ {"url":"s3://amzn-s3-demo-bucket/unload/manifest_0000_part_00", "meta": { "content_length": 5956875 }}, {"url":"s3://amzn-s3-demo-bucket/unload/unload/manifest_0001_part_00", "meta": { "content_length": 5997091 }} ] }

Para obter mais informações sobre arquivos manifesto, consulte Example: COPY from Amazon S3 using a manifest.