¿Qué es la captura de datos de cambio?

Captura de datos de cambio, definida

La captura de datos de cambio (CDC) es una técnica para detectar y capturar los cambios realizados en los datos de una base de datos y transmitir esos cambios a los sistemas posteriores. La CDC permite la sincronización de datos, la replicación y el procesamiento basado en eventos casi en tiempo real o en tiempo real entre sistemas tras los cambios en la base de datos.

La captura de datos de cambios es un método de integración de datos en tiempo real que combina y armoniza datos que, de otro modo, podrían permanecer aislados o incoherentes en toda una organización. Otros métodos de integración de datos son la integración de datos de flujo, la virtualización de datos y la integración de aplicaciones.

La capacidad de los CDC para mantener actualizados los procesos y sistemas posteriores casi en tiempo real o en tiempo real con baja latencia es fundamental para el éxito de los análisis de datos en tiempo real, las migraciones a la nube y los modelos de inteligencia artificial (IA). Apoya una variedad de casos de uso en distintos sectores, incluyendo la detección del fraude, la gestión de la cadena de suministro y el cumplimiento normativo en sectores como el comercio minorista, las finanzas y la sanidad.

Existen varios enfoques para cambiar la captura de datos, con CDC basada en registros, CDC basada en marcas de tiempo y CDC basada en desencadenantes entre los más comunes. Las empresas pueden implementar la captura de datos modificados a través de herramientas nativas de bases de datos, plataformas de código abierto y soluciones de terceros.

¿Cuáles son los beneficios de la captura de datos de cambio?

En la gestión de datos moderna, la captura de datos de cambio se ha convertido en un mecanismo crítico de la ingeniería de datos. Los entornos de datos empresariales actuales son cada vez más grandes y complejos. Pueden contener datos procedentes de dispositivos del Internet de las cosas (IoT), bases de datos distribuidas, aplicaciones y otras fuentes diversas. Mantener datos coherentes y de calidad en este ecosistema de datos en constante crecimiento es un reto continuo.

Al mismo tiempo, la empresa exige información precisa y actualizada que pueda aprovecharse para la toma de decisiones en tiempo real. La captura de datos de cambio es uno de los varios métodos que ayudan a las organizaciones a satisfacer esta demanda.

La captura de datos de cambio permite un pipeline de datos de baja latencia que proporciona datos nuevos de una manera más eficiente y que requiere menos recursos que otros métodos de integración de datos. Por ejemplo, replicar datos implica copiar conjuntos de datos completos. Por el contrario, la CDC envía solo los datos que han cambiado, lo que reduce la carga en los sistemas de origen, el tráfico de red y las demandas de potencia de cómputo.

Les ayuda a acceder a la información más reciente y precisa de forma rápida y eficiente, lo que genera múltiples beneficios, entre ellos:

  • Toma de decisiones más rápida
  • Migraciones sin tiempo de inactividad
  • Mejora del proceso ETL
  • Mejora del rendimiento de la IA

Toma de decisiones más rápida

La CDC ayuda a las organizaciones a integrar datos operativos en plataformas de análisis de datos en tiempo real y paneles de control, con el fin de obtener informes más precisos y actualizados, perspectivas empresariales y una toma de decisiones más eficaz. Con estas capacidades, las empresas pueden satisfacer las exigencias del entorno empresarial actual, en el que el tiempo es un factor crucial y el servicio está disponible 24x7.

Migraciones sin tiempo de inactividad

La sincronización continua entre las fuentes de datos y los sistemas de destino admite migraciones de datos entre bases de datos, entornos en la nube o aplicaciones con un tiempo de inactividad o una interrupción mínimos. Por ejemplo, durante las migraciones a la nube, la CDC entrega rápidamente los cambios de datos que se producen en local a las tablas de datos relevantes basadas en la nube, lo que garantiza la coherencia entre ambos entornos.

Mejora del proceso ETL

Los pipelines de datos ETL (extraer, transformar, cargar) son una parte integral de los flujos de trabajo de análisis y machine learning. Pero la ejecución de ETL, que se basa en el procesamiento por lotes, tiende a moverse lentamente y agotar los recursos del sistema. La integración de CDC en ETL puede optimizar el uso de recursos y acelerar el movimiento de datos.

Mejor rendimiento de la inteligencia artificial (IA)

La implementación de la captura de datos de cambio puede ayudar a garantizar que los datos fuente del modelo estén actualizados, de modo que los modelos de lenguaje de gran tamaño (LLM) puedan ofrecer resultados precisos y puntuales. Por ejemplo, en los casos de uso de la generación aumentada por recuperación (RAG), los modelos de IA se conectan con bases de conocimiento externas para obtener respuestas más relevantes.

AI Academy

¿Es la gestión de datos el secreto de la IA generativa?

Explore por qué los datos de alta calidad son esenciales para el uso satisfactorio de la IA generativa.

¿Cómo funciona la captura de datos de cambio?

La captura de datos de cambios identifica y registra las inserciones, actualizaciones y supresiones que se producen en los sistemas de datos de origen. Estas fuentes pueden incluir bases de datos relacionales como Oracle Database, PostgreSQL, MySQL, Microsoft SQL Server y Azure SQL Database, así como bases de datos no relacionales (NoSQL) como Apache Cassandra y MongoDB.

Los sistemas modernos de CDC suelen utilizar la CDC basada en registros, en la que las herramientas leen los registros de transacciones de la base de datos (archivos que registran los cambios en los datos de una base de datos) para identificar dichos cambios. Cada evento de cambio dentro de un registro de transacciones se asocia con una posición de registro ordenada, como un número de secuencia de registro (LSN). Estos ayudan a los sistemas CDC a determinar exactamente cuándo se producen las modificaciones.

Una vez capturados los cambios, se transmiten en tiempo real o casi en tiempo real a sistemas posteriores como data lakes, almacenes de datos, plataformas de datos en streaming como Apache Kafka, motores de procesamiento en flujo como Apache Spark y pipelines ETL/ELT.

Enfoques de CDC: push vs. pull

La captura de datos de cambio puede iniciarse tanto por el sistema de origen (un enfoque tipo push) como por el sistema objetivo (un enfoque tipo pull). La principal diferencia radica en qué sistema es responsable de capturar y transmitir los cambios.

CDC tipo push

En un modelo CDC tipo push, el sistema de origen detecta los cambios e inmediatamente los "empuja" o envía a los sistemas de destino. Este enfoque se implementa comúnmente utilizando registros de transacciones de bases de datos, flujos de eventos o intermediarios de mensajes como Apache Kafka.

Dado que los cambios se envían a medida que se producen, la CDC tipo pull suele ser adecuada para casos de uso que requieren la transferencia de datos en tiempo real o casi en tiempo real, como el análisis de datos en tiempo real, las arquitecturas basadas en eventos y los sistemas de IA/ML.

CDC tipo pull

En la CDC tipo pull, el sistema de destino sondea periódicamente los sistemas de origen y “extrae” los cambios cuando los encuentra. El sondeo puede producirse en un horario fijo, lo que hace que la CDC tipo pull sea muy adecuada para cargas de trabajo orientadas a lotes o sistemas que no requieren actualizaciones inmediatas.

Aunque este enfoque es más sencillo y requiere una infraestructura menos compleja que la CDC tipo push, puede introducir una latencia más alta y aumentar las cargas de consultas en las bases de datos de origen, lo que afecta al rendimiento de la base de datos. Muchas plataformas de datos modernas admitirán ambos enfoques en función de las necesidades de datos y los requisitos operativos.

Métodos comunes para la captura de datos de cambio

Existen varios métodos para ejecutar la captura de datos modificados. Los tipos comunes de CDC incluyen: 

  • CDC basada en registros
  • CDC basada en marcas de tiempo
  • CDC basada en desencadenantes

CDC basada en registros

Los registros de transacciones de bases de datos son una característica estándar de las bases de datos y se utilizan para registrar todas las transacciones de la base de datos. (Los archivos de registro de transacciones se pueden utilizar para recuperar bases de datos en caso de fallo del sistema).

En la CDC basada en registros, una aplicación CDC procesa los cambios de la base de datos (tanto en datos como en metadatos) registrados en el registro y comparte las actualizaciones con otros sistemas. La CDC basada en registros se ha vuelto cada vez más popular debido a su eficiencia: se basa en registros en lugar de consultas, lo que puede suponer una carga sustancial en los sistemas de origen. Sin embargo, la variación en los formatos de los registros de transacciones puede complicar la ejecución de CDC basada en registros en diferentes bases de datos.

CDC basada en marcas de tiempo

La captura de datos de cambio basada en marcas de tiempo, también conocida como CDC basada en consultas, requiere que los esquemas de las tablas de bases de datos tengan una característica, como las columnas de marca de tiempo, anotando la fecha y hora de los cambios en los registros. Se puede utilizar una herramienta CDC para identificar registros modificados a través de la columna de marca de tiempo en una tabla de origen y luego entregar actualizaciones a los sistemas de destino.

Aunque la CDC basada en marcas de tiempo puede ser sencilla de implementar, también puede suponer una carga adicional para un sistema cuando se realizan con frecuencia sondeos de datos de marcas de tiempo. La CDC basada en marcas de tiempo tampoco captura las operaciones de eliminación cuando la marca de tiempo se elimina junto con el resto de una fila.

CDC basada en desencadenantes

En la captura de datos de cambio basada en desencadenantes, los procedimientos almacenados o funciones conocidas como disparadores de bases de datos se ejecutan una vez que se producen modificaciones específicas (como inserciones, eliminaciones y actualizaciones) en una base de datos. A continuación, los datos modificados se almacenan en lo que suele denominarse tabla de cambios o tabla sombra.

Al igual que la CDC basada en marcas de tiempo, la CDC basada en disparadores puede ser sencilla de implementar. Sin embargo, también puede sobrecargar los sistemas de origen, ya que los desencadenantes se "activan" cada vez que se produce una transacción en la tabla de origen.

Fuentes y destinos comunes de CDC

Para ofrecer una visión completa de la CDC, repasemos algunas fuentes y destinos habituales de CDC.

Las fuentes CDC son los sistemas donde se originan los datos, como:

Los destinos CDC son los sistemas a los que se transmiten o replican los datos, como:

  • Plataformas de flujo de datos (Apache Kafka, Amazon Kinesis, Google Cloud Pub/Sub)

  • Almacenes de datos y lakehouses (Snowflake, Amazon Redshift, Google BigQuery)

  • Almacenamiento de objetos en la nube (AWS S3, Azure Blob Storage, Google Cloud Storage)

Conectar fuentes y destinos suele requerir herramientas, conectores y plataformas de integración de datos del CDC.

ETL vs. CDC: diferenciadores clave

La ETL (extracción, transformación y carga) y la captura de datos de cambios son dos enfoques de integración de datos muy utilizados, pero diseñados para fines diferentes.

Estas son algunas de las principales diferencias entre ETL y CDC:

  • Movimiento de datos: los pipelines ETL suelen consumir conjuntos de datos completos o grandes lotes de datos. La CDC solo captura y transmite cambios.

  • Velocidad de procesamiento y latencia: la ETL suele estar orientada a lotes a intervalos programados. La CDC está diseñada para el movimiento de datos de baja latencia y la sincronización continua.

  • Casos de uso principales: la ETL se utiliza a menudo para inteligencia empresarial, informes históricos y machine learning. La CDC se utiliza habitualmente para análisis en tiempo real, detección del fraude y arquitecturas basadas en eventos.

  • Transformación de datos: los pipelines ETL limpian y transforman los datos antes de cargarlos. Los sistemas de CDC solo identifican y replican los cambios sin mayor procesamiento.

  • Impacto en el sistema: los procesos ETL tradicionales ejercen una mayor presión sobre los sistemas de origen con cargas de trabajo por lotes repetidas. La CDC minimiza la sobrecarga al transmitir solo los cambios.

Las organizaciones actuales suelen utilizar tanto ETL como CDC, a menudo de manera conjunta. Por ejemplo, la CDC complementa los pipelines ETL transmitiendo actualizaciones incrementales después de la carga inicial de datos. Esto permite que los conjuntos de datos se mantengan actualizados en tiempo real a medida que se producen cambios en los sistemas de origen, sin tener que esperar a que se ejecute el siguiente trabajo ETL.

SCD vs. CDC: ¿en qué se diferencian entre sí?

La CDC y las dimensiones de cambio lento (SCD) trabajan juntas para mantener los sistemas de destino precisos y actualizados.

Mientras que la CDC captura y transmite los cambios de los sistemas de origen, las SCD definen cómo se gestionan y almacenan esos cambios dentro de las tablas de dimensiones en un almacén de datos.

(En este contexto, los datos de dimensión suelen referirse a tablas de dimensiones en almacenes de datos que almacenan atributos descriptivos como direcciones de clientes o números de teléfono).

Hay dos tipos comunes de SCD: tipo 1 y tipo 2.

SCD Tipo 1: sobrescribe los datos existentes en una tabla de dimensiones con datos nuevos, sin conservar el historial.

SCD Tipo 2: añade una nueva fila a una tabla de dimensiones, conservando todos los cambios históricos a lo largo del tiempo

Herramientas de captura de datos de cambio

Las herramientas de captura de datos de cambio (CDC) capturan y transmiten los cambios de la base de datos en tiempo real, lo que ayuda a las organizaciones a respaldar la integración de datos moderna, el análisis y las arquitecturas basadas en eventos.

Las capacidades de CDC pueden ser nativas de entornos de bases de datos específicos, como AWS Database Migration Service (DMS), o pueden implementarse de manera más amplia. Las soluciones comunes de CDC incluyen herramientas de código abierto como Debezium y plataformas comerciales como IBM StreamSets y Oracle GoldenGate.

Muchas organizaciones utilizan Apache Kafka como base para los pipelines de CDC. Las arquitecturas CDC basadas en Kafka pueden capturar los cambios en las bases de datos, transmitirlos a través de los temas de Kafka y entregarlos a aplicaciones posteriores, almacenes de datos, plataformas de análisis y sistemas de IA.

Al evaluar las herramientas de CDC, las organizaciones suelen tener en cuenta:

  • Escalabilidad
  • precios
  • Latencia
  • Soporte de conectores
  • Integración de Kafka
  • Fiabilidad
  • Flexibilidad de implementación
  • Compatibilidad con API

Casos de uso para la captura de datos de cambio

Las empresas pueden implementar la captura de datos de cambio para una variedad de usos, que incluyen:

Detección del fraude

El seguimiento continuo de los cambios en los registros financieros mediante la captura de datos de cambio puede permitir la detección de actividades fraudulentas antes de que provoquen resultados sustanciales en pérdidas.

Habilitación del Internet de las cosas (IoT)

La CDC puede integrar de manera eficiente las enormes cantidades de datos en tiempo real generados por los dispositivos IoT, lo que permite el mantenimiento predictivo y la monitorización en tiempo real.

Gestión de inventario y cadena de suministro

El acceso a la información de ventas, inventario y cadena de suministro en tiempo real respaldada por la captura de datos de cambios puede ayudar a las empresas a evitar la falta de existencias y a tomar lucrativas decisiones de precios.

Conformidad con la normativa

La captura de datos de cambios puede ayudar a las empresas altamente reguladas a mantener los registros precisos necesarios para informar y cumplir con los reglamentos y leyes, como el RGPD, la Ley Sarbanes-Oxley (SOX) y la HIPAA en los EE. UU.

Autores

Alice Gomstyn

Staff Writer

IBM Think

Alexandra Jonker

Staff Editor

IBM Think

Soluciones relacionadas
IBM StreamSets

Cree y gestione canalizaciones de datos de streaming inteligentes a través de una interfaz gráfica intuitiva, y facilite una integración de datos fluida en entornos híbridos y multinube.

Explore StreamSets
IBM watsonx.data

Watsonx.data le permite escalar la analítica y la IA con todos sus datos, residan donde residan, a través de un almacén de datos abierto, híbrido y gobernado.

Descubra watsonx.data
Servicios de asesoramiento sobre datos y análisis

Desbloquee el valor de los datos empresariales con IBM Consulting, y construya una organización impulsada por conocimientos que ofrezca ventajas empresariales.

Descubra los servicios de análisis
De el siguiente paso

Diseñe una estrategia de datos que elimine los silos, reduzca la complejidad y mejore la calidad de los datos para ofrecer experiencias excepcionales a clientes y empleados.

  1. Explore las soluciones de gestión de datos
  2. Descubra watsonx.data