Carregar dados de arquivos compactados e não compactados - Amazon Redshift

Carregar dados de arquivos compactados e não compactados

Ao carregar dados compactados, recomendamos dividir os dados de cada tabela em vários arquivos. Quando você carrega dados descompactados e delimitados, o comando COPY usa processamento paralelo em massa (MPP) e intervalos de varredura para carregar dados de arquivos grandes em um bucket do Amazon S3.

Carregar dados de vários arquivos compactados

Caso você tenha dados compactados, recomendamos dividir os dados de cada tabela em vários arquivos. O comando COPY pode carregar dados a partir de vários arquivos em paralelo. Você pode carregar vários arquivos especificando um prefixo comum ou prefixo de chave para o conjunto ou listando explicitamente os arquivos em um arquivo manifesto.

Divida seus dados em arquivos de modo que o número de arquivos seja um múltiplo do número de fatias em seu cluster. Assim, o Amazon Redshift pode dividir os dados igualmente entre as fatias. O número de fatias por nó depende do tamanho do nó do cluster. Por exemplo, cada nó de computação dc2.large tem duas fatias e cada nó de computação dc2.8xlarge tem 16 fatias. Para obter mais informações sobre o número de fatias que cada tamanho de nó possui, consulte “Clusters e nós no Amazon Redshift” no Guia de gerenciamento de clusters do Amazon Redshift.

Todos os nós participam da execução de consultas paralelas, trabalhando nos dados que são distribuídos da maneira mais uniforme possível pelas fatias. Caso tenha um cluster com dois nós dc2.large, você poderá dividir os dados em quatro arquivos ou em um múltiplo de quatro. O Amazon Redshift não leva em conta o tamanho do arquivo ao dividir o workload. Desse modo, você precisa garantir que os arquivos tenham aproximadamente o mesmo tamanho, de 1 MB a 1 GB, após a compactação.

Para usar prefixos de objeto para identificar arquivos de carregamento, nomeie cada arquivo com um prefixo comum. Por exemplo, você poderá dividir o arquivo venue.txt em quatro arquivos, do modo a seguir.

venue.txt.1 venue.txt.2 venue.txt.3 venue.txt.4

Ao colocar vários arquivos em uma pasta de seu bucket, você pode especificar o nome da pasta como o prefixo, e o COPY carregará todos os arquivos na pasta. Se você explicitamente listar os arquivos a serem carregador usando um arquivo manifesto, os arquivos podem residir em buckets ou pastas diferentes.

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

Carregar dados de arquivos descompactados e delimitados

Ao carregar dados delimitados e descompactados, o comando COPY usa a arquitetura de processamento paralelo em massa (MPP) no Amazon Redshift. O Amazon Redshift usa automaticamente fatias que trabalham em paralelo para carregar intervalos de dados de um arquivo grande para um bucket do Amazon S3. Para que o carregamento paralelo ocorra, o arquivo deve ser delimitado. Por exemplo, delimitado por barras verticais. O carregamento de dados automático e paralelo com o comando COPY também está disponível para arquivos CSV. Você também pode utilizar o processamento paralelo configurando chaves de distribuição em suas tabelas. Para obter mais informações sobre chaves de distribuição, consulte Trabalhar com estilos de distribuição de dados.

O carregamento paralelo automático não é compatível quando a consulta COPY inclui uma das seguintes palavras-chave: ESCAPE, REMOVEQUOTES e FIXEDWIDTH.

Os dados dos arquivos são carregados em uma tabela de destino, uma linha por linha da tabela. Os campos no arquivo de dados são correspondidos com as colunas da tabela em ordem, da esquerda para a direita. Os campos nos arquivos de dados podem ser de largura fixa ou delimitados por caracteres; o delimitador padrão é um pipe (|). Por padrão, todas as colunas da tabela são carregadas, mas você pode, opcionalmente, definir uma lista de colunas separadas por vírgula. Se a tabela não estiver incluída na lista de colunas especificada no comando COPY, ela será carregada com um valor padrão. Para ter mais informações, consulte Carregamento de valores padrão de coluna.

Siga este processo geral para carregar dados do Amazon S3 quando os dados são descompactados e delimitados:

  1. Faça upload de seus arquivos para o Amazon S3.

  2. Execute um comando COPY para carregar a tabela.

  3. Verifique se os dados foram carregados corretamente.

Para obter exemplos de comandos COPY, consulte Exemplos de COPY. Para obter informações sobre dados carregados no Amazon Redshift, verifique as tabelas de sistema STL_LOAD_COMMITS e STL_LOAD_ERRORS.

Para obter mais informações sobre nós e as fatias contidas em cada um deles, consulte “Clusters e nós no Amazon Redshift” no Guia de gerenciamento de clusters do Amazon Redshift.