O que é captura de dados alterados?

A captura de dados alterados (CDC) é um processo usado para rastrear e capturar as mudanças feitas nos dados em um sistema de origem, como um banco de dados transacional, data warehouse ou aplicativo SaaS. Ao registrar as mudanças em tempo real, a CDC permite manter os sistemas sincronizados, ativar análises, treinar modelos de IA e oferecer suporte a migrações de dados perfeitas.

Saber quais mudanças ocorrem em um banco de dados é essencial para manter a integridade dos dados, otimizar fluxos de trabalho e gerar insights em tempo real. Um exemplo típico é no varejo: quando um cliente faz um pedido, o CDC captura essa venda do banco de dados transacional no momento em que ela acontece. Um serviço de CDC como o Datastream do Google Cloud pode replicar as mudanças de um banco de dados PostgreSQL no local para um data warehouse do BigQuery, alimentando um painel de análise quase em tempo real e eliminando a espera por trabalhos em lote noturnos lentos.

Introdução ao Datastream para BigQuery

Pontos principais

A captura de dados alterados (CDC) é um processo usado para identificar e capturar modificações de dados, como inserções, atualizações e exclusões, de um sistema de origem, geralmente quase em tempo real. O CDC é conhecido por:

  • Substituição de jobs em lote noturnos lentos: permite capturar alterações nos dados à medida que acontecem, em vez de extrair conjuntos de dados inteiros posteriormente
  • Casos de uso avançados: a CDC oferece suporte a migrações de banco de dados perfeitas, análises em tempo real e treinamento de IA

Qual é a diferença entre ETL e CDC?

O processo de ETL, que significa "extrair, transformar, carregar", envolve a extração de dados brutos do sistema de origem, a transformação na estrutura necessária e o carregamento no sistema de destino, normalmente um data warehouse. O ETL ajuda a garantir que os dados estejam organizados, limpos e prontos para uso posterior em análises ou aplicativos.

Tradicionalmente, o ETL é executado em lotes grandes e programados, geralmente durante a noite. Isso significa que os dados no sistema de destino são tão recentes quanto a execução em lote mais recente.

A principal diferença é como o CDC extrai dados. Em vez de extrair o conjunto de dados em lotes, a CDC captura as mudanças à medida que acontecem, o que possibilita consultar sempre os dados mais atuais em vez de depender do processamento em lote periódico. Isso pode ajudar você a responder mais rapidamente às mudanças e a ter insights mais precisos.

Qual é a diferença entre SCD e CDC?

A captura de dados alterados é principalmente um processo focado na extração eficiente de todas as mudanças incrementais de um banco de dados de origem, geralmente em tempo quase real, para minimizar a carga no sistema de origem.

Por outro lado, as dimensões de mudança lenta (SCDs) são uma técnica de modelagem de dados aplicada no data warehouse de destino ou sistema analítico, com foco em como armazenar e gerenciar o estado histórico dos dados de dimensão (como registros de clientes ou atributos de produtos) ao longo do tempo.

Embora a CDC seja a ferramenta para o transporte eficiente de dados das mudanças, essas mudanças são normalmente aplicadas usando uma estratégia SCD específica para manter um histórico completo e preciso no sistema de destino.

Origens e destinos comuns de CDC

A captura de dados alterados pode ser uma ponte poderosa para conectar os diversos sistemas que compõem uma pilha de dados ou nuvem de dados moderna. Em vez de se limitarem a bancos de dados específicos, as ferramentas de CDC são projetadas para funcionar com uma ampla variedade de origens e destinos.

Os bancos de dados transacionais são as fontes mais comuns de CDC, capturando cada inserção, atualização e exclusão dos sistemas que executam as operações comerciais diárias.

Geralmente o destino principal dos dados de CDC, esses sistemas consolidam informações de várias fontes para Business Intelligence, análise e IA.

  • Exemplos: BigQuery, Snowflake, Amazon Redshift, Databricks

Use o CDC para extrair dados de mudança de plataformas de negócios críticas (geralmente por APIs ou webhooks) para sincronizar dados de clientes, vendas ou suporte em toda a organização.

  • Exemplos: Salesforce, SAP, Stripe, HubSpot

As plataformas de streaming e mensagens geralmente atuam como um barramento de mensagens em tempo real, recebendo eventos de mudança de uma origem e distribuindo-os para vários consumidores downstream simultaneamente.

  • Exemplos: Apache Kafka, Pub/Sub, Amazon Kinesis

Um destino comum para registros de eventos brutos de CDC, já que o armazenamento de objetos fornece uma base escalonável e econômica para a criação de um data lake.

Principais casos de uso da captura de dados alterados

O CDC pode desbloquear uma ampla variedade de casos de uso críticos, desde garantir a continuidade dos dados até potencializar análises e IA em tempo real.

  • Replicação: os bancos de dados secundários ou backups permanecem consistentes com o sistema principal ao capturar mudanças em tempo real. Isso é essencial para arquiteturas de recuperação de desastres e alta disponibilidade.
  • Migração: as migrações de banco de dados são simplificadas pelo rastreamento das mudanças em andamento e pela garantia de que o sistema de destino reflita a origem com precisão, mesmo durante migrações em tempo real.
  • Análise em tempo real: ao inserir dados dinâmicos em sistemas de análise, a CDC ajuda você a responder a tendências e mudanças à medida que elas ocorrem, oferecendo insights atualizados.
  • Dados para treinamento de IA: o CDC fornece os dados mais atuais, permitindo que modelos de IA e machine learning sejam treinados com informações precisas e relevantes, melhorando as previsões e a tomada de decisões.
  • Criação de uma nuvem de dados: o CDC é um serviço essencial para criar uma nuvem de dados unificada, transmitindo alterações em tempo real de diversas fontes isoladas (como bancos de dados transacionais e aplicativos SaaS) para uma plataforma de análise central e vice-versa. Isso ajuda a superar as barreiras de dados e cria uma única fonte de verdade.

Perguntas frequentes sobre a captura de dados alterados

Ao capturar e propagar as mudanças à medida que ocorrem, a CDC garante que vários sistemas (como um banco de dados primário mais um backup ou um banco de dados primário mais uma plataforma de análise) estejam sempre sincronizados. Isso elimina discrepâncias de dados e mantém a integridade dos dados em todas as plataformas.

A captura de dados alterados funciona identificando, rastreando e extraindo as alterações feitas nos dados em um banco de dados de origem usando abordagens variadas, incluindo as seguintes:

  • CDC baseada em registros, que lê o registro de transações interno do banco de dados (o registro de todas as alterações) para transmitir essas alterações específicas para um sistema de destino quase em tempo real, minimizando a carga de recursos
  • A CDC baseada em gatilhos envolve a criação de gatilhos de banco de dados em tabelas para registrar alterações em tabelas de sombra separadas sempre que uma modificação ocorre, embora isso possa adicionar sobrecarga ao processamento de transações do banco de dados de origem
  • A CDC baseada em carimbo de data/hora é o método mais simples, mas o menos eficiente, porque depende de um carimbo de data/hora ou coluna de versão na tabela de origem para consultar periodicamente as linhas em que o horário da alteração é mais recente do que o horário da última extração

Como a CDC funciona com bancos de dados

Os bancos de dados são a fonte mais comum e confiável para a captura de dados de mudança devido a um componente principal que todos eles compartilham: o registro de transações. Esse registro é um registro imutável e ordenado de cada alteração, o que o torna a base perfeita para capturar modificações de dados com precisão e eficiência sem afetar o desempenho do banco de dados. Confira uma análise mais detalhada dos principais conceitos.

Entender o registro de transações do banco de dados

Antes que qualquer dado seja gravado nas tabelas do banco de dados, a alteração (uma inserção, atualização ou exclusão) é registrada em um registro de transações. As ferramentas modernas de CDC aproveitam esse registro para capturar mudanças de forma não intrusiva. Essa é uma parte essencial da tecnologia de replicação de banco de dados, e embora o conceito seja universal, o nome desse registro varia entre os bancos de dados mais usados. Alguns exemplos notáveis:

  • PostgreSQL: registro prévio de escrita (WAL)
  • Oracle: redo log
  • SQL Server: log de transações
  • MySQL: registro binário (Binlog)

Como combinar cargas iniciais com CDC

Para bancos de dados grandes e atuais, ler todo o histórico do registro de transações pode ser impraticável devido ao desempenho da rede e outras restrições. Um padrão comum no mundo real é primeiro realizar um carregamento em massa e depois usar o CDC para sincronizar. O processo envolve o seguinte:

  1. Tirar um snapshot ou backup consistente do banco de dados em um momento específico.
  2. Carregar esse snapshot grande no sistema de destino.
  3. Iniciar o fluxo de CDC da posição exata do registro em que o snapshot foi feito.

Esse método de "snapshot e recuperação" garante que o destino seja totalmente preenchido com dados históricos e, em seguida, mantido perfeitamente sincronizado com todas as alterações dinâmicas subsequentes. É assim que serviços gerenciados como o Datastream e o Database Migration Service do Google Cloud realizam backfills confiáveis e sem interrupções.

Posicionamento e recuperação com números de sequência de registros

Para gerenciar esse processo de maneira confiável, a CDC depende de identificadores exclusivos no registro de transações, normalmente chamados de números de sequência de registros (LSNs). Esses números atuam como marcadores precisos para o fluxo de mudanças. Elas são essenciais para o seguinte:

  • Posicionamento: saber exatamente onde começar ou parar um fluxo no registro
  • Recuperação: se um processo de CDC falhar, ele poderá ser reiniciado do último LSN processado com sucesso, garantindo que cada alteração seja capturada exatamente uma vez, sem perda ou duplicação de dados

Esses mecanismos (o registro de transações, o snapshot inicial e o número de sequência de registros) trabalham em conjunto para tornar a CDC de banco de dados altamente eficiente e confiável.

Benefícios da captura de dados alterados

A CDC pode oferecer várias vantagens que a tornam indispensável nos fluxos de trabalho de dados modernos:

Consistência de dados entre sistemas

Sincroniza as mudanças conforme elas acontecem, reduzindo as discrepâncias e garantindo dados mais precisos em todas as plataformas.

Movimentação eficiente de dados

Garante que apenas as mudanças sejam capturadas em vez de conjuntos de dados inteiros, ajudando a reduzir significativamente a tensão do sistema e o uso da rede.

Integração perfeita

Conecta seus sistemas usando uma biblioteca de conectores pré-criados. Muitas plataformas oferecem interfaces sem código para configurar pipelines e gerenciar automaticamente tarefas complexas de back-end, como detecção de desvio de esquema e transformações de dados em trânsito, garantindo que seus dados fluam sem interrupção.

Resiliência operacional

Oferece suporte a esforços de replicação e recuperação de desastres, mantendo automaticamente os sistemas e backups alinhados sem intervenção manual.

Insights em tempo real

Dá acesso aos dados mais recentes quase instantaneamente, permitindo uma tomada de decisões mais rápida e embasada. Essa agilidade pode ser uma vantagem crucial em ambientes dinâmicos como negociações financeiras, e-commerce e logística, em que o valor dos dados diminui em segundos.

Tecnologias e alternativas concorrentes

Várias tecnologias se sobrepõem ou complementam a CDC, oferecendo abordagens variadas para gerenciar mudanças de dados e permitir o processamento em tempo real. Veja como o CDC se compara a outras abordagens importantes:

Processamento transacional e analítico híbrido (HTAP)

O HTAP combina cargas de trabalho transacionais (OLTP) e analíticas (OLAP) em um único sistema, fornecendo análises imediatas sobre os dados. Embora isso torne o HTAP adequado para análises unificadas em um ambiente independente, ele pode ter dificuldades para sincronizar com as diversas fontes de dados distribuídas que existem em uma organização. Por outro lado, o CDC se destaca na manutenção da consistência dos dados em vários sistemas e na ativação de fluxos de trabalho distribuídos.

Consultas federadas

As consultas federadas (e uma abordagem semelhante chamada "tabelas externas") permitem que um data warehouse ou mecanismo de consulta leia dados diretamente de um sistema de origem externo, como um banco de dados transacional, no momento em que uma consulta é executada. Essa abordagem evita a necessidade de copiar ou mover dados, fornecendo acesso em tempo real às informações onde elas residem.

Esse método pode ser excelente para análises ad hoc ou consultas ocasionais, já que oferece acesso imediato sem a configuração de um pipeline de replicação. No entanto, para consultas usadas com frequência ou sensíveis à performance, pode ser ineficiente, já que coloca uma carga direta no sistema operacional de origem a cada consulta. Ao contrário do CDC, que envia proativamente um fluxo de mudanças para um destino para análise otimizada, a federação extrai dados sob demanda, o que pode ser inadequado para cargas de trabalho de alta frequência.

Plataformas de streaming de dados

O Kafka é uma plataforma de código aberto projetada para streaming e processamento de dados de alta capacidade. Embora ele gerencie fluxos de dados em grande escala com eficiência, o Kafka complementa a CDC em vez de substituí-la. A CDC se concentra na captura de mudanças precisas no banco de dados em tempo real, enquanto o Kafka transmite dados de eventos mais amplos, como um clique em um site, uma leitura de sensor de IoT ou um item sendo adicionado a um carrinho de compras. Juntas, essas tecnologias podem criar uma combinação poderosa para fluxos de trabalho em tempo real.

Integração no nível do aplicativo

Embora o CDC use uma abordagem sem código para replicar dados, as tecnologias de integração que se conectam na camada de aplicativo conectam sistemas e plataformas SaaS usando uma abordagem de pouco código. Se você quiser transformar os dados à medida que eles se movem entre plataformas, os produtos de integração no nível do aplicativo, como o Application Integration do Google Cloud, podem ser uma ferramenta melhor para o trabalho.

Resolva seus desafios comerciais com o Google Cloud

Clientes novos recebem US$ 300 em créditos para usar no Google Cloud.

Comece a usar o CDC no Google Cloud

O Datastream é o serviço de replicação e captura de dados alterados (CDC) sem servidor, confiável e fácil de usar do Google Cloud. Ele minimiza a latência e permite a sincronização de dados em diversos bancos de dados e aplicativos. Aqui estão alguns recursos para ajudar você a começar:

Vá além

Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.

Google Cloud