14/09/2023
Por Thiago Marques
O pai ta on!!
Nos dias de hoje, a quantidade de dados gerados pelas empresas vem crescendo exponencialmente, segundo estudo de 2015 da BSA (Business Software Alliance) o mundo gerava diariamente 2,5 petabyte de dados, 90% dos dados disponíveis foram gerados nos últimos 2 anos, e em estudos recentes chegamos a 44 zettabytes em 2020 (tem 40x mais bytes aqui do que estrelas observadas no universo).
Essa avalanche de informações não é apenas um recurso valioso, mas também um desafio significativo para organizações que desejam e precisam extrair insights cruciais para a tomada de decisões estratégicas, e é justamente nesse cenário que o Amazon Redshift (o data warehousing da AWS) surge como uma solução poderosa.
Neste artigo, vamos explorar o que é o Amazon RedShift, seus principais recursos e vantagens, além de fornecer um código Python utilizando a biblioteca boto3 para provisionar um node redshift.
O que é um data warehousing
Antes de mergulharmos no Amazon Redshift, é fundamental compreender o conceito de um Data Warehouse. Um DW é um sistema de gerenciamento de banco de dados projetado para armazenar, consolidar e analisar grandes volumes de dados de diferentes fontes. Ele serve como um repositório centralizado que organiza dados de maneira estruturada, permitindo que as empresas executem consultas complexas e análises de negócios.
O DW faz isso juntando informações de diversas fontes de dados (databases), como base de dados transacionais, dados do ERP e até dados mais ‘simples’ gerados por funcionários, como um DISC. Todos os dados passam por um processo de preparação de dados, chamado ETL (Extraction, Transformation and Load), e são enviados de forma organizada para o DW.
Essa, na verdade, pode ser uma das grandes diferenças entre um DW e um DataLake. O DW trabalha com dados relacionais (estruturados), e o DL com todos os tipos de estrutura.
O que é o Amazon Redshift
O Amazon Redshift é um serviço de banco de dados relacional totalmente gerenciado, projetado especificamente para análise de dados, ou seja, é o DW da Amazon. Contudo ele possui algumas vantagens frente a um DW clássico, como:
Escalabilidade Elástica
O Redshift permite dimensionar facilmente a capacidade de armazenamento e computação para atender às necessidades de sua organização. Você pode começar pequeno e escalar conforme seus dados crescem, garantindo que seus recursos estejam sempre alinhados com suas demandas.
Desempenho Superior
A arquitetura massivamente paralela do Redshift permite consultas rápidas e análises em tempo real, mesmo em grandes conjuntos de dados. Isso é essencial para tomar decisões informadas em um ambiente de negócios em constante mudança.
Em comparação com outros DWs em nuvem, a performance supera em 18 dos 22 testes de performance do TPC-H.
Integração Simples
O Redshift se integra facilmente a várias fontes de dados, incluindo bancos de dados relacionais, armazenamentos de dados e serviços da AWS. Isso simplifica o processo de coleta e análise de dados de várias fontes em um único local.
Se pode integrar desde dados no S3, EMR e DynamoDB diretamente para o RedShift.
Segurança Avançada
O Redshift oferece recursos de segurança avançados, como criptografia de dados, autenticação multifatorial e controle de acesso granular. Isso ajuda a manter seus dados sensíveis protegidos contra ameaças cibernéticas.
No exemplo abaixo temos uma arquitetura base, com utilização de um RDS para o transacional, utilizando o Lake Formation para construção do datalake, passando pelo Glue e Lambda para fazer o ETL, e por fim chegando no RedShift.
Obviamente, aqui poderíamos utilizar simplesmente o RDS enviando para o RedShift direto, e esse possuir conectores para ferramentas de BI diretamente.
Problemas Resolvidos pelo Amazon Redshift
Existem diversos cases para a utilização do redshift, contudo o foco do serviço é na resolução de 3 (três) grandes problemas:
Análise de Big Data: Facilitar a análise de grandes volumes de dados, permitindo que se obtenha insights valiosos de suas informações.
Tomada de Decisões em Tempo Real: Com desempenho de consulta rápido, o Redshift permite a tomada de decisões em tempo real com base em dados frescos.
Consolidação de Dados: O Redshift simplifica a consolidação de dados de várias fontes, proporcionando uma visão única e holística dos dados da empresa. Obs.: Não use um DW como um DataLake, apesar de ser possível, você estará desperdiçando recursos computacionais e financeiros.
Infra como Código
Como sempre vamos ver um exemplo de código para criar o deploy em python:
import boto3
# Cria o
objeto de cliente do serviço
redshift_client = boto3.client(‘redshift’)
# Parametros
server_params = {
‘ClusterIdentifier’:
‘meu-cluster-redshift’,
‘NodeType’:
‘dc2.large’,
‘MasterUsername’:’meu-user’,
‘MasterUserPassword’:’minha-senha’,
‘DBName’:’meu-banco’,
‘Tags’:'[{‘Key’: ‘Name’, ‘Value’: ‘DW com Python’}]’
}
# Crie o cluster
response
= redshift _client.create_cluster(**server_params)
#Aguardar a criação do cluster
redshift_client.get_waiter(‘cluster_available’).wait(ClusterIdentifier=cluster_identifier)
print(“Cluster criado com sucesso”)
Conclusão
Por fim, o Amazon RedShift é uma ferramenta poderosa para extração de valor da vasta quantidade de dados gerados internamente. Em cases como análise de vendas para identificação de tendências de comprar, ou mesmo em estratégias de marketing, e até em análise de redes sociais de forma geral, o RedShift, precisa estar no topo nas opções de escolhas para um DW.
Xero no suvaco!! Be Happy!!!
thiago.marques@darede.com.br
Technical Account Manager da Darede, formato em Rede de Computadores, e pós graduado em Segurança da Informação. Possui ampla experiência em Datacenters e Service Providers, além de ser um entusiasta em DevOps e mercado financeiro.