Jump to section

O que é captura de dados alterados (CDC)?

Copiar URL

Captura de dados alterados é um padrão de integração para acompanhar as variações nos dados e alertar outros sistemas e serviços que precisem reagir a elas. A captura de dados alterados ajuda a manter a consistência e a funcionalidade em todos os sistemas que dependem deles.

Os dados são fundamentais para todos os negócios. No entanto, o desafio é que os dados são constantemente atualizados e alterados. E as empresas precisam acompanhar essas mudanças. Manter os dados atualizados em tempo real, seja em transações, pedidos, inventário ou clientes, é essencial para que seus negócios continuem funcionando. Quando um pedido de compra é atualizado, um novo cliente é integrado ou um pagamento é recebido, aplicações em toda a empresa precisam ser informadas para que concluam processos de negócios.

Ao atualizar um banco de dados de origem, geralmente um banco de dados relacional, como Oracle, Microsoft SQL Server, Postgres ou mysql, talvez seja necessário atualizar vários recursos relacionados, como cache e índice de pesquisa. Uma abordagem simples exigiria o upgrade das aplicações para atualizar esses recursos ao mesmo tempo. No entanto, tentar gravar com consistência esses dados alterados em mais de um destino envolve muitos desafios e esforço de coordenação. Com a CDC, você evita problemas como gravações duplicadas ao atualizar os recursos simultaneamente e com precisão.

Para fazer isso, a CDC acompanha as alterações no nível de linha, em tabelas de origem do banco de dados categorizadas como eventos de inserção, atualização e exclusão, e disponibiliza essas notificações de alteração para todos os sistemas ou serviços que usam os mesmos dados. As notificações de alteração são emitidas na mesma ordem que foram realizadas no banco de dados original. Assim, a CDC assegura que todas as partes interessadas de um determinado conjunto de dados sejam informadas com precisão sobre a alteração e possam reagir de acordo, seja atualizando a própria versão dos dados ou acionando processos de negócios.

Em arquiteturas modernas orientadas a microsserviços, a CDC conquistou nova importância ao criar uma ponte indispensável para conectar bancos de dados tradicionais com arquiteturas nativas em nuvem orientadas a eventos. Com a CDC, as empresas podem continuar a usar os bancos de dados legados e ainda usufruir das informações com tecnologias emergentes. Para novas implantações, a CDC viabiliza o uso de esquemas e padrões úteis, como o "outbox", que permite que os microsserviços troquem os dados consolidados de uma transação de banco de dados.

Embora capture as alterações de banco de dados, a CDC ainda requer um serviço de sistema de mensageria para entregar essas notificações de alteração a sistemas e aplicações. O modo mais eficiente de fazer isso é tratar as alterações como eventos, como em uma arquitetura orientada a eventos (EDA), e enviá-las de forma assíncrona.

O Apache Kafka é o modo ideal de oferecer comunicação assíncrona entre o banco de dados e os consumidores da informação, que exigem um padrão de consumo reproduzível e de alto volume. O Kafka é uma plataforma distribuída de transmissão capaz de publicar, subscrever, armazenar e processar fluxos de eventos em tempo real. Ele foi projetado para processar fluxos de dados provenientes de diversas fontes e entregá-los a vários destinos, com alto rendimento e escalabilidade.

A captura de alteração de dados assegura que os eventos transmitidos pelo Kafka sejam consistentes com as alterações no sistema original ou banco de dados. Como o sistema de mensageria do Kafka é assíncrono, os eventos são desacoplados dos consumidores, possibilitando uma entrega mais confiável de todas as alterações.

Plataformas de captura de dados alterados, como o Debezium, acompanham alterações no banco de dados monitorando o log de transações à medida que as mudanças são realizadas. Uma alternativa a essa abordagem é um processo simples baseado em pesquisa ou consulta. 

A CDC, baseada no log de transações, oferece várias vantagens em relação a essas opções, como:

  • Todas as alterações são capturadas: a CDC foi projetada para capturar todas as alterações feitas no banco de dados. Sem a CDC, as alterações intermediárias e os novos dados, como atualizações e exclusões, poderiam ser perdidas entre duas execuções do loop de pesquisa.
  • Baixa sobrecarga: a combinação da CDC com o Kafka oferece entrega das alterações de dados quase em tempo real. Isso impede a sobrecarga da CPU causada por pesquisas frequentes.
  • Nenhum impacto no modelo de dados: usando a CDC, as colunas de data/hora não são mais necessárias para determinar a atualização de dados mais recente.

Os exemplos a seguir representam alguns dos casos de uso da captura de dados alterados.

Integração de microsserviços

A CDC pode ser usada para sincronizar microsserviços com aplicações monolíticas tradicionais, viabilizando a transferência de alterações de dados de sistemas legados para aplicações baseadas em microsserviços, sem incidentes.

Replicação de dados

A CDC pode ser usada com o objetivo de replicar as informações para vários bancos de dados, data lakes ou data warehouses, assegurando que todos os recursos tenham a versão mais recente delas. Assim, a CDC pode oferecer a várias equipes distribuídas (e até mesmo em silos) acesso aos mesmos dados atualizados. 

Painéis de análise

A CDC pode ser usada para alimentar alterações de dados em painéis de análise para operações de business intelligence, como suporte à tomada rápida de decisões.

Auditoria e conformidade

Para atender aos rígidos requisitos de conformidade de dados e evitar as altas penalidades, é essencial gravar um histórico das alterações feitas nos dados. A CDC pode ser usada para gravar as alterações de dados para fins de auditoria ou arquivo. 

Invalidação do cache

A CDC pode ser usada para invalidação do cache a fim de garantir a substituição ou remoção de entradas desatualizadas e exibição das versões mais recentes.

Atualizações do modelo CQRS

A CDC pode ser usada para manter os modelos de leitura Command Query Responsibility Separation (CQRS) em sincronia com os modelos primários.

Pesquisa de texto completo

A CDC pode ser usada para manutenção automática de um índice de pesquisa de texto completo e em sincronia com o banco de dados.

A captura de dados alterados pode ajudar sua empresa a tomar decisões mais rápidas e orientadas por dados para economizar tempo, esforços e receita.

Maximize o valor dos dados

A CDC ajuda as empresas a maximizar o valor dos dados ao possibilitar que elas usufruam das informações para várias finalidades. Por fornecer um método de atualização consistente dos mesmos dados em vários silos, a CDC permite que a organização aproveite os dados ao máximo sem prejudicar a integridade deles.

Mantenha os negócios atualizados

A CDC possibilita que múltiplos bancos de dados e aplicações permaneçam em sincronia, oferecendo aos stakeholders do negócio as informações mais recentes.

Tome decisões melhores e mais rápidas

A CDC capacita os usuários corporativos a tomar decisões mais rápidas e precisas com base nas informações mais recentes. Como os dados para tomada de decisões geralmente perdem valor rapidamente, é importante disponibilizá-los o mais rápido possível a todos os stakeholders, usando a CDC e o Kafka. Fornecer acesso a análises precisas e quase em tempo real é essencial para criar e manter sua vantagem competitiva.

Mantenha as operações funcionando sem atrasos

Quando os dados em múltiplos sistemas não estão sincronizados, eles podem ter problemas em reconciliação de pedidos, processamento de transações, atendimento aos clientes, geração de relatórios ou cumprimento de programações de produção, entre outros. Qualquer uma dessas situações pode atrasar seus negócios. E isso significa perda de receita. Com a CDC, sua organização consegue manter os dados em sincronia e com baixa latência em vários sistemas para que as operações sejam executadas sem problemas.

O Red Hat Integration oferece recursos de captura de dados alterados por meio do Debezium combinado com os fluxos do Red Hat AMQ e Apache Kafka. O Debezium é uma plataforma de CDC open source e distribuída, baseada em logs e compatível com a captura de alterações de diversos sistemas de banco de dados. O Debezium é rápido e durável para que suas aplicações possam reagir rapidamente sem perder nenhum evento.

Leitura recomendada

Artigo

O que é integração?

Quer saber o que é integração? Descubra o que é, como incorporá-la e por que ela é muito melhor com tecnologias open source.

Artigo

O que é Apache Kafka?

O Apache Kafka é uma plataforma distribuída de transmissão de dados que é capaz de publicar, subscrever, armazenar e processar fluxos de registro em tempo real.

Artigo

O que é uma API?

API significa interface de programação de aplicações, um conjunto de definições e protocolos para criar e integrar softwares de aplicações.

Leia mais sobre integração

Soluções Red Hat

Conjunto abrangente de tecnologias para integração e mensageria. Inclui Red Hat 3scale API Management, Red Hat AMQ, Red Hat Runtimes, captura de dados de alterações e um registro de serviço.

Plataforma gerenciada e hospedada, aplicações e data services que otimizam a experiência da nuvem híbrida, reduzindo os custos e a complexidade operacionais de aplicações nativas em nuvem.

Um conjunto de soluções, ferramentas e componentes para desenvolver e manter aplicações nativas em nuvem. Inclui Red Hat AMQ, Red Hat Data Grid, Red Hat JBoss® Enterprise Application Platform, Red Hat JBoss Web Server, uma versão Red Hat do OpenJDK, uma versão Red Hat do Quarkus, um conjunto de runtimes nativos em nuvem, kit de ferramentas de migração para aplicações, login único (SSO) e serviço de inicialização.

Um conjunto abrangente de tecnologias de integração e runtimes para criar, implantar e operar aplicações com segurança e em escala na nuvem híbrida.

Conteúdo adicional

Ebook

Integração ágil

Crie uma infraestrutura ágil para viabilizar uma organização adaptável.

Visão geral

Red Hat Cloud Services

Serviços gerenciados para desenvolvimento nativo em nuvem.

Treinamento

Treinamento gratuito

Red Hat Agile Integration Technical Overview