Exportar dados do AWS Redshift para AWS S3

Exportar dados do AWS Redshift para AWS S3

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


Este artigo fornece uma explicação passo a passo de como exportar dados do banco de dados AWS Redshift para o AWS S3 usando diferentes opções relacionadas à exportação.

Introdução

A importação e exportação de dados de repositórios de dados é um processo de administração de dados padrão. De desenvolvedores a administradores, quase todos precisam extrair os dados dos sistemas de gerenciamento de banco de dados. No conceito AWS Data Lake, o AWS S3 é a camada de armazenamento de dados e Redshift é a camada de computação que pode unir, processar e agregar grandes volumes de dados. Para servir os dados hospedados no Redshift, muitas vezes pode ser necessário exportar os dados dele e hospedá-los em outros repositórios que sejam adequados à natureza do consumo. AWS S3 é um daqueles repositórios de armazenamento central na AWS que é integrado com quase todos os dados e serviços analíticos suportados pela AWS. Por isso, uma das necessidades fundamentais dos profissionais do Redshift é exportar dados do Redshift para o AWS S3. Neste artigo, aprenderemos passo a passo como exportar dados do Amazon Redshift para o Amazon S3 e diferentes opções relacionadas a ele.

Configuração do AWS Redshift

Neste artigo, presume-se que um cluster funcional do AWS Redshift esteja instalado. Os iniciantes do Redshift podem consultar este artigo, Introdução ao AWS Redshift, para criar um novo cluster do AWS Redshift. Depois que o cluster estiver no lugar, ele terá a aparência mostrada abaixo na página Clusters do Redshift.

Cluster Redshift

Como precisamos exportar os dados do cluster AWS Redshift, precisamos ter alguns dados de amostra no local. Presume-se que você tenha pelo menos alguns dados de amostra no local. Do contrário, em um dos meus artigos anteriores, expliquei como carregar dados no Redshift, que pode ser consultado para criar alguns dados de amostra. Assim que o cluster estiver pronto com dados de amostra, conecte-se ao cluster. Eu tenho uma tabela de usuários no cluster Redshift que se parece com a mostrada abaixo. Conecte-se ao cluster Redshift usando o IDE de sua escolha.

Leia Também  sp_BlitzIndex Pro Tips para consultores e empreiteiros

Selecione os dados do cluster Redshift

Digamos que pretendemos exportar esses dados para um bucket AWS S3. O principal método com suporte nativo pelo AWS Redshift é o comando “Descarregar” para exportar dados. A sintaxe do comando Unload é mostrada abaixo. Este comando fornece muitas opções para formatar os dados exportados, bem como especificar o esquema dos dados que estão sendo exportados. Veremos algumas das opções mais usadas neste artigo.

Descarregar sintaxe de comando

Precisaríamos de algumas coisas antes de executar o comando de descarregamento. Um bucket AWS S3 é necessário onde os dados exportados seriam carregados. Além disso, uma função IAM que tenha acesso de gravação ao Amazon S3 e anexado ao cluster AWS Redshift precisa estar em vigor. Supondo que essas configurações estejam em vigor, execute o comando conforme mostrado abaixo. Vamos tentar entender esse comando linha por linha.

  • A primeira linha do comando especifica a consulta que extrai o conjunto de dados desejado. Neste caso, queremos todos os campos com todas as linhas da tabela
  • A segunda linha do comando especifica a localização do bucket do Amazon S3 onde pretendemos extrair os dados
  • A terceira linha especifica a função IAM que o cluster Redshift usará para gravar os dados no bucket do Amazon S3
  • A última linha especifica o formato dos dados em que pretendemos exportar os dados. Neste caso, pretendemos exportar os dados no formato CSV, por isso especificamos a palavra-chave CSV

Comando de descarga

Navegue de volta para o bucket AWS S3 e a saída seria como mostrado abaixo. A arquitetura do AWS Redshift é composta de vários nós e cada nó tem um número fixo de slides de nó. Por padrão, o comando unload exporta dados em paralelo para vários arquivos, dependendo do número de fatias de nó no cluster. Nesse caso, esses dados são exportados de um cluster de nó e os dados são exportados em dois arquivos separados.

Leia Também  "0 a 60": alternando para pontos de verificação indiretos

Descarregue a saída em S3

Se você abrir qualquer um desses arquivos, terá a aparência mostrada abaixo. O arquivo teria todos os campos e partes dos dados exportados usando o comando unload.

Dados Exportados

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

Geralmente, no caso de exportações de dados em grande escala, seria desejável compactar os dados, pois isso reduz a pegada de armazenamento e também economiza custos. Exportar os dados em um formato não compactado e, em seguida, compactá-los é uma etapa adicional que exige tempo e esforço extras. O comando Descarregar fornece opções para exportar dados em um formato compactado. Além disso, às vezes os dados precisam estar em um único arquivo, para que possam ser lidos prontamente pelas ferramentas de consumo, em vez de serem reunidos primeiro em um único arquivo e depois lidos. Modifique o comando anterior conforme mostrado abaixo, adicionando as palavras-chave GZIP e PARALLEL OFF, que comprime os dados exportados no formato gzip e interrompe o AWS Redshift na exportação de dados em um modo paralelo, o que resulta em uma única saída de arquivo.

Comando de descarregamento com compressão de dados e paralelismo desativado

Depois que os dados forem exportados, navegue de volta para o depósito AWS S3 e a saída será exibida conforme mostrado abaixo. A saída seria um único arquivo no formato gzip.

Descarregue a saída no balde S3

Os comandos acima são adequados para cenários de exportação simples em que o requisito é apenas exportar dados em um único lugar. Considere um cenário em que os dados são bastante grandes e a acumulação de todos os dados em um único arquivo ou em vários arquivos não atenderia ao objetivo e seriam muitos dados em um único arquivo ou os dados de interesse estão espalhados em muitos arquivos. O requisito é organizar os dados por um determinado critério em diferentes depósitos, para que não haja nenhum esforço adicional para organizar os dados no AWS S3 após o processo de exportação. Isso significa que precisamos particionar os dados como parte do processo de exportação. No conjunto de dados que estamos usando, temos “estado” como um dos campos. Digamos que precisamos que os dados sejam particionados por estado para que todas as linhas que pertencem a um estado comum sejam colocadas em um único arquivo em seu próprio intervalo. O comando Unload fornece a palavra-chave partição, o que nos permite atingir esse propósito exato. Execute o comando conforme mostrado abaixo e mencione o atributo como “estado” com a palavra-chave particionada.

Leia Também  O forçado pode estar com você? - BLOG DE TECNOLOGIA SQL

Comando de descarga

Para verificar a saída, navegue de volta para o depósito AWS S3 e você encontrará a saída conforme mostrado abaixo. Várias pastas seriam criadas no intervalo de destino para onde os dados são exportados. Uma pasta é criada para cada estado distinto, e o nome do estado, bem como o valor do estado, seriam o nome da pasta.

Descarregue a saída no intervalo AWS S3

Abra qualquer pasta e você encontrará os dados exportados em vários arquivos. O motivo é que, se você analisar o comando descarregar acima, descobrirá que não mencionamos a opção PARALLEL OFF, portanto, resultou em vários arquivos. Adicione esta opção ao comando se o requisito for de um único arquivo. Abra qualquer um dos arquivos em qualquer pasta e você deverá encontrar todos os registros com o mesmo estado.

O comando unload possui várias outras opções. Considere explorar mais e experimentar essas opções da documentação do AWS Redshift.

Conclusão

Neste artigo, aprendemos como usar o comando AWS Redshift Unload para exportar os dados para AWS S3. Também aprendemos as diferentes opções que podem ser usadas com este comando para exportar os dados, compactar dados, exportar os dados com ou sem paralelismo, bem como organizar os dados exportados usando o mesmo comando.

Índice

Rahul Mehta
Últimas postagens de Rahul Mehta (veja tudo)

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br