DEV Community

Cover image for Zero ETL com Amazon Aurora PostgreSQL e Amazon Redshift: simplicidade, escalabilidade e dados em quase tempo real
Geovana Leal Gouvea
Geovana Leal Gouvea

Posted on

Zero ETL com Amazon Aurora PostgreSQL e Amazon Redshift: simplicidade, escalabilidade e dados em quase tempo real

Autoras:@jessica_andretto e @geoleal

Os pipelines de ETL representam desafios operacionais complexos nas organizações modernas em sua jornada como data-driven. À medida que as empresas acumulam dados de fontes cada vez mais diversificadas - desde sistemas legados até aplicações em nuvem, dispositivos IoT e plataformas de terceiros - a complexidade de extrair, transformar e carregar esses dados para ambientes analíticos cresce na mesma proporção.
Tradicionalmente, pipelines como estes exigem arquiteturas com múltiplas camadas de processamento, monitoramento constante, manutenção e inovação contínua. A natureza batch da maioria desses sistemas introduz latências significativas que limitam a capacidade das organizações de reagir rapidamente a mudanças no mercado ou no comportamento dos clientes. Além disso, conforme o volume de dados aumenta, os custos operacionais e a complexidade técnica também crescem proporcionalmente.
Os desafios se intensificam quando consideramos a necessidade de garantir qualidade, consistência e governança dos dados em ambientes distribuídos, onde uma falha em qualquer ponto da cadeia pode comprometer a confiabilidade de todo o sistema analítico. É nesse cenário que surge a abordagem Zero ETL da AWS, uma solução inovadora que busca eliminar a complexidade dos pipelines tradicionais ao permitir a integração nativa e automática entre serviços de dados, sem a necessidade de processos intermediários.
Neste artigo, mostramos como essa abordagem simplifica a integração entre sistemas transacionais e ambientes analíticos, abordando seus principais benefícios, restrições operacionais e orientações práticas para implementação.


O desafio dos pipelines ETL tradicionais

Tradicionalmente, mover dados de bancos transacionais para um ambiente analítico está atrelado a um processo de desenvolvimento complexo onde deve-se levar em conta diversos fatores críticos:

  • Desenvolvimento de pipelines complexos com ferramentas de ETL: A criação e manutenção de pipelines robustos exige domínio de múltiplas tecnologias, desde conectores de banco de dados até frameworks de processamento distribuído.

  • Gerenciamento de infraestrutura para processamento de dados: Provisionar, configurar e manter infraestruturas de processamentos.
    Monitoramento constante de falhas e recuperação: Pipelines ETL são propensos a falhas devido a mudanças de esquema, problemas de conectividade ou volumes inesperados de dados, exigindo sistemas de alerta e procedimentos de recuperação.

  • Latência significativa entre dados operacionais e analíticos: O processamento em batch tradicional resulta em dados com horas ou até dias de atraso, prejudicando decisões críticas de negócio que dependem de informações atualizadas.

  • Mudanças nos esquemas de dados frequentemente requerem reengenharia dos pipelines: Qualquer alteração estrutural nos sistemas fonte pode quebrar pipelines existentes, demandando revisão do código e testes extensivo


Por que Zero ETL é um Game Changer?

Para endereçar essa complexidade dos pipelines tradicionais, o Zero ETL representa uma nova abordagem para integração de dados que minimiza ou até mesmo elimina completamente a necessidade de pipelines tradicionais de ETL. Enquanto os processos ETL têm sido o padrão para combinar, limpar e normalizar dados de várias fontes, eles são reconhecidamente complexos, demorados e desafiadores de manter, como abordado na sessão anterior.
Dessa forma, essa nova funcionalidade opera através de uma arquitetura que monitora continuamente as mudanças em bancos transacionais como o Aurora PostgreSQL. Utilizando logs de transação (WAL - Write-Ahead Logging), o sistema captura cada modificação nos dados e a replica automaticamente para o Amazon Redshift.
Esse processo ocorre de forma transparente e sem impactar a performance do banco operacional, ao evitar a execução de consultas analíticas nesse ambiente. Com isso, as organizações ganham mais agilidade, conseguem responder mais rapidamente às mudanças do mercado e extrair valor dos dados de maneira mais eficiente e assertiva.
Além disso, é possível manter o histórico completo das alterações nas tabelas de origem por meio do History Mode, permitindo realizar análises avançadas sobre todos os dados, incluindo consultas históricas, geração de relatórios retrospectivos e identificação de tendências.

Benefícios

  • Agilidade operacional: Dados são replicados para o Amazon Redshift, sem necessidade de pipelines complexos, acelerando o tempo entre captura e análise. Além da arquitetura Zero ETL se adaptar facilmente ao crescimento do negócio, permitindo escalar dados, incluir novas tabelas e realizar análises avançadas sem reconfigurar os pipelines.

  • Eliminação de pipelines ETL complexos: Elimina a necessidade de construir e manter pipelines complexos, eliminando os desafios associados à construção e gerenciamento.

  • Insights em tempo quase real: Permite decisões mais rápidas com base em dados atualizados continuamente, melhorando iniciativas de BI, IA e ML.

  • Redução de overhead operacional e custos: Diminui a carga operacional e os custos associados, permitindo que equipes foquem em melhorar aplicações e gerar valor de negócio ao invés de gerenciar infraestrutura de dados.

Limitações

  • Disponíveis para alguns gerenciadores de banco de dados, versões e regiões

  • Escala e quantidade: São limitadas a 50 integrações por data warehouse Amazon Redshift de destino.

  • Restrições do banco de dados criados no Amazon Redshift: O banco de dados de destino é somente leitura. Você não pode criar tabelas, visualizações ou visualizações materializadas no banco de dados de destino.

  • Processamento e transformações: Não suporta transformações enquanto replica os dados de armazenamentos de dados transacionais para o Amazon Redshift. Os dados são replicados como estão na base de dados de origem.

  • Requisito de chave primária para Amazon Aurora e Amazon RDS: As tabelas na fonte de integração devem ter uma chave primária. Caso contrário, as tabelas não podem ser replicadas para o data warehouse de destino no Amazon Redshift.

  • Limitações de latência para integrações com origem de dados do Amazon DynamoDB: Atualmente, a latência mínima é de 15 minutos.

  • Outras limitações: https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl.reqs-lims.html

Embora essa funcionalidade ofereça benefícios significativos em termos de simplicidade e redução da complexidade de ETL, é crucial compreender essas limitações antes da implementação. Deve-se avaliar cuidadosamente se suas necessidades específicas de dados, estruturas de fonte e requisitos operacionais se alinham com essas restrições.


Implementação

Para entender melhor a simplicidade dessa funcionalidade, vamos partir para a prática e implementar a integração entre um banco de dados no Amazon Aurora PostgreSQL e um data warehouse no Amazon Redshift.

Pré requisitos gerais do ambiente

  • Aurora PostgreSQL 16 - Versão 16.4 ou superior
  • Amazon Redshift Serverless ou instância RA3
  • Tabelas do Aurora PostgreSQL com chave primária

Configurações de parâmetros do cluster do Aurora PostgreSQL

  • rds.logical_replication = 1
  • aurora.enhanced_logical_replication = 1
  • aurora.logical_replication_backup = 0
  • aurora.logical_replication_globaldb = 0

Image description

Configurações de parâmetros do cluster do Amazon Redshift

  • Case sensitive no Parameter Group do Amazon Redshift habilitado

Image description

Observação: Após as alterações de cada parameter group é importante fazer o reboot do cluster para que as alterações sejam aplicadas.

Configurações Resource Policy no cluster do Amazon Redshift

Image description

Essas configurações permitem a criação da integração para que os dados possam ser replicados para o Amazon Redshift.

Observação: Caso a integração ocorra entre serviços na mesma conta e região, essas configurações podem ser definidas automaticamente pela AWS. Durante a criação da integração, a AWS identifica se algum dos serviços não estão com a configuração necessária e aplica os ajustes automaticamente, mediante sua confirmação.

Image description

Amazon Aurora PostgreSQL Serverless

Para esta implementação, utilizamos o Amazon Aurora PostgreSQL Serverless. Um aspecto importante a considerar ao implementar Zero ETL em ambientes serverless está relacionado ao comportamento dinâmico dessa arquitetura.
Como o Aurora Serverless ajusta automaticamente sua capacidade computacional baseado na demanda de workload, a funcionalidade Zero ETL introduz uma carga de processamento adicional e constante através da leitura contínua do Write-Ahead Log (WAL) do banco de dados. Consequentemente, isso resulta em um consumo mais elevado e consistente de Aurora Capacity Units (ACUs), podendo impactar significativamente os custos operacionais, especialmente em ambientes com baixo volume transacional onde o overhead do Zero ETL pode ser proporcionalmente maior. É recomendável monitorar as métricas de utilização de ACUs e avaliar se uma configuração Aurora Provisioned seria mais econômica para o cenário.

Image description

Criação de uma tabela para replicação dos dados.

CREATE TABLE customers (
    customer_id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);


INSERT INTO customers (name, email)
VALUES 
    ('Maria Silva', 'maria.silva@example.com'),
    ('João Souza', 'joao.souza@example.com'),
    ('Ana Costa', 'ana.costa@example.com');
Enter fullscreen mode Exit fullscreen mode

Image description

Amazon Redshift

Image description

Integração Zero ETL

Definição do banco de dados Amazon Aurora PostgreSQL que será utilizado como origem da replicação. Nesse momento, também é possível filtrar quais bancos de dados, esquemas e tabelas serão replicados.

Image description

Definição do data warehouse do Amazon Redshift de destino para a replicação dos dados.

Image description

Por fim, a integração é criada e fica aguardando uma configuração de banco de dados do Amazon Redshift que será utilizado para a replicação.

Image description

Image description

Image description

Image description

Após a criação do banco de dados no Amazon Redshift, a replicação é realizada e as tabelas existentes do Aurora PostgreSQL já estarão disponíveis para análise no Amazon Redshift.

Image description

E as alterações realizada na origem dos dados é replicada em quase tempo real para o Amazon Redshift.

Image description

Image description

Com apenas alguns cliques, a integração Zero ETL já está funcionando. Os dados inseridos no banco transacional já estão disponíveis no data warehouse e prontos para análise - sem necessidade de aguardar processamentos batch ou configurar pipelines complexos. A sincronização acontece automaticamente em segundo plano, permitindo que as equipes de análise de dados comecem a trabalhar com os dados atualizados imediatamente.


Monitoramento

O Amazon CloudWatch oferece métricas específicas para acompanhar a integração Zero ETL. O monitoramento inclui indicadores essenciais como o estado da integração (IntegrationState), número de tabelas replicadas com sucesso (IntegrationNumTablesReplicated) e possíveis falhas na replicação (IntegrationNumTablesFailedReplication).

As métricas também mostram o volume de dados transferidos (IntegrationDataTransferred), quantidade de linhas inseridas (IntegrationInsertedRows) e a latência da integração (IntegrationLag). Esses indicadores são fundamentais para garantir que a sincronização está funcionando corretamente e identificar rapidamente qualquer problema de performance ou conectividade.

A partir dessas métricas, é possível configurar alarmes automáticos para monitoramento proativo da integração. Por exemplo, você pode criar alarmes para detectar quando há falhas na replicação de tabelas ou quando o estado da integração muda inesperadamente.

Image description


Conclusão

A integração Zero ETL da AWS representa uma evolução significativa na forma como as organizações lidam com seus dados, oferecendo uma alternativa ágil aos complexos pipelines ETL tradicionais. Ao eliminar a necessidade de desenvolvimento de processos de extração, transformação e carregamento, essa tecnologia permite que empresas acessem insights em quase tempo real sem a sobrecarga operacional típica de arquiteturas de dados convencionais.

Embora a tecnologia Zero ETL não seja adequada para todos os cenários - especialmente aqueles que requerem transformações complexas de dados - ela oferece valor substancial para casos de uso focados em análises em quase tempo real, dashboards operacionais e detecção de anomalias. Para organizações que buscam acelerar seu tempo de entrega de insights e reduzir a complexidade de suas arquiteturas de dados, a integração Zero ETL da AWS apresenta uma oportunidade de modernizar suas estratégias de dados de forma eficiente e escalável.

Referências e recomendações de leitura

Considerations when using zero-ETL integrations with Amazon Redshift: https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl.reqs-lims.html
Supported Regions and Aurora DB engines for zero-ETL integrations with Amazon Redshift: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.Aurora_Fea_Regions_DB-eng.Feature.Zero-ETL.html
Configure authorization for your Amazon Redshift data warehouse: https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.redshift-iam.html

History mode: https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-history-mode.html

Top comments (0)