¿Qué es la captura de datos modificados?

La captura de datos modificados (CDC) es un proceso que se usa para hacer un seguimiento de los cambios realizados en los datos de un sistema de origen, como una base de datos transaccional, un almacén de datos o una aplicación SaaS, y capturarlos. Con el registro de cambios en tiempo real, la CDC te permite mantener los sistemas sincronizados, potenciar los análisis, entrenar modelos de IA y respaldar migraciones de datos sin interrupciones.

Saber qué cambios ocurren en una base de datos es esencial para mantener la integridad de los datos, optimizar los flujos de trabajo y obtener estadísticas en tiempo real. Un ejemplo típico es el comercio minorista: cuando un cliente realiza un pedido, la CDC captura esa venta de la base de datos transaccional en el momento en que se produce. Un servicio de CDC como Datastream de Google Cloud puede replicar los cambios de una base de datos PostgreSQL local en un almacén de datos BigQuery, lo que permite un panel de estadísticas casi en tiempo real y elimina la espera de trabajos por lotes lentos y nocturnos.

Introducción a Datastream para BigQuery

Conclusiones principales

La captura de datos modificados (CDC) es un proceso que se usa para identificar y capturar modificaciones de datos, como inserciones, actualizaciones y eliminaciones, de un sistema de origen, a menudo casi en tiempo real. CDC es reconocido por lo siguiente:

  • Reemplazo de trabajos por lotes lentos y nocturnos: Permite capturar los cambios en los datos a medida que ocurren, en lugar de extraer conjuntos de datos completos más tarde.
  • Casos de uso potentes: CDC admite migraciones de bases de datos sin interrupciones, análisis en tiempo real y entrenamiento de IA

¿Cuál es la diferencia entre ETL y CDC?

El proceso de ETL, que significa “extracción, transformación y carga”, implica extraer datos sin procesar de su sistema de origen, transformarlos en la estructura necesaria y, luego, cargarlos en el sistema de destino, que suele ser un almacén de datos. La ETL ayuda a garantizar que los datos estén organizados, limpios y listos para su uso posterior en análisis o aplicaciones.

Tradicionalmente, ETL se ejecuta en lotes grandes y programados, a menudo durante la noche. Esto significa que los datos del sistema de destino solo están actualizados hasta la ejecución de lote más reciente.

La diferencia clave es cómo CDC extrae los datos. En lugar de extraer el conjunto de datos en lotes, la CDC captura los cambios a medida que ocurren, lo que permite consultar siempre los datos más actuales en lugar de depender del procesamiento periódico por lotes. Esto puede ayudarte a responder más rápido a los cambios y obtener estadísticas más precisas.

¿Cuál es la diferencia entre SCD y CDC?

La captura de datos modificados es principalmente un proceso enfocado en la extracción eficiente de todos los cambios incrementales de una base de datos de origen, a menudo casi en tiempo real, para minimizar la carga en el sistema de origen.

En cambio, las dimensiones de cambio lento (SCD) son una técnica de modelado de datos que se aplica en el almacén de datos de destino o en el sistema analítico, y se enfoca en cómo almacenar y administrar el estado histórico de los datos de dimensión (como registros de clientes o atributos de productos) a lo largo del tiempo.

Si bien la CDC es la herramienta para el transporte eficiente de datos de los cambios, estos se suelen aplicar con una estrategia de SCD específica para mantener un historial completo y preciso en el sistema de destino.

Fuentes y destinos comunes de CDC

La captura de datos modificados puede ser un puente poderoso para conectar los diversos sistemas que conforman una pila de datos moderna o una nube de datos. En lugar de limitarse a bases de datos específicas, las herramientas de CDC están diseñadas para funcionar con una amplia variedad de fuentes y destinos.

Las bases de datos transaccionales son las fuentes más comunes para CDC, ya que capturan cada inserción, actualización y eliminación de los sistemas que ejecutan las operaciones comerciales diarias.

Estos sistemas, que suelen ser el destino principal de los datos de CDC, consolidan información de múltiples fuentes para la inteligencia empresarial, el análisis y la IA.

  • Ejemplos: BigQuery, Snowflake, Amazon Redshift, Databricks

Usa CDC para extraer datos de cambio de plataformas empresariales fundamentales (a menudo a través de APIs o webhooks) para sincronizar datos de clientes, ventas o asistencia en toda la organización.

  • Ejemplos: Salesforce, SAP, Stripe, HubSpot

Las plataformas de transmisión y mensajería suelen actuar como un bus de mensajería en tiempo real, ya que reciben eventos de cambio de una fuente y los distribuyen a varios consumidores posteriores de forma simultánea.

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

Un destino común para los registros de eventos de CDC sin procesar, ya que el almacenamiento de objetos proporciona una base escalable y rentable para crear un data lake.

Casos de uso clave para la captura de datos modificados

La CDC puede desbloquear una amplia gama de casos de uso críticos, desde garantizar la continuidad de los datos hasta potenciar el análisis en tiempo real y la IA.

  • Replicación: Las bases de datos secundarias o las copias de seguridad siguen siendo coherentes con el sistema principal capturando los cambios en tiempo real. Esto es fundamental para las arquitecturas de recuperación ante desastres y alta disponibilidad.
  • Migración: Las migraciones de bases de datos se simplifican con el seguimiento de los cambios en curso y la garantía de que el sistema de destino refleje el origen con precisión, incluso durante las migraciones en vivo.
  • Análisis en tiempo real: Al alimentar los sistemas de análisis con datos en vivo, la CDC te ayuda a responder a las tendencias y los cambios a medida que ocurren, lo que ofrece estadísticas actualizadas.
  • Datos para el entrenamiento de IA: CDC proporciona los datos más actuales, lo que permite que los modelos de IA y aprendizaje automático se entrenen con información precisa y pertinente, lo que mejora las predicciones y la toma de decisiones.
  • Creación de una nube de datos: CDC es un servicio esencial para crear una nube de datos unificada, transmitir cambios en tiempo real desde diversas fuentes aisladas (como bases de datos transaccionales y aplicaciones SaaS) a una plataforma de análisis central y viceversa. Esto ayuda a derribar las barreras de datos y crea una única fuente de información.

Preguntas frecuentes sobre la captura de datos modificados

Con la captura y propagación de cambios a medida que se producen, la CDC garantiza que varios sistemas (como una base de datos principal más una copia de seguridad, o una base de datos principal más una plataforma de análisis) siempre estén sincronizados. Esto elimina las discrepancias de datos y mantiene la integridad de los datos en todas las plataformas.

La captura de datos modificados funciona identificando, rastreando y extrayendo los cambios realizados en los datos de una base de datos de origen con diferentes enfoques, incluidos los siguientes:

  • CDC basada en registros, que lee el registro de transacciones interno de la base de datos (el registro de todos los cambios) para transmitir estos cambios específicos a un sistema de destino casi en tiempo real, lo que minimiza la carga de recursos
  • La CDC basada en activadores implica crear activadores de bases de datos en tablas para registrar cambios en tablas paralelas separadas cada vez que se produce una modificación, aunque esto puede agregar sobrecarga al procesamiento de transacciones de la base de datos de origen.
  • La CDC basada en marcas de tiempo es el método más simple, pero el de menor rendimiento, ya que se basa en una columna de marca de tiempo o versión en la tabla de origen para consultar periódicamente las filas en las que el tiempo de cambio es más reciente que el último tiempo de extracción.

Cómo funciona la CDC con bases de datos

Las bases de datos son la fuente más común y confiable para la captura de datos modificados debido a un componente central que todas comparten: el registro de transacciones. Este registro es un registro inmutable y ordenado de cada cambio, lo que lo convierte en la base perfecta para capturar modificaciones de datos de forma precisa y eficiente sin afectar el rendimiento de la base de datos. Aquí tienes un análisis más profundo de los conceptos clave.

Comprende el registro de transacciones de la base de datos

Antes de que se escriban datos en las tablas de la base de datos real, el cambio (una inserción, actualización o eliminación) se registra primero en un registro de transacciones. Las herramientas modernas de CDC aprovechan este registro para capturar cambios de forma no intrusiva. Esta es una parte fundamental de la tecnología de replicación de bases de datos, y aunque el concepto es universal, el nombre de este registro varía entre las bases de datos populares. Estos son algunos ejemplos notables:

  • PostgreSQL: registro de escritura anticipada (WAL)
  • Oracle: registro de rehacer
  • SQL Server: registro de transacciones
  • MySQL: registro binario (Binlog)

Combinación de cargas iniciales con CDC

Para bases de datos grandes y existentes, leer todo el historial del registro de transacciones puede ser poco práctico debido al rendimiento de la red y otras restricciones. Un patrón común en el mundo real es realizar primero una carga masiva y, luego, usar CDC para sincronizar. El proceso implica lo siguiente:

  1. Tomar una instantánea o copia de seguridad coherente de la base de datos en un momento específico.
  2. Cargar esa instantánea grande en el sistema de destino
  3. Comenzar la transmisión de CDC desde la posición exacta del registro en la que se tomó la instantánea

Este método de “instantánea y recuperación” garantiza que el destino se complete con datos históricos y, luego, se mantenga perfectamente sincronizado con todos los cambios posteriores en vivo. Así es como los servicios administrados como Datastream y Database Migration Service de Google Cloud realizan rellenos sin interrupciones y confiables.

Posicionamiento y recuperación con números de secuencia de registros

Para administrar este proceso de manera confiable, CDC se basa en identificadores únicos dentro del registro de transacciones, que normalmente se denominan números de secuencia de registro (LSN). Estos números actúan como marcadores precisos para el flujo de cambios. Son fundamentales para lo siguiente:

  • Posicionamiento: Saber exactamente dónde comenzar o detener una transmisión en el registro
  • Recuperación: Si un proceso de CDC falla, puede reiniciarse desde el último LSN procesado correctamente, lo que garantiza que cada cambio se capture exactamente una vez sin pérdida ni duplicación de datos

Estos mecanismos (el registro de transacciones, la instantánea inicial y el número de secuencia de registro) funcionan en conjunto para que la CDC de la base de datos sea altamente eficiente y confiable.

Beneficios de la captura de datos modificados

La CDC puede ofrecer varias ventajas que la hacen indispensable en los flujos de trabajo de datos modernos:

Coherencia de los datos en los sistemas

Sincroniza los cambios a medida que se producen, lo que reduce las discrepancias y garantiza datos más precisos en todas las plataformas.

Movimiento de datos eficiente

Garantiza que solo se capturen los cambios en lugar de conjuntos de datos completos, lo que ayuda a reducir significativamente la tensión del sistema y el uso de la red.

Integración perfecta

Conecta tus sistemas con una biblioteca de conectores prediseñados. Muchas plataformas proporcionan interfaces sin código para configurar canalizaciones y administrar automáticamente tareas complejas de backend, como la detección de cambios de esquemas y las transformaciones de datos en tránsito, lo que garantiza que tus datos fluyan sin interrupciones.

Resiliencia operativa

Apoya los esfuerzos de recuperación ante desastres y replicación manteniendo automáticamente los sistemas y las copias de seguridad alineados sin intervención manual.

Estadísticas en tiempo real

Proporciona acceso a los datos más recientes casi al instante, lo que permite tomar decisiones más rápidas y fundamentadas. Esta agilidad puede proporcionar una ventaja fundamental en entornos de ritmo rápido como el comercio financiero, el comercio electrónico y la logística, en los que el valor de los datos se deteriora en segundos.

Tecnologías y alternativas de la competencia

Varias tecnologías se superponen con la CDC o la complementan, lo que ofrece enfoques variados para administrar los cambios de datos y habilitar el procesamiento en tiempo real. Aquí se muestra cómo se compara la CDC con otros enfoques destacados:

Procesamiento híbrido transaccional y analítico (HTAP)

HTAP combina cargas de trabajo transaccionales (OLTP) y analíticas (OLAP) en un solo sistema, lo que proporciona análisis inmediatos de los datos. Si bien esto hace que HTAP sea adecuado para el análisis unificado en un entorno autónomo, puede tener dificultades para sincronizarse con las diversas fuentes de datos distribuidas que existen en una organización. Por otro lado, la CDC se destaca por mantener la coherencia de los datos en varios sistemas y habilitar flujos de trabajo distribuidos.

Consultas federadas

Las consultas federadas (y un enfoque similar llamado “tablas externas”) permiten que un almacén de datos o un motor de consultas lean datos directamente de un sistema de origen externo, como una base de datos transaccional, en el momento en que se ejecuta una consulta. Este enfoque evita la necesidad de copiar o mover datos, lo que proporciona acceso en vivo a la información donde reside.

Este método puede ser excelente para análisis ad hoc o consultas ocasionales, ya que ofrece acceso inmediato sin la configuración de una canalización de replicación. Sin embargo, para las consultas que se usan con regularidad o que son sensibles al rendimiento, puede ser ineficiente, ya que coloca una carga directa en el sistema operativo de origen con cada consulta. A diferencia de la CDC, que envía de forma proactiva una transmisión de cambios a un destino para optimizar el análisis, la federación extrae datos a pedido, lo que puede no ser adecuado para cargas de trabajo de alta frecuencia.

Plataformas de transmisión de datos

Kafka es una plataforma de código abierto diseñada para la transmisión y el procesamiento de datos de alto rendimiento. Si bien administra de manera eficiente flujos de datos a gran escala, Kafka complementa la CDC en lugar de reemplazarla. CDC se enfoca en capturar cambios precisos de la base de datos en tiempo real, mientras que Kafka transmite datos de eventos más amplios, como un clic en un sitio web, una lectura de un sensor de IoT o un elemento que se agrega a un carrito de compras. En conjunto, estas tecnologías pueden crear una combinación poderosa para flujos de trabajo en tiempo real.

Integración a nivel de aplicación

Si bien CDC usa un enfoque sin código para replicar datos, las tecnologías de integración que se conectan en la capa de aplicación conectan sistemas y plataformas SaaS con un enfoque de poco código. Si quieres transformar los datos a medida que se mueven entre plataformas, los productos de integración a nivel de la aplicación, como Application Integration de Google Cloud, pueden ser una mejor herramienta para el trabajo.

Resuelve tus desafíos más difíciles con Google Cloud

Los clientes nuevos obtienen $300 en créditos gratuitos que pueden usar en Google Cloud.

Comienza a usar CDC en Google Cloud

Datastream es el servicio de replicación y captura de datos modificados (CDC) sin servidores, confiable y fácil de usar de Google Cloud. Minimiza la latencia y, al mismo tiempo, permite la sincronización de datos en diversas bases de datos y aplicaciones. A continuación, te mostramos algunos recursos para comenzar:

Da el siguiente paso

Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.

Google Cloud