Uso de um manifesto para especificar arquivos de dados - Amazon Redshift

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://mybucket-alpha/2013-10-04-custdata", "mandatory":true}, {"url":"s3://mybucket-alpha/2013-10-05-custdata", "mandatory":true}, {"url":"s3://mybucket-beta/2013-10-04-custdata", "mandatory":true}, {"url":"s3://mybucket-beta/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://mybucket/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://mybucket/unload/manifest_0000_part_00", "meta": { "content_length": 5956875 }}, {"url":"s3://mybucket/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.