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
Configurações de parâmetros do cluster do Amazon Redshift
- Case sensitive no Parameter Group do Amazon Redshift habilitado
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
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.
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.
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');
Amazon Redshift
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.
Definição do data warehouse do Amazon Redshift de destino para a replicação dos dados.
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.
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.
E as alterações realizada na origem dos dados é replicada em quase tempo real para o Amazon Redshift.
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.
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