Visitas: 65
Mirroring dentro de MS Fabric, pretende ser una solución integrada de replicación de datos que nos permite llevar los datos de varios sistemas fuente hacia el repositorio de Fabric (OneLake).
Es una solución de bajo coste y baja latencia, y al momento de este blog nos permite trabajar con origines de datos como Azure Database, Azure Cosmos DB y Snowflake. Aunque Microsoft seguramente incorporará otros cuantos más en un futuro cercano.
Una vez replicados los datos, éstos se almacenarán en un formato consultable dentro del OneLake y luego podrán ser utilizados por los distintos servicios de Fabric, como por ejemplo en un Notebook de Spark, dentro de Ingeniería de datos mediante T-SQL, o a través de reportes de Power BI con modelos semánticos.
La idea detrás de este feature, es la de simplificar el proceso de extraer los datos de los sistemas fuentes con una solución “SaaS” como todo lo que existe dentro del ecosistema de Fabric. Es decir, que mediante pocos Clicks y configuraciones podemos tener los datos de nuestras fuentes replicados y listos como tablas Delta Parquet.
Fig. 1. Diagrama de Fabric Database Mirroring para Azure SQL Database.
La replicación de Mirroring crea tres elementos de un Workspace de Fabric:
- La base de datos replicada. Mirroring gestiona la replicación de datos en OneLake y la conversión a Parquet.
- Un SQL Endpoint para trabajar lenguaje y herramientas SQL.
- Un Modelo semántico default.
Cada base de datos replicada posee un Endpoint de SQL autogenerado que proporciona una experiencia analítica sobre las Tablas Delta creadas por el proceso de Mirroring.
Los usuarios podrán utilizar comandos T-SQL únicamente para consultar datos, ya que éstos son una copia de sólo lectura.
Aunque, si se podrán crear vistas SQL, TVFs (Table-valued Functions) en línea y procedimientos almacenados para encapsular su semántica y lógica de negocio en T-SQL.
Y tal vez lo más rico que se podrán consultar estos datos en otros Warehouses y Lakehouses en el mismo espacio de trabajo.
Todo esto puede ser realizado mediante el editor de consultas SQL de Microsoft Fabric, y tambien con otras herramientas que puedan consultar el Endpoint de SQL, incluido por supuesto SQL Server Management Studio, Azure Data Studio e incluso GitHub Copilot.
Habilitando Microsoft Fabric Mirroring Paso a Paso
Como primer paso para utilizar este feature, se debe primero habilitar la opción en el portal de Administración a nivel de Tenant. Esta opción puede estar limitada a Grupos de Seguridad específicos o bien para toda la organización.
Ref. Enable Mirroring – Microsoft Fabric | Microsoft Learn
Como punto importante, la disponibilidad del feature puede demorar algunos minutos hasta que quede activado.
Adicionalmente si no queremos dejar habilitado este feature a nivel deTenant, dado que aún se encuentra en Preview, podemos habilitarlo únicamente a nivel de capacidad.
De esta manera podríamos limitar esta experiencia para un pequeño grupo de usuarios que quisieran probar esta capacidad. Esto lo podemos configurar a nivel de Capacidad, habilitando la opción de hacer “override” de la configuración a nivel de Tenant.
Replicar datos Microsoft Fabric Mirroring
Una vez habilitada esta característica, ya sea tanto a nivel de Tenant o bien a nivel de Capacidad, tenemos que configurar la réplica de datos desde alguna de las fuentes soportadas.
Estas fuentes por el momento pueden ser las siguientes:
- Azure SQL Database
- Azure Cosmos DB
- Snowflake
Importante: Al momento de este Preview, Mirroring no puede trabajar con conexiones de Red privadas de Azure SQL Database o Endpoints privados de CosmosDB.
Ref. Microsoft Fabric Enable Mirroring | Microsoft Learn
Ref. Microsoft Fabric mirrored databases from Azure Cosmos DB (Preview) | Microsoft Learn
Para comenzar la configuración, desde la experiencia de DataWarehouse, deberíamos poder hacer click en alguna de las opciones de Mirroring:
En la siguiente pantalla, dependiendo de la fuente seleccionada, se deberá configurar la conexión y que tablas vamos a replicar.
Una vez generada la conexión con las credenciales, tenemos que configurar que Tablas vamos a replicar. Por defecto, nos aparece la opción de replicar toda la base de datos pero podemos cambiar y seleccionar tablas y/o vistas en forma individual.
En este punto se pueden ver que algunas tablas o columnas no permiten ser replicadas. Esto se produce porque éstas contienen poseen de tipo de datos o features no soportados.
Para ver una lista completa de Limitaciones de Tipos de Datos no soportados se pueden ver los siguiente enlaces:
- Azure SQL Database: Mirrored databases Azure Sql Database Limitations
- Azure Cosmos DB: Mirrored Databases Azure Cosmos DB Limitations
- Snowflake: Mirrored Databases Snowflake Limitations
Y finalmente luego de conectar nuestra fuente, podremos ver que la replicación comienza en forma automática, para lo que debemos esperar algunos minutos para ver la primera sincronzación.
Una vez que el proceso haya comenzado, se habilitará la opción de Monitoreo en donde podremos ver el estado de la replicación para cada uno de los objetos como así tambien la cantidad de Registros copiados o bien si hay algún error.
Como vemos a simple vista, es un proceso simple y que requiere pocas configuraciones y que nos permite rápidamente replicar fuentes de datos hacia nuestro entorno de Fabric.
En nuestro workspace podemos ver que se ha creado un nuevo Endpoint de SQL y un modelo semántico default de nuestra base de datos en Mirroring:
En próximos posts, vamos a ver el detalle paso a paso para replicar las distintas fuentes de datos soportadas, como monitorear éstas y algunas conclusiones.