Replicación de datos del CDC Técnicas, compensaciones, ideas

Replicación de datos del CDC

 

Muchas organizaciones en diferentes industrias operan bases de datos de producción en las que la mayoría de los datos no cambian con mucha frecuencia; es decir, los cambios y actualizaciones diarios solo representan una parte relativamente pequeña del volumen total de datos almacenados en ellas. Son estas organizaciones las que pueden beneficiarse más de la replicación de datos de captura de cambios (CDC, por sus siglas en inglés).

En este artículo, definiré la replicación de datos CDC, discutiré brevemente los casos de uso más comunes y luego hablaré sobre las técnicas comunes y los compromisos de cada una. Hacia el final, daré algunos conocimientos generales de implementación que he aprendido como CEO y fundador de la empresa de integración de datos Dataddo.

 

¿Qué es la replicación de datos de captura de cambios (CDC)?

 

La replicación de datos CDC es un método de copiar datos en tiempo real o casi en tiempo real entre dos bases de datos, en el que solo se copian los datos nuevos o modificados. 

Es una alternativa a la replicación instantánea, que implica mover una instantánea completa de una base de datos a otra una y otra vez. La replicación instantánea puede ser adecuada para organizaciones que necesitan preservar instantáneas individuales de sus datos a lo largo del tiempo, pero consume muchos recursos de procesamiento y deja una gran huella financiera. Para las organizaciones que no necesitan hacer esto, CDC puede ahorrar mucho tiempo de procesamiento pagado.

Los cambios en los datos se pueden capturar y entregar a su nuevo destino en tiempo real o en pequeños lotes (por ejemplo, cada hora).

   

Vale la pena mencionar que CDC no es un proceso nuevo. Sin embargo, hasta hace poco, solo las grandes organizaciones tenían los recursos de ingeniería para implementarlo. Lo nuevo es la creciente selección de herramientas administradas que lo hacen posible por una fracción del costo, de ahí su creciente popularidad.

 

Casos de uso más comunes de CDC

 

No hay suficiente espacio en este artículo para cubrir todos los casos de uso de la replicación de datos CDC, pero aquí hay tres de los más comunes.

 

Data Warehousing para inteligencia empresarial y análisis

 

Cualquier organización que ejecute un sistema propietario de recolección de datos es probable que tenga una base de datos de producción que almacena información clave de este sistema.

Dado que las bases de datos de producción están diseñadas para operaciones de escritura, no hacen mucho para aprovechar los datos de manera rentable. Por lo tanto, muchas organizaciones querrán copiar los datos en un almacén de datos, donde pueden realizar operaciones de lectura complejas para análisis e inteligencia empresarial.

Si su equipo de análisis necesita datos casi en tiempo real, CDC es una buena manera de proporcionárselos, ya que entregará rápidamente los cambios al almacén de análisis a medida que se realicen.

 

Migración de base de datos

 

CDC también es útil cuando se migra de una tecnología de base de datos a otra y se necesita mantener todo disponible en caso de tiempo de inactividad. Un ejemplo clásico sería la migración de una base de datos local a una base de datos en la nube.

Recuperación ante desastres

 

Similar al caso de migración, CDC es una forma eficiente y potencialmente rentable de garantizar que todos sus datos estén disponibles en múltiples ubicaciones físicas todo el tiempo, en caso de tiempo de inactividad en una.

 

Técnicas comunes de CDC y los compromisos de cada una

 

Existen tres técnicas principales de CDC, cada una con su propio conjunto de ventajas y desventajas.

   

CDC basado en consultas

 

El CDC basado en consultas es bastante sencillo. Todo lo que se hace con esta técnica es escribir una consulta de selección simple para seleccionar datos de una tabla específica, seguida de alguna condición, como “solo seleccionar los datos que se actualizaron o agregaron ayer”. Suponiendo que ya tiene el esquema de una tabla secundaria configurada, estas consultas tomarán estos datos modificados y producirán una nueva tabla bidimensional con los datos, que se puede insertar en una nueva ubicación.

 

Ventajas

 

  • Altamente flexible. Te permite definir qué cambios capturar y cómo capturarlos. Esto facilita personalizar el proceso de replicación de manera muy detallada.
  • Reduce la sobrecarga. Solo captura cambios que cumplen con criterios específicos, por lo que es mucho más barato que CDC, que captura todos los cambios en una base de datos.
  • Más fácil de solucionar problemas. Las consultas individuales se pueden examinar y corregir fácilmente en caso de problemas.

 

Desventajas

 

  • Mantenimiento complejo. Cada consulta individual debe mantenerse. Si tienes un par de cientos de tablas en tu base de datos, por ejemplo, probablemente necesitarías tantas consultas y mantener todas ellas sería una pesadilla. Esta es la principal desventaja.
  • Mayor latencia. Depende de la búsqueda de cambios, lo que puede introducir retrasos en el proceso de replicación. Esto significa que no se puede lograr replicaciones en tiempo real utilizando consultas select, y que se necesitaría programar algún tipo de procesamiento por lotes. Esto puede no ser un gran problema si necesitas analizar algo utilizando una serie de tiempo larga, como el comportamiento del cliente.

 

CDC basado en registros

 

La mayoría de las tecnologías de bases de datos que usamos hoy admiten el clustering, lo que significa que puedes ejecutarlos en múltiples réplicas para lograr alta disponibilidad. Estas tecnologías deben tener algún tipo de registro binario, que captura todos los cambios en la base de datos. En el CDC basado en registros, los cambios se leen desde el registro en lugar de la base de datos en sí, luego se replican en el sistema de destino.

 

Ventajas

 

  • Baja latencia. Los cambios de datos se pueden replicar muy rápidamente en sistemas secundarios.
  • Alta fidelidad. Los registros capturan todos los cambios en la base de datos, incluidos los cambios en el lenguaje de definición de datos (DDL) y los cambios en el lenguaje de manipulación de datos (DML). Esto hace posible rastrear filas eliminadas (lo cual es imposible con CDC basado en consultas).

 

Desventajas

 

  • Mayor riesgo de seguridad. Requiere acceso directo al registro de transacciones de la base de datos. Esto puede plantear preocupaciones de seguridad, ya que requerirá niveles de acceso extensos.
  • Flexibilidad limitada. Captura todos los cambios en la base de datos, lo que limita la flexibilidad para definir cambios y personalizar el proceso de replicación. En caso de altos requisitos de personalización, los registros tendrán que ser procesados ​​en gran medida después.

En general, el CDC basado en registros es difícil de implementar. Consulta la sección de “insights” a continuación para obtener más información.

 

CDC basado en disparadores

 

El CDC basado en disparadores es una especie de combinación de las dos primeras técnicas. Implica definir disparadores para capturar ciertos cambios en una tabla, que luego se insertan y rastrean en una nueva tabla. Es desde esta nueva tabla que se replican los cambios en el sistema de destino.

 

Ventajas

 

  • Flexibilidad. Te permite definir qué cambios capturar y cómo capturarlos (como en el CDC basado en consultas), incluidas las filas eliminadas (como en el CDC basado en registros).
  • Baja latencia. Cada vez que se dispara un disparador, cuenta como un evento y los eventos se pueden procesar en tiempo real o casi en tiempo real.

 

Desventajas

 

  • Mantenimiento extremadamente complejo. Al igual que las consultas en el CDC basado en consultas, todos los disparadores deben mantenerse individualmente. Entonces, si tienes una base de datos con 200 tablas y necesitas capturar cambios para todas ellas, el costo total de mantenimiento será muy alto.

 

Perspectivas de implementación

 

Como CEO de una empresa de integración de datos, he tenido mucha experiencia implementando CDC en escalas grandes y pequeñas. Aquí hay algunas cosas que he aprendido en el camino.

 

Implementaciones Diferentes para Registros Diferentes

 

El CDC basado en registros es particularmente complejo. Esto se debe a que todos los registros, como el BinLog para MySQL, el WAL para Postgres, el Redo Log para Oracle, el Oplog para Mongo DB, aunque conceptualmente sean iguales, se implementan de manera diferente. Por lo tanto, deberás sumergirte en los parámetros de bajo nivel de tu base de datos elegida para que todo funcione.

 

Escribiendo Cambios de Datos en el Destino Objetivo

 

Deberás determinar cómo insertar, actualizar y eliminar datos en tu destino objetivo.

En general, la inserción es fácil, pero el volumen juega un papel importante en la elección del enfoque. Ya sea que utilices la inserción por lotes, la transmisión de datos o decidas cargar los cambios mediante un archivo, siempre te enfrentarás a compensaciones tecnológicas.

Para garantizar una actualización adecuada y evitar duplicados innecesarios, deberás definir una clave virtual en tus tablas que indique a tu sistema qué se debe insertar y qué se debe actualizar.

Para garantizar una eliminación adecuada, deberás contar con un mecanismo de protección para asegurarte de que una implementación incorrecta no cause la eliminación de todos los datos en la tabla de destino.

 

Manteniendo Tareas de Larga Duración

 

Si solo transfieres unas pocas filas, las cosas serán bastante fáciles, pero si ese es el caso, probablemente no necesites CDC. En general, podemos esperar que las tareas de CDC duren varios minutos o incluso horas, lo que requerirá mecanismos confiables para la supervisión y el mantenimiento.

 

Manejo de Errores

 

Esto podría ser tema de un artículo aparte. Sin embargo, en resumen, puedo decir que cada tecnología tiene una forma diferente de generar excepciones y mostrar errores. Por lo tanto, debes definir una estrategia para saber qué hacer si falla una conexión. ¿Deberías intentar nuevamente? ¿Deberías encapsular todo en transacciones?

   

Implementar la replicación de datos CDC internamente es bastante complicado y muy específico para cada caso. Por eso, tradicionalmente no ha sido una solución popular para la replicación y también es difícil dar consejos generales sobre cómo implementarla. En los últimos años, herramientas gestionadas como Dataddo, Informatica, SAP Replication Server y otras han reducido significativamente la barrera de accesibilidad.

 

No para Todos, pero Excelente para Algunos

 

Como mencioné al principio de este artículo, CDC tiene el potencial de ahorrar muchos recursos financieros a las empresas:

  • Cuyas bases de datos principales consisten en gran medida en datos que no cambian con frecuencia (es decir, los cambios diarios solo representan una parte relativamente pequeña de los datos)
  • Cuyos equipos de análisis necesitan datos casi en tiempo real
  • Que no necesitan conservar instantáneas completas de su base de datos principal a lo largo del tiempo

No obstante, no existen soluciones tecnológicas perfectas, solo compensaciones. Y lo mismo se aplica a la replicación de datos CDC. Aquellos que elijan implementar CDC deberán priorizar de manera desigual la flexibilidad, la fidelidad, la latencia, el mantenimiento y la seguridad.     Petr Nemeth es el fundador y CEO de Dataddo, una plataforma de integración de datos sin código y completamente gestionada que conecta servicios basados en la nube, aplicaciones de paneles de control, almacenes de datos y lagos de datos. La plataforma ofrece funcionalidad de ETL, ELT, ETL inverso y replicación de bases de datos (incluido CDC), así como una amplia cartera de más de 200 conectores, lo que permite a los profesionales de negocios, independientemente de su nivel de experiencia técnica, enviar datos desde prácticamente cualquier fuente a cualquier destino. Antes de fundar Dataddo, Petr trabajó como desarrollador, analista y arquitecto de sistemas para empresas de telecomunicaciones, tecnología y medios en proyectos a gran escala relacionados con el internet de las cosas, big data e inteligencia empresarial.  

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Integración de datos multimodales Cómo la inteligencia artificial está revolucionando la atención del cáncer

Recientemente leí este artículo (enlace) sobre la integración de datos multimodales para la oncología con inteligenci...

Inteligencia Artificial

Google Research explora ¿Puede la retroalimentación de IA reemplazar la entrada humana para un aprendizaje por refuerzo efectivo en modelos de lenguaje grandes?

La retroalimentación humana es esencial para mejorar y optimizar los modelos de aprendizaje automático. En los último...

Inteligencia Artificial

Una Bendición y un Monstruo Los Anunciantes Aceptan Cautelosamente la Inteligencia Artificial

Muchos anuncios son más fáciles de hacer con la tecnología en constante mejora. También representa una amenaza para u...

Inteligencia Artificial

Pensando como un anotador en profundidad Generación de instrucciones para etiquetar conjuntos de datos

Todos estamos asombrados por el avance que hemos visto en los modelos de IA recientemente. Hemos visto cómo los model...

Inteligencia Artificial

Un legado poderoso la madre del investigador alimentó su pasión por la fusión nuclear

Nota del editor: Esta es parte de una serie que perfila a investigadores que avanzan en la ciencia con computación de...