¿Qué es la captura de datos de cambios?

La captura de datos de cambios (CDC) es un proceso que se usa para hacer un seguimiento de los cambios que se hacen 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 para capturarlos. Al registrar los cambios en tiempo real, la CDC te permite mantener los sistemas sincronizados, potenciar las analíticas, entrenar modelos de IA y facilitar las migraciones de datos.

Saber qué cambios se producen 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 hace 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 de PostgreSQL on-premise en un almacén de datos de BigQuery, lo que permite crear un panel de analíticas casi en tiempo real y elimina la espera de los lentos procesos por lotes nocturnos.

Introducción a Datastream para BigQuery

Conclusiones clave

La captura de datos de cambios (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. La CDC es famosa por lo siguiente:

  • Sustitución de tareas por lotes nocturnas y lentas: permite captar los cambios en los datos a medida que se producen, en lugar de extraer conjuntos de datos completos más tarde.
  • Casos prácticos eficaces: CDC permite realizar migraciones de bases de datos sin problemas, analíticas en tiempo real y entrenamientos de IA

¿Qué diferencia hay entre el ETL y la CDC?

El proceso de ETL (extracción, transformación y carga) consiste en extraer datos sin procesar de su sistema de origen, transformarlos en la estructura necesaria y, a continuación, cargarlos en el sistema de destino, que suele ser un almacén de datos. El ETL ayuda a garantizar que los datos estén organizados, limpios y listos para su uso posterior en analíticas o aplicaciones.

Tradicionalmente, el proceso 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 tan actualizados como la ejecución de lote más reciente.

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

¿Qué diferencia hay entre la SCD y la CDC?

La captura de datos de cambios es principalmente un proceso centrado 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.

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

Aunque la CDC es la herramienta para transportar los cambios de datos de forma eficiente, estos cambios suelen aplicarse mediante una estrategia de SCD específica para mantener un historial completo y preciso en el sistema de destino.

Fuentes y destinos de CDC habituales

La captura de datos de cambios puede ser un puente eficaz para conectar los diversos sistemas que componen 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 de CDC, ya que capturan cada inserción, actualización y eliminación de los sistemas que ejecutan las operaciones empresariales diarias.

Estos sistemas, que suelen ser el destino principal de los datos de CDC, consolidan la información de varias fuentes para la inteligencia empresarial, las analíticas y la IA.

  • Ejemplos: BigQuery, Snowflake, Amazon Redshift y Databricks

Usa CDC para extraer datos de cambios de plataformas empresariales críticas (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 y HubSpot

Las plataformas de streaming y mensajería suelen actuar como un bus de mensajes en tiempo real, recibiendo eventos de cambio de una fuente y distribuyéndolos a varios consumidores posteriores simultáneamente.

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

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

Casos prácticos clave de la captura de datos de cambios

CDC puede habilitar una amplia gama de casos prácticos críticos, desde garantizar la continuidad de los datos hasta potenciar las analíticas y la IA en tiempo real.

  • Replicación: las bases de datos secundarias o las copias de seguridad se mantienen coherentes con el sistema principal capturando los cambios en tiempo real. Esto es fundamental para la recuperación tras fallos y las arquitecturas de alta disponibilidad.
  • Migración: las migraciones de bases de datos se simplifican al hacer un seguimiento de los cambios que se producen y al asegurar que el sistema de destino refleja con precisión el origen, incluso durante las migraciones en tiempo real.
  • Analíticas en tiempo real: al introducir datos en directo en los sistemas de analíticas, la CDC te ayuda a responder a las tendencias y los cambios a medida que se producen, ofreciéndote estadísticas actualizadas al minuto.
  • Datos para el entrenamiento de la IA: la CDC proporciona los datos más recientes, lo que permite entrenar modelos de IA y aprendizaje automático con información precisa y relevante, mejorando las predicciones y la toma de decisiones.
  • Creación de una nube de datos: la CDC es un servicio esencial para crear una nube de datos unificada, que transmite cambios en tiempo real desde diversas fuentes aisladas (como bases de datos transaccionales y aplicaciones SaaS) a una plataforma de analíticas central y viceversa. Esto ayuda a romper las barreras de datos y crea una única fuente de información veraz.

Preguntas frecuentes sobre la captura de datos de cambios

Al capturar y propagar los cambios a medida que se producen, la CDC garantiza que varios sistemas (como una base de datos principal y una copia de seguridad, o una base de datos principal y una plataforma de analíticas) estén siempre sincronizados. De esta forma, se eliminan las discrepancias en los datos y se mantiene la integridad de los datos en todas las plataformas.

La captura de datos de cambios funciona identificando, monitorizando y extrayendo los cambios que se hacen en los datos de una base de datos de origen mediante diferentes enfoques, como 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 esos cambios específicos a un sistema de destino casi en tiempo real, lo que minimiza la carga de recursos.
  • La CDC basada en activadores consiste en crear activadores de bases de datos en las tablas para registrar los cambios en tablas secundarias independientes cada vez que se produce una modificación, aunque esto puede añadir sobrecarga al procesamiento de transacciones de la base de datos de origen.
  • CDC basada en marcas de tiempo: es el método más sencillo, pero el que ofrece un rendimiento más bajo. Se basa en una marca de tiempo o una columna de versión en la tabla de origen para consultar periódicamente las filas en las que la hora de cambio es más reciente que la hora de la última extracción.

Cómo funciona la CDC con las bases de datos

Las bases de datos son la fuente más común y fiable para la captura de datos de cambios, ya que todas comparten un componente fundamental: 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 al rendimiento de la base de datos. A continuación, analizamos en detalle los conceptos clave.

Información sobre el registro de transacciones de bases de datos

Antes de que se escriban datos en las tablas de la base de datos, el cambio (inserción, actualización o eliminación) se registra primero en un registro de transacciones. Las herramientas modernas de CDC aprovechan este registro para captar los cambios de forma no intrusiva. 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 en las bases de datos más populares. Algunos ejemplos destacados:

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

Combinar cargas iniciales con CDC

En el caso de las bases de datos grandes, leer todo el historial del registro de transacciones puede ser poco práctico debido al rendimiento de la red y otras limitaciones. Un patrón común en el mundo real es realizar primero una carga masiva y, después, usar CDC para sincronizar. El proceso implica:

  1. Hacer una captura o copia de seguridad coherente de la base de datos en un momento concreto.
  2. Cargar esa gran captura en el sistema de destino.
  3. Iniciar el flujo de CDC desde la posición exacta del registro en la que se tomó la captura.

Este método de "captura y puesta al día" garantiza que el destino se rellene por completo con datos históricos y, después, se mantenga perfectamente sincronizado con todos los cambios en tiempo real posteriores. Así es como los servicios gestionados como Datastream y Database Migration Service de Google Cloud realizan rellenos de datos históricos fiables y sin interrupciones.

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

Para gestionar este proceso de forma fiable, CDC se basa en identificadores únicos dentro del registro de transacciones, que normalmente se denominan números de secuencia de registro (LSNs). Estos números actúan como marcadores precisos para el flujo de cambios. Son fundamentales para:

  • Posicionamiento: saber exactamente en qué punto del registro iniciar o detener un flujo.
  • 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 captura inicial y el número de secuencia de registro) funcionan en conjunto para que el CDC de bases de datos sea muy eficiente y fiable.

Ventajas de la captura de datos de cambios

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

Coherencia de los datos en todos los sistemas

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

Traslado de datos eficiente

Solo se capturan los cambios en lugar de conjuntos de datos completos, lo que ayuda a reducir significativamente la carga sobre el sistema y el uso de la red.

Integración perfecta

Conecta tus sistemas mediante una biblioteca de conectores predefinidos. Muchas plataformas ofrecen interfaces sin código para configurar flujos de procesamiento y gestionar automáticamente tareas complejas de backend, como la detección de cambios en el esquema y las transformaciones de datos en tránsito, lo que garantiza que los datos fluyan sin interrupciones.

Resiliencia operativa

Admite la recuperación tras fallos y las labores de replicación manteniendo automáticamente los sistemas y las copias de seguridad alineados sin intervención manual.

Información valiosa en tiempo real

Permite acceder a los datos más recientes casi al instante, lo que agiliza la toma de decisiones y la fundamenta mejor. Esta agilidad puede proporcionar una ventaja crucial en entornos dinámicos como el comercio financiero, el comercio electrónico y la logística, donde el valor de los datos se deteriora en segundos.

Tecnologías y alternativas de la competencia

Varias tecnologías se solapan con la CDC o la complementan, ofreciendo diferentes enfoques para gestionar los cambios en los datos y permitir el procesamiento en tiempo real. Así es como se compara el CDC con otros enfoques destacados:

Procesamiento de transacciones analítico e híbrido (HTAP)

HTAP combina cargas de trabajo transaccionales (OLTP) y analíticas (OLAP) en un solo sistema, lo que proporciona analíticas inmediatas sobre los datos. Aunque esto hace que HTAP sea muy adecuado para la analítica unificada 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 destaca por mantener la coherencia de los datos en varios sistemas y por permitir 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. De esta forma, no es necesario copiar ni mover los datos, ya que se puede acceder a la información en tiempo real desde donde se encuentre.

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

Plataformas de streaming de datos

Kafka es una plataforma de código abierto diseñada para el procesamiento y el streaming de datos de alto rendimiento. Aunque gestiona de forma eficiente flujos de datos a gran escala, Kafka complementa la CDC en lugar de sustituirla. La CDC se centra en capturar cambios precisos en bases de datos en tiempo real, mientras que Kafka transmite datos de eventos más amplios, como un clic en un sitio web, la lectura de un sensor de IoT o la adición de un artículo a un carrito de la compra. Juntas, estas tecnologías pueden crear una combinación potente para los flujos de trabajo en tiempo real.

Integración a nivel de aplicación

Aunque la 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 usando un enfoque con poco código. Si quieres transformar los datos a medida que se mueven entre plataformas, los productos de integración a nivel de aplicación, como Application Integration de Google Cloud, pueden ser una mejor herramienta para el trabajo.

Soluciona los retos empresariales que se te presenten con Google Cloud

Los nuevos clientes reciben 300 USD en crédito gratis para invertirlos en Google Cloud.

Empieza a usar CDC en Google Cloud

Datastream es el servicio de captura y replicación de datos de cambios (CDC) sin servidor, fiable y fácil de usar de Google Cloud. Minimiza la latencia y permite sincronizar datos en distintas bases de datos y aplicaciones. Aquí tienes algunos recursos que te ayudarán a empezar:

Ve un paso más allá

Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.

Google Cloud