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



This content originally appeared on DEV Community and was authored by Geovana Leal Gouvea

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');

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


This content originally appeared on DEV Community and was authored by Geovana Leal Gouvea