es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Réplica casi en tiempo real desde Azure VM SQL Server/DB a Azure Blob Storage (CSV/JSON)

Estoy tratando de lograr una réplica casi en tiempo real (idealmente en unos ~5 minutos) de datos entre un sistema de origen (Azure VM con SQL Server – solo de lectura con alrededor de 100 tablas) y una cuenta de almacenamiento de Azure (Gen 2, carpetas Blob) para soportar varios trabajos de datos aguas arriba.

Había considerado usar Azure Data Factory para llevar a cabo una carga inicial en lote de los datos históricos (tarda ~40 minutos usando ADF), seguida de una actualización incremental al destino cuando cambien las tablas de origen (actualizaciones o inserciones).

Los desafíos son los siguientes:

  1. Algunas de las tablas de origen se actualizan históricamente (por ejemplo, se agrega un registro de hace dos años).
  2. Algunas de las tablas de origen no son tablas transaccionales (son tablas de búsqueda sin columnas de marca de tiempo, como por ejemplo “LastUpdatedOn” no existe en estas tablas).

¿Cuáles son los enfoques posibles más adecuados para establecer esta sincronización entre el destino y el origen?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en SQL Server, Azure Blob Storage, Azure Data Factory y Azure VM, puedes lograr una réplica casi en tiempo real de los datos entre un sistema fuente (Azure VM con SQL Server) y una cuenta de almacenamiento de Azure (Gen 2, carpetas de blobs) considerando los siguientes enfoques:

    1. Change Data Capture (CDC): CDC es una función en SQL Server que captura las operaciones de inserción, eliminación y actualización aplicadas a las tablas de SQL Server y las asocia a tablas de CDC. Puedes utilizar CDC para capturar y transferir solo los cambios (actualizaciones o inserciones) al sistema destino. Este enfoque te ayudará a minimizar la cantidad de datos a transferir y mejorar la velocidad de transferencia.
    2. Utilizar una columna de marca temporal: Si las tablas fuente no tienen una columna de marca temporal, puedes agregar una para rastrear la última vez que se actualizó una fila. Esta columna te puede ayudar a identificar los cambios en la tabla fuente y transferirlos al destino. Este enfoque requiere algunos cambios en el esquema fuente y el código de la aplicación.

    3. Utilizar Azure Event Grid: Azure Event Grid es un servicio de mensajería basado en la nube que puede ayudarte a detectar y responder a eventos en recursos de Azure o aplicaciones personalizadas. Puedes utilizarlo para monitorear los cambios en el sistema fuente y activar una transferencia de datos al destino. Este enfoque te puede ayudar a lograr una replicación casi en tiempo real y manejar escenarios complejos como actualizaciones históricas.

    4. Utilizar una herramienta de replicación de terceros: Existen diversas herramientas de replicación de terceros que pueden ayudarte a replicar datos entre SQL Server y Azure Blob Storage. Estas herramientas utilizan diferentes enfoques como envío de registros, seguimiento de cambios y disparadores. Puedes evaluar las características, el rendimiento y el costo de estas herramientas para elegir la mejor opción para tu escenario.

    En resumen, el mejor enfoque para establecer la sincronización entre el destino y la fuente depende de los requisitos específicos, las limitaciones y los recursos de tu escenario. Puedes aprovechar tu experiencia en SQL Server, Azure Blob Storage, Azure Data Factory y Azure VM para diseñar e implementar una solución efectiva de replicación de datos.

Comments are closed.