- Data Hackers Newsletter
- Posts
- Amazon Redshift Spectrum: como consultar dados do S3 sem carregá-los
Amazon Redshift Spectrum: como consultar dados do S3 sem carregá-los
Aprenda a usar o Amazon Redshift Spectrum para acessar dados diretamente de seus buckets S3 e realizar análises eficazes.
O Amazon Redshift Spectrum é uma solução que transforma a forma como as empresas consultam e analisam dados. Com essa funcionalidade poderosa, você pode executar consultas diretamente em arquivos armazenados no Amazon S3 sem a necessidade de carregá-los para o cluster do Redshift, permitindo assim uma análise mais rápida e eficiente.
Neste post, você aprenderá a utilizar o Redshift Spectrum para acessar dados de seus buckets S3, explorando suas capacidades de processamento em massa e a flexibilidade de trabalhar com diversos formatos de arquivo, tudo isso enquanto economiza tempo e recursos.
O que é o Amazon Redshift Spectrum?
O Amazon Redshift Spectrum permite que os usuários consultem dados estruturados e semiestruturados diretamente de arquivos armazenados no Amazon S3. Com o Redshift Spectrum, você pode consultar dados sem a necessidade de carregá-los nas tabelas do Amazon Redshift.
Este serviço combina a capacidade dos data warehouses do Redshift com a flexibilidade do S3. As consultas realizadas com o Redshift Spectrum utilizam paralelismo em massa, permitindo processar rapidamente grandes conjuntos de dados. A maior parte do processamento ocorre na camada do Redshift Spectrum, enquanto os dados permanecem no S3.
Uma das grandes vantagens do Redshift Spectrum é que múltiplos clusters podem consultar simultaneamente o mesmo conjunto de dados no Amazon S3, eliminando a necessidade de criar cópias dos dados. Isso não só economiza espaço, mas também melhora a eficiência e a escalabilidade da análise de dados.
Além disso, o Redshift Spectrum oferece suporte a diversos formatos de arquivo, como CSV, TSV e JSON, facilitando ainda mais o acesso a dados armazenados em diferentes estruturas. Assim, independentemente de como seus dados estão organizados no S3, você pode executar consultas SQL poderosas e obter insights valiosos.

O Amazon Redshift é voltado para a análise de dados estruturados, e o Spectrum permite fazer análises sem a necessidade de carregar os dados
Como o Amazon Redshift Spectrum funciona?
O Amazon Redshift Spectrum permite consultar dados diretamente no Amazon S3. Essa funcionalidade melhora a flexibilidade e a eficiência na análise de dados. O Spectrum utiliza a infraestrutura do Amazon Redshift para executar consultas SQL em dados não estruturados armazenados no S3. Isso significa que você pode integrar e analisar dados de diversas fontes sem movê-los.
Quando uma consulta é feita, o Redshift Spectrum divide as operações. Ele identifica os dados necessários no S3 e utiliza a capacidade de processamento do cluster Redshift para realizar a consulta, garantindo que as análises sejam rápidas e eficientes, mesmo com grandes volumes de dados. O Redshift Spectrum é projetado para trabalhar com dados estruturados e semiestruturados, permitindo consultas em arquivos como CSV, Parquet e JSON.
Além disso, à medida que o volume de dados aumenta, o Redshift Spectrum automaticamente ajusta sua capacidade, mantendo a performance ideal sem exigir intervenções manuais.
Por meio do Redshift Spectrum, as empresas podem reduzir a complexidade associada ao gerenciamento de dados e focar na análise e na tomada de decisões estratégicas.
Como consultar dados do S3 utilizando o Redshift Spectrum?
Para consultar dados do Amazon S3 utilizando o Amazon Redshift Spectrum, siga os passos abaixo:
1. Prepare seu ambiente
É fundamental ter um cluster do Amazon Redshift operante e um cliente SQL conectado. Certifique-se de que os arquivos de dados no Amazon S3 estão na mesma região da AWS que seu cluster.
2. Crie uma função IAM
O cluster precisará de credenciais para acessar seu Catálogo de Dados externo no AWS Glue ou no Amazon Athena. Crie uma função IAM com as permissões necessárias:
Acesse o console IAM e crie uma nova função.
Escolha "Amazon Redshift" como o serviço confiável e adicione políticas de acesso como
AmazonS3ReadOnlyAccess
eAWSGlueConsoleFullAccess
.
3. Associe a função IAM ao seu cluster
No console do Amazon Redshift, localize a página do cluster e associe a função IAM criada.
4. Crie um esquema externo e uma tabela externa
Execute comandos SQL para criar um esquema externo que refere-se ao banco de dados do seu Catálogo de Dados externo e uma tabela externa que apontará para os dados em S3.
Comando para criar um esquema externo:
create external schema myspectrum_schema from data catalog database 'myspectrum_db' iam_role 'arn:aws:iam::123456789012:role/myspectrum_role';
Comando para criar uma tabela externa:
create external table myspectrum_schema.sales( salesid integer, listid integer, sellerid integer, buyerid integer, eventid integer, dateid smallint, qtysold smallint, pricepaid decimal(8,2), commission decimal(8,2), saletime timestamp) row format delimited fields terminated by '\\t' stored as textfile location 's3://redshift-downloads/tickit/spectrum/sales/';
5. Realize consultas nos dados
Após a criação das tabelas externas, você pode utilizar comandos SQL padrão do Redshift para consultar os dados. Por exemplo, para contar o número de linhas na tabela externa:
select count(*) from myspectrum_schema.sales;
Esses passos permitem que você consulte dados armazenados no Amazon S3 utilizando o Amazon Redshift Spectrum.
Quais são as vantagens do uso do Redshift Spectrum?
O Amazon Redshift Spectrum oferece diversas vantagens que podem transformar a forma como as empresas lidam com grandes volumes de dados:
Custo-efetividade e escalabilidade: Permite consultar dados diretamente do Amazon S3, reduzindo custos operacionais.
Minimiza a quantidade de dados processados: Utiliza técnicas como particionamento dinâmico, o que melhora a performance.
Integração com dados frios: Armazena dados menos utilizados no S3 e os consulta junto com dados quentes.
Capacidades de lago de dados: Analisa dados brutos armazenados no S3.
Eficiência no processamento: Empurra tarefas computacionais intensivas para a camada Spectrum.
Flexibilidade na criação de tabelas: Permite criar tabelas definindo a estrutura dos arquivos.
Leitura de arquivos compactados: Lê arquivos comprimidos, economizando ao transferir dados.
Otimização de consultas: O otimizador do Amazon Redshift gera planos eficientes para consultas complexas.
Modelo de pagamento por uso: Você paga apenas pelas consultas realizadas.
Segurança robusta: Oferece opções de segurança para dados em repouso e em trânsito.
Qual a diferença entre Redshift e S3?
A diferença entre o Amazon Redshift e o Amazon S3 é significativa:
Propósito: O Amazon S3 é uma solução de armazenamento de dados flexível, enquanto o Amazon Redshift é voltado para a análise de dados estruturados.
Custo: Amazon S3 é geralmente mais barato; o Amazon Redshift tem tarifas baseadas no uso de recursos.
Categorias: Amazon Redshift é um data warehouse; Amazon S3 é armazenamento de objetos.
Facilidade de configuração: Amazon Redshift tende a ser mais fácil de configurar.
Facilidade de uso: Amazon S3 é considerado mais simples; Amazon Redshift oferece eficiência na manutenção.
Ferramentas de integração: Amazon Redshift integra-se com várias ferramentas, enquanto Amazon S3 se conecta a outras soluções com foco em desenvolvedores.
Essas diferenças ajudam a determinar qual solução é mais adequada para suas necessidades de armazenamento e análise de dados.
O Amazon Redshift Spectrum não pode ser usado sem o Amazon Redshift. Ele consulta dados diretamente do Amazon S3, mas depende do Redshift para gerenciamento e otimização de consultas.
Uma tabela Spectrum no Amazon Redshift é uma coleção de tabelas externas que permite acessar e consultar dados armazenados fora do cluster. Essas tabelas contêm metadados sobre os dados que o Redshift Spectrum pode ler e utilizar para executar consultas SQL diretamente sobre os dados no S3.
Vale a pena utilizar o Amazon Redshift Spectrum?
Vale a pena considerar o Amazon Redshift Spectrum como uma solução para otimizar a consulta de dados armazenados no Amazon S3. Nesta postagem, detalhamos como esse recurso permite consultas eficientes e escaláveis, eliminando a necessidade de carregar grandes volumes de dados para o cluster do Redshift. Além das vantagens em termos de custo e performance, ele também oferece flexibilidade na criação de tabelas e suporta diversos formatos de arquivo.
Ademais, o uso do Redshift Spectrum não só aprimora a análise de dados, mas também facilita a integração de dados frios com dados quentes, transformando sua abordagem sobre armazenamento e análise. Com isso, empresas podem focar em insights valiosos e decisões estratégicas sem a complexidade do gerenciamento excessivo de dados.