O que é captura de dados de alterações?

Definição de captura de dados de alteração

A captura de dados de alteração (CDC) é uma técnica para detectar e capturar alterações feitas nos dados em um banco de dados e transmitir essas alterações para os sistemas posteriores. A CDC permite a sincronização de dados quase em tempo real ou em tempo real, a replicação e o processamento orientado por eventos entre sistemas após a ocorrência de alterações no banco de dados.

A captura de dados de alteração é um método de integração de dados em tempo real que combina e harmoniza dados que, de outra forma, poderiam permanecer isolados ou inconsistentes em toda a organização. Outros métodos de integração de dados incluem integração de dados de fluxo, virtualização de dados e integração de aplicações.

A capacidade da CDC de manter os processos e sistemas posteriores atualizados quase em tempo real ou em tempo real com baixa latência é fundamental para o sucesso da análise de dados em tempo real, migrações na nuvem e modelos de inteligência artificial (IA). Ela oferece suporte a diversos casos de uso em todos os setores, incluindo detecção de fraude, gerenciamento da cadeia de suprimentos e conformidade regulatória em setores como varejo, finanças e saúde.

Existem várias abordagens para a captura de dados de alteração, com a CDC baseada em log, a CDC baseada em registro de data e hora e a CDC baseada em gatilho entre as mais comuns. As empresas podem implementar a captura de dados de alteração por meio de ferramentas nativas de banco de dados, plataformas de código aberto e soluções de terceiros.

Quais os benefícios da captura de dados de alterações?

No gerenciamento de dados moderno, a captura de dados de alteração emergiu como um mecanismo crítico de engenharia de dados. Os ambientes de dados corporativos de hoje são cada vez maiores e mais complexos. Eles podem conter dados de dispositivos da Internet das Coisas (IoT), bancos de dados distribuídos, aplicações e outras fontes diversas. A manutenção de dados consistentes e de qualidade em todo esse ecossistema de dados em crescimento é um desafio constante.

Ao mesmo tempo, a empresa exige informações precisas e atualizadas que possam ser aproveitadas para tomada de decisão em tempo real. A captura de dados de alterações é um dos vários métodos que ajudam as organizações a atender a essa demanda.

A captura de dados de alteração permite um pipeline de dados de baixa latência que apresenta dados novos de uma forma mais eficiente e menos intensiva em recursos do que outros métodos de integração de dados. Por exemplo, a replicação de dados envolve a cópia de conjuntos de dados completos. Por outro lado, a CDC envia somente os dados que foram alterados, reduzindo assim a carga nos sistemas de origem, o tráfego de rede e as demandas por energia computacional.

Isso ajuda-os a acessar informações mais recentes e precisas de forma rápida e eficiente, trazendo vários benefícios:

  • Tomada de decisão mais rápida
  • Migrações sem downtime
  • Melhoria do processo de ETL
  • Desempenho aprimorado da IA

Tomada de decisão mais rápida

A CDC ajuda as organizações a transmitir dados operacionais para plataformas e dashboards de análise de dados em tempo real para obter relatórios mais precisos e atualizados, insights de negócios e ajudar na tomada de decisão. Com esses recursos, as empresas podem atender às exigências do ambiente de negócios atual, que demanda agilidade e funciona 24 horas por dia, 7 dias por semana.

Migrações sem downtime

A sincronização contínua entre fontes de dados e sistemas de destino permite a migração de dados entre bancos de dados, ambientes em nuvem ou aplicações com downtime ou interrupção mínimos. Por exemplo, durante migrações para a nuvem, a CDC envia rapidamente as alterações de dados que ocorrem localmente às tabelas de dados relevantes baseadas na nuvem, garantindo a consistência entre os dois ambientes.

Melhoria do processo de ETL

ETL (extrair, transformar, carregar) pipelines de dados são fundamentais para fluxos de trabalho de análise de dados e aprendizado de máquina. Mas a execução do ETL, que depende do processamento em lote, tende a migrar lentamente e sobrecarregar os recursos do sistema. A integração do CDC ao ETL pode otimizar o uso de recursos e acelerar a movimentação de dados.

Melhor desempenho de inteligência artificial (IA)

A implementação da captura de dados de alteração pode ajudar a fazer com que os dados de origem do modelo estejam atualizados, para que os grandes modelos de linguagem (LLMs) possam entregar resultados precisos e oportunos. Por exemplo, em casos de uso de geração aumentada via recuperação (RAG), os modelos de IA se conectam a bases de conhecimento externas para obter respostas mais relevantes.

AI Academy

O gerenciamento de dados é o segredo para a IA generativa?

Explore por que é essencial ter dados de alta qualidade para utilizar a IA generativa com qualidade.

Como funciona a captura de dados de alteração?

A captura de dados de alteração identifica e registra as inserções, atualizações e exclusões que ocorrem nos sistemas de dados de origem. Essas fontes podem incluir bancos de dados relacionais, como Oracle Database, PostgreSQL, MySQL, Microsoft SQL Server e Azure SQL Database, bem como bancos de dados não relacionais (NoSQL), como Apache Cassandra e MongoDB.

Os sistemas CDC modernos geralmente usam a CDC baseada em log, no qual as ferramentas leem os logs de transações do banco de dados (arquivos que registram as alterações de dados em um banco de dados) para identificar as alterações. Cada evento de alteração dentro de um log de transações está associado a uma posição de log ordenada, como um número de sequência de log (LSN). Isso ajuda os sistemas da CDC a determinar exatamente quando ocorrem as modificações.

Após as alterações serem capturadas, elas são transmitidas em tempo real ou quase em tempo real para sistemas subsequentes, como data lakes, data warehouses, plataformas de fluxo de dados como o Apache Kafka, mecanismos de processamento de fluxo como o Apache Spark e pipelines ETL/ELT.

Abordagens da CDC: push versus pull

A captura de dados de alteração pode ser iniciada pelo sistema de origem (uma abordagem baseada em push) ou pelo sistema de destino (uma abordagem baseada em pull). A principal diferença está em qual sistema é responsável por capturar e transmitir as alterações.

CDC baseada em push

Em um modelo de CDC baseado em push, o sistema de origem detecta as alterações e imediatamente as envia ou repassa para os sistemas de destino. Essa abordagem é comumente implementada usando logs de transações de banco de dados, fluxos de eventos ou agentes de mensagens como o Apache Kafka.

Como as alterações são enviadas à medida que ocorrem, a CDC baseada em push normalmente oferece suporte a casos de uso que exigem movimentação de dados em tempo real ou quase em tempo real, como análise de dados de fluxos, arquiteturas orientadas por eventos e sistemas de IA/ML.

CDC baseada em pull

Na CDC baseada em pull, o sistema de destino consulta regularmente os sistemas de origem e "puxa" as alterações quando as encontra. A coleta de dados pode ocorrer em um cronograma fixo, o que torna a CDC baseada em pull bem adequada para cargas de trabalho orientadas por lotes ou sistemas que não exigem atualizações imediatas.

Embora essa abordagem seja mais simples e exija uma infraestrutura menos complexa do que a CDC baseada em push, ela pode introduzir alta latência e aumentar a carga de consultas nos bancos de dados de origem, afetando o desempenho do banco de dados. Muitas plataformas de dados modernas permitirão ambas as abordagens, dependendo das necessidades de dados e dos requisitos operacionais.

Métodos comuns para captura de dados de alterações

Há vários métodos para executar a captura de dados de alterações. Os tipos comuns de CDC são: 

  • CDC baseado em logs
  • CDC baseado em registro de data e hora
  • CDC baseado em gatilho

CDC baseado em logs

Os logs de transações de bancos de dados são uma funcionalidade padrão dos bancos de dados e são usados para registrar todas as transações do banco de dados. (Os arquivos de log de transações podem ser usados para recuperar bancos de dados no caso de uma falha do sistema.)

Na CDC baseada em log, uma aplicação de CDC processa as alterações no banco de dados (tanto nos dados quanto nos metadados) registradas no log e compartilha as atualizações com outros sistemas. A CDC baseada em logs tem se tornado cada vez mais popular devido à sua eficiência; ela se baseia em logs em vez de consultas, o que pode impor cargas substanciais aos sistemas de origem. No entanto, a variação nos formatos de log de transações pode complicar a execução de CDC baseada em log em diferentes bancos de dados.

CDC baseado em registro de data e hora

A captura de dados de alteração baseada em carimbo de data/hora, também conhecida como CDC baseada em consulta, exige que os esquemas das tabelas do banco de dados tenham colunas, como colunas de carimbo de data/hora, que registrem a data e a hora das alterações nos registros. Uma ferramenta CDC pode ser usada para identificar registros alterados por meio da coluna de registro de data e hora em uma tabela de origem e, em seguida, entregar atualizações aos sistemas de destino.

Embora a CDC baseada em registro de data e hora possa ser simples de implementar, ela também pode impor cargas adicionais e invasivas a um sistema quando a consulta de dados de registro de data e hora ocorre com frequência. A CDC baseada em registro de data e hora também falha na captura de operações de exclusão quando o registro de data e hora é excluído juntamente com o restante de uma linha.

CDC baseado em gatilho

Na captura de dados alterados baseada em gatilhos, procedimentos armazenados ou funções conhecidas como gatilhos de banco de dados são executados quando modificações específicas (como inserções, exclusões e atualizações) ocorrem em um banco de dados. Os dados alterados são então armazenados no que geralmente é chamado de tabela de alterações ou tabela sombra.

Assim como a CDC baseada em registro de data e hora, a CDC baseada em gatilho pode ser simples de implementar. No entanto, também pode sobrecarregar os sistemas de origem, pois os gatilhos são "disparados" toda vez que ocorre uma transação na tabela de origem.

Origens e destinos comuns da CDC

Para ajudar a traçar um panorama completo da CDC, vamos analisar algumas fontes e destinos comuns da CDC.

As fontes de CDC são os sistemas de origem dos dados, tais como:

Os destinos da CDC são os sistemas para os quais os dados são transmitidos ou replicados, tais como:

  • Plataformas de fluxo de dados (Apache Kafka, Amazon Kinesis, Google Cloud Pub/Sub)

  • Data warehouses e lakehouses (Snowflake, Amazon Redshift, Google BigQuery)

  • Armazenamento de objetos em nuvem (AWS S3, Azure Blob Storage, Google Cloud Storage)

A conexão entre fontes e destinos normalmente requer ferramentas, conectores e plataformas de integração de dados da CDC.

ETL vs. CDC: principais diferenciais

ETL (extração, transformação e carregamento) e captura de dados de alteração são abordagens de integração de dados amplamente utilizadas, mas projetadas para finalidades diferentes.

Abaixo estão algumas das principais diferenças entre ETL e CDC:

  • Movimentação de dados: os pipelines de ETL normalmente ingerem conjuntos de dados inteiros ou grandes lotes de dados. A CDC apenas captura e transmite as alterações.

  • Velocidade de processamento e latência: o ETL geralmente é orientado por lotes em intervalos programados. A CDC foi projetada para movimentação de dados de baixa latência e sincronização contínua.

  • Casos de uso principais: a ETL é frequentemente usada para business intelligence, relatórios históricos e aprendizado de máquina. A CDC é comumente usada para análise em tempo real, detecção de fraudes e arquiteturas orientadas a eventos.

  • Transformação de dados: os pipelines ETL limpam e transformam os dados antes do carregamento. Os sistemas de CDC apenas identificam e replicam as alterações sem processamento adicional.

  • Impacto no sistema: os processos ETL tradicionais impõem uma carga maior nos sistemas de origem com cargas de trabalho em lote repetidas. A CDC minimiza a sobrecarga transmitindo apenas as alterações.

As organizações atuais costumam usar tanto a ETL quanto a CDC, muitas vezes em conjunto. Por exemplo, a CDC complementa os pipelines de ETL transmitindo atualizações incrementais após o carregamento inicial dos dados. Isso permite que os conjuntos de dados permaneçam atualizados em tempo real à medida que ocorrem alterações nos sistemas de origem, sem precisar esperar pela execução da próxima tarefa de ETL.

SCD vs. CDC: como eles diferem um do outro?

A CDC e as dimensões de mudança lenta (SCDs) trabalham em conjunto para manter os sistemas de destino precisos e atualizados.

Enquanto a CDC captura e transmite as alterações dos sistemas de origem, as SCDs definem como essas alterações são gerenciadas e armazenadas nas tabelas de dimensões em um data warehouse.

(Neste contexto, dados de dimensão normalmente se referem a data warehouses que armazenam atributos descritivos, como os endereços e números de telefone dos clientes).

Existem dois tipos comuns de SCDs: Tipo 1 e Tipo 2.

SCD Tipo 1: sobrescreve os dados existentes em uma tabela de dimensão com novos dados, sem manter o histórico.

SCD Tipo 2: adiciona uma nova linha a uma tabela de dimensões, preservando todas as alterações históricas ao longo do tempo

Ferramentas de captura de alterações de dados

As ferramentas de captura de dados de alteração (CDC) capturam e transmitem as alterações no banco de dados em tempo real, ajudando as organizações a oferecer suporte à integração de dados, análise de dados e arquiteturas orientadas a eventos.

Os recursos de CDC podem ser nativos de ambientes de banco de dados específicos, como o AWS Database Migration Service (DMS), ou podem ser implementados mais amplamente. As soluções comuns de CDC incluem ferramentas de código aberto, como o Debezium, e plataformas comerciais, como o IBM StreamSets e o Oracle GoldenGate.

Muitas organizações usam o Apache Kafka como base para os pipelines de CDC. As arquiteturas de CDC baseadas no Kafka podem capturar as alterações no banco de dados, transmiti-las por meio dos tópicos do Kafka e entregá-las a aplicações, data warehouses, plataformas de análise de dados e sistemas de IA.

Ao avaliar as ferramentas de CDC, as organizações geralmente consideram:

  • Escalabilidade
  • Preços
  • Latência
  • Suporte a conectores
  • Integração com o Kafka
  • Confiabilidade
  • Flexibilidade da implementação
  • Suporte à API

Casos de uso para captura de dados alterados

As empresas podem implementar a captura de dados de mudanças para uma variedade de usos:

Detecção de fraudes

O rastreamento contínuo de mudanças nos registros financeiros por meio da captura de dados de alterações pode permitir a detecção de atividades fraudulentas antes que elas resultem em perdas substanciais.

Recursos para a Internet das Coisas (IoT)

A CDC pode integrar com eficiência as enormes quantidades de dados em tempo real gerados pelos dispositivos de IoT, permitindo a manutenção preditiva e o monitoramento em tempo real.

Gestão de estoque e cadeia de suprimentos

O acesso a informações em tempo real sobre vendas, inventário e cadeia de suprimentos, apoiadas pela captura de dados de mudanças, pode ajudar as empresas a evitar a falta de estoque e a tomar decisões lucrativas sobre preços.

Conformidade regulamentar

A captura de dados de alterações pode ajudar empresas altamente regulamentadas a manter registros precisos necessários para relatórios e conformidade com regulamentos e leis como GDPR, a Lei Sarbanes-Oxley (SOX) e HIPAA nos EUA.

Autores

Alice Gomstyn

Staff Writer

IBM Think

Alexandra Jonker

Staff Editor

IBM Think

Soluções relacionadas
O IBM® watsonx.data Integração

Transforme dados brutos em dados prontos para IA com uma experiência do usuário otimizada para integrar qualquer dado, em qualquer estilo.

Explore o watsonx.data integration
Soluções de integração de dados

Crie pipelines de dados resilientes, de alto desempenho e de baixo custo para suas iniciativas de IA generativa, análise de dados em tempo real, modernização do data warehouse e necessidades operacionais com as soluções de integração de dados da IBM.

Explore as soluções de integração de dados
Serviços de consultoria em dados e IA

Escale a IA com sucesso aplicando a estratégia, os dados, a segurança e a governança certos.

Explore os serviços de consultoria em dados e IA
Dê o próximo passo

Integre dados estruturados e dados não estruturados por meio de uma combinação de estilos, incluindo lote, streaming em tempo real e replicação, para não perder tempo e dinheiro alternando entre ferramentas.

  1. Explore o IBM watsonx.data integration
  2. Explore as soluções de integração de dados