Mes: noviembre 2024

Fabric Lakehouse vs Warehouse

Comparar Fabric Lakehouse y Fabric Warehouse dentro del ecosistema de Microsoft Fabric nos lleva a analizar dos enfoques arquitectónicos que, aunque comparten una base tecnológica común, se diseñan para resolver problemas muy diferentes. Ambas soluciones surgen como respuesta a la necesidad de gestionar datos en un panorama empresarial cada vez más complejo, pero destacan por sus diferencias en flexibilidad, rendimiento y casos de uso.

Para empezar, debemos saber que Microsoft Fabric utiliza Delta Lake como formato de tabla unificado tanto para los componentes de Lakehouse como para los Warehouses. Las tablas Delta son esencialmente archivos Delta Parquet, un formato de código abierto compatible con la mayoría de las soluciones de otras nubes. Esto permite un acceso sin problemas a los datos en todos los motores de proceso de Microsoft Fabric y también entre diferentes nubes como Google, AWS, IBM, etc.

Por lo tanto, aunque los Warehouses en Microsoft Fabric pueden tener algunas similitudes con las bases de datos SQL tradicionales que tan bien conocemos, también tienen muchas características en común con los Lakehouses, incluyendo el uso de tablas Delta Parquet. Pero, entremos un poco más en detalle.

¿Qué es Fabric Lakehouse?

Fabric Lakehouse es una solución híbrida que combina lo mejor de los data lakes y los data warehouses. Este modelo permite gestionar datos estructurados, semiestructurados y no estructurados en un entorno único y flexible. Su arquitectura está basada en tecnologías de almacenamiento de objetos, como Delta Lake, optimizadas para trabajar con grandes volúmenes de datos en formatos diversos como Parquet, CSV y JSON.

Su enfoque permite a las empresas procesar datos en bruto, realizar análisis exploratorios y aplicar modelos avanzados como machine learning, sin necesidad de transformaciones estrictas previas. Por esta razón, Fabric Lakehouse es ideal para casos en los que se manejan datos históricos, flujos de datos en tiempo real o múltiples fuentes heterogéneas.

Fabric Warehouse: Optimización para consultas estructuradas

Fabric Warehouse, por su parte, representa el enfoque más tradicional de los almacenes de datos. Diseñado para cargas de trabajo analíticas OLAP, este modelo almacena los datos en un formato tabular estructurado que facilita consultas rápidas y eficientes. Su base tecnológica incluye índices columnstore que aceleran significativamente el tiempo de respuesta en análisis complejos.

Fabric Warehouse se destaca en escenarios de reporting empresarial, donde la precisión y la rapidez son fundamentales. Además, su integración nativa con herramientas como Power BI y Excel lo convierte en una elección prioritaria para la generación de informes y dashboards operativos.

Diferencias entre Fabric Lakehouse y Warehouse

Aunque ambos modelos comparten objetivos relacionados con la gestión de datos, presentan diferencias importantes en cuanto a flexibilidad, rendimiento y casos de uso.

Flexibilidad en el manejo de datos

Fabric Lakehouse ofrece un enfoque más versátil, permitiendo trabajar con datos en su estado original sin transformaciones previas. Esto es crucial en proyectos donde los datos cambian constantemente o provienen de múltiples fuentes con formatos variados. Por otro lado, Fabric Warehouse requiere un modelo de datos predefinido y procesos ETL claros para garantizar la eficiencia en el análisis.

Rendimiento en consultas y análisis

En términos de rendimiento, Fabric Warehouse sobresale en escenarios donde se necesitan consultas estructuradas y rápidas sobre datos optimizados. En cambio, Fabric Lakehouse es más adecuado para procesar grandes volúmenes de información y ejecutar análisis avanzados, aunque puede ser menos eficiente para consultas pequeñas.

Integración con herramientas de análisis

Fabric Lakehouse se integra de manera natural con entornos de Big Data y plataformas como Apache Spark, lo que lo hace ideal para análisis exploratorio y aprendizaje automático. Fabric Warehouse, por su parte, está optimizado para herramientas de BI tradicionales, siendo la opción preferida para usuarios de Power BI y Excel.

Endpoints de Fabric. La principal diferencia

Hasta ahora hemos estado viendo las definiciones más comerciales y las diferencias teóricas entre ambos sistemas. Vamos ahora con algo que va a marcar la diferencia entre ambas soluciones, los endpoints o puntos de conexión (me niego a llamarlos puntos finales como me niego a llamar tejido a fabric). Estos endpoints son los extremos finales de nuestros lakehouse y warehouse a los que nos vamos a conectar y vamos a ver que hay 3 tipos principales.

Lakehouse Endpoint para Spark Runtimes/Libraries

Para trabajar con archivos y tablas de Lakehouse, ya sea para análisis, transformaciones o procesamiento usando Spark, nos conectaremos al endpoint del Lakehouse que está separado del endpoint de SQL Analytics. Igual que con los métodos estándar fuera de Fabric para trabajar con archivos y tablas delta, para conectarnos, usaremos la URL, la ruta ABFS o montaremos el Lakehouse directamente en nuestro explorador. El uso de Spark nos permite realizar operaciones de escritura con Scala, PySpark, Spark SQL o R. Sin embargo, si deseamos utilizar T-SQL, deberemos utilizar SQL Analytics Endpoint, donde vamos a ver que solo podemos realizar operaciones de “solo lectura”.

SQL Analytics Endpoint (Lakehouse)

El endpoint SQL Analytics se crea automáticamente cuando creamos un Lakehouse. Cada Lakehouse tiene solo un endpoint SQL y, como cada Workspace o Área de Trabajo de Fabric puede tener más de un Lakehouse, la cantidad de endpoints SQL en un espacio de trabajo coincide con la cantidad de Lakehouses que tengamos.

Estos endpoint nos ofrecen una experiencia SQL para leer tablas Delta. Es importante destacar que este Endpoint es solo lectura y únicamente sirve para las tablas, como es lógico no podremos usar SQL para consultar archivos e información no estructurada. Por algo la S de SQL significa Structured, ¿no? 

Esto no es todo, SQL Analytics Endpoint no solo nos permite analizar las tablas Delta utilizando T-SQL, también vamos a poder guardar funciones, generar vistas y aplicar seguridad a nivel de objetos SQL. Gracias a estas funcionalidades los ingenieros de datos podrán crear una capa relacional sobre los datos físicos en Lakehouse, y exponerlos para que los analistas usen sus a herramientas de informes utilizando una cadena de conexión SQL.

Ya que estos endpoint son solo lectura, la creación/modificación de tablas Delta (y los datos dentro de las tablas Delta) se debe hacer usando Apache Spark. Una vez creadas las tablas Delta con Spark dentro de Lakehouse se podrán ver y leer automáticamente a través del endpoint SQL. ¿Y qué pasa si hay tablas Delta externas creadas con código Spark? Estas tablas no serán visibles desde el endpoint SQL hasta que cree un acceso directo o Shortcut a la tabla Delta externa.

Seguridad en el SQL Endpoint de Fabric Lakehouse

Como hemos visto, podemos configurar la seguridad a nivel de objeto (OLS) para acceder a los datos mediante el punto final de análisis SQL. Sin embargo, es importante destacar que estos permisos solo se aplicarán cuando accedamos a los datos a través endpoint de análisis SQL. Si deseamos asegurar que no se pueda acceder a nuestros datos de otras maneras (a través de diferentes endpoints o directamente), debemos establecer roles y permisos en el Área de Trabajo.

Conexión al SQL Analytics Endpoint

Para esta parte del artículo me voy a basar en este del blog de Microsoft publicado por Marc Bushong y voy a tomar prestadas sus fotos.

Dejadme que antes de nada os enseñe su Área de Trabajo de Fabric. Como veis tiene un Lakehouse llamado “BronzeLakehouse” y, en la imagen, podemos ver el endpoint de SQL Analytics (rojo) y el endpoint de Lakehouse (verde)

Accediendo al endpoint de Lakehouse vemos Files (rojo) y Tables Delta (verde). Si queremos asegurarnos, en la esquina superior derecha veremos un menú desplegable con el endpoint estamos viendo seleccionado.

Si cambiamos la vista al Endpoint de SQL Analytics vais a ver que ya solo podemos ver las tablas:

Antes de pasar al siguiente endpoint tenemos que saber que también podemos conectar al endpoint SQL desde fuera de Fabric con las herramientas que conocemos como SSMS o Azure Data Studio. Simplemente tendremos que poner la autenticación y cadena de conexión del endpoint como si de cualquier otra conexión de servidor SQL se tratara.

Data Warehouse Endpoint

El Data Warehouse Endpoint opera como un DWH SQL en un entorno tradicional. Esto significa que proporciona compatibilidad casi total con T-SQL, de manera similar a una base de datos SQL Server implementada en nuestros servidores. Este endpoint ofrece múltiples ventajas funcionales.

T-SQL de lectura y escritura

Entre estas ventajas funcionales podemos destacar que cuenta con soporte para lectura y escritura en tablas Delta, lo que permite consultar los datos tanto con Spark como con T-SQL. Sin embargo, mientras que en el Lakehouse las operaciones de escritura solo se podían realizar con Spark, en el Warehouse es al revés y únicamente pueden realizarse mediante T-SQL. Además, incluye soporte casi completo para operaciones DML y DDL, lo que abarca la ingesta, el modelado y el desarrollo de datos a través de T-SQL o mediante interfaces gráficas. Esto nos permite un control absoluto sobre la creación de tablas, la carga de datos y las transformaciones, utilizando herramientas como COPY INTO, pipelines, dataflows o métodos de ingesta cruzada entre bases de datos como CREATE TABLE AS SELECT (CTAS), INSERT..SELECT o SELECT..INTO. Solo hay una pega, a día de hoy todavía no es compatible con la sintaxis MERGE.

Soporte ACID

Este endpoint también garantiza el cumplimiento de las propiedades ACID para transacciones aunque trabaje con tablas Delta. Cabe destacar que, aunque Lakehouse ofrece compatibilidad ACID, se limita a las tablas Delta, por lo que los ficheros de un Lakehouse podrían no cumplir con estas propiedades.

Transacciones Multitabla

Otra característica es el soporte para transacciones que abarcan múltiples tablas, lo que facilita flujos de trabajo complejos. Al combinar estas capacidades de lectura/escritura con las herramientas de ingesta entre bases de datos, es posible integrar datos sin complicaciones desde varios Warehouses o Lakehouses. Cuando se ingieren datos en el Warehouse, estos se almacenan automáticamente en formato Delta dentro de OneLake, garantizando una estructura optimizada y unificada.

 

En la siguiente imagen podemos ver todo lo que hemos comentado hasta ahora en acción, una consulta entre bases de datos para cargar datos en el Warehouse desde el Lakehouse, donde se crea y se carga la tabla de Warehouse «holiday.Warehouse_Holiday_Clean» con los datos de la tabla «Silverlakehouse.dbo.Holiday_Clean» del Lakehouse como origen, y luego se muestran los registros.

Conclusión

Para cerrar esta comparativa, queda claro que tanto Fabric Lakehouse como Fabric Warehouse son piezas fundamentales en el ecosistema de Microsoft Fabric, cada uno respondiendo a diferentes necesidades en el manejo y análisis de datos. A través de su integración en OneLake, ambas soluciones permiten un acceso uniforme y una gestión eficiente de los datos, aprovechando las ventajas de las tablas Delta como formato unificado.

La verdadera innovación radica en cómo Microsoft Fabric ofrece puntos de conexión (endpoints) especializados para cada solución. Estos endpoints no sólo habilitan el acceso a los datos según las necesidades específicas de cada modelo, sino que también permiten combinar diferentes entornos de datos en operaciones cruzadas, como lo demuestra la imagen adjunta. Aquí vemos cómo los endpoints para Lakehouse y Warehouse trabajan en conjunto, integrando datos de manera fluida y demostrando el poder de esta arquitectura unificada.

Este enfoque, que facilita tanto la conexión como el intercambio de datos entre sistemas, posiciona a Microsoft Fabric como una solución robusta y flexible para las necesidades actuales de la analítica empresarial.

Si tenéis alguna duda o sugerencia, podéis dejarla en Twitter, por mail o dejarnos un mensaje en los comentarios. Y recuerda que también tenemos un grupo de Telegram y un canal de YouTube a los que te puede unir. ¡Hasta la próxima!

Publicado por Roberto Carrancio en Cloud, Power BI, 0 comentarios

Replicar datos de SQL a Fabric

Mucho hemos hablado en el blog de como pasar datos de SQL Server en local a la nube, o de la nube a local. Sin embargo, siempre nos hemos centrado en el ecosistema de SQL Server y Azure SQL que, con pequeñas diferencias, cubren las mismas necesidades. Pero, ¿qué pasa si lo que necesitamos es pasar nuestros datos de SQL recurrentemente a un servicio SaaS en la nube para ciencia y análisis de datos?. Eso es lo que vamos a ver hoy, cómo pasar nuestros datos de SQL Server a Fabric ya sea a un Lakehouse o a un Datawarehouse.

Fabric lakehouse vs Datawarehouse ¿qué son?

Al hablar de Fabric, uno de los primeros pasos cruciales es entender sus componentes principales para el almacenamiento de los datos, el Lakehouse y el DataWarehouse. Aunque realmente todo lo que almacenemos en Lakehouse o en Datawarehouse va a estar almacenado en el mismo sitio, nuestro Onelake, por encima de esa capa pura de almacenamiento tendremos que decidirnos por una de las dos estrategias anteriores de gestión de los datos. Puede parecer trivial, incluso en muchas ocasiones se confunden o se utilizan indistintamente pero, la realidad es que cada uno tiene características y funciones específicas dentro de un entorno de ciencia de datos y análisis en la nube. Estas particularidades van a ser claves a la hora de trabajar con ellos por lo que es importante que tengamos claro cuál va a ser nuestro destino antes de plantear el método de envío de datos.

Fabric Datawarehouse

Fabric Datawarehouse es una solución de almacenamiento de datos que integra las capacidades de un data warehouse tradicional con la flexibilidad de un data lake. Gracias a esta arquitectura podremos almacenar, procesar y analizar grandes volúmenes de datos estructurados y semiestructurados en un entorno unificado, lo que nos facilitará la gestión y el análisis de la información.

Una característica distintiva de Fabric Datawarehouse es su almacenamiento centrado en el lago de datos (One Lake), basado en el formato abierto Delta Lake. Este enfoque nos permite hacer uso de transacciones ACID y una interoperabilidad fluida con otras cargas de trabajo de Fabric, eliminando la necesidad de múltiples copias de datos y garantizando la consistencia y confiabilidad de la información. Además su punto de conexión SQL nos va a permitir consultar y manipular datos con código T-SQL 

Fabric Lakehouse

Fabric Lakehouse es una arquitectura de datos integrada en Microsoft Fabric que combina las funcionalidades de un data lake con las capacidades de un data warehouse. Esta estructura nos permite almacenar, procesar y analizar grandes volúmenes de datos no estructurados, semiestructurados y estructurados en un solo entorno, simplificandonos la gestión y el análisis de los datos.

El concepto de lakehouse en Fabric fusiona la escalabilidad y flexibilidad de un datalake, donde se puede almacenar información en su formato nativo, con el rendimiento y las capacidades analíticas de un data warehouse, facilitando la ejecución de consultas SQL de lectura directamente sobre los datos sin necesidad de moverlos. Fabric Lakehouse soporta el uso de diversos lenguajes de consulta y herramientas de análisis, como SQL, Spark y Power BI, proporcionando un entorno colaborativo y unificado.

Además, Fabric Lakehouse utiliza Delta Lake, que añade un nivel de transaccionalidad y consistencia a los datos almacenados, algo crucial en entornos de análisis donde la integridad de los datos es prioritaria. Delta Lake permite realizar lecturas y escrituras simultáneas y asegura la disponibilidad de datos limpios y consistentes para el análisis.

Enviar datos de SQL a Fabric

Bien, ahora que ya hemos decidido cual de los sistemas tenemos en destino vamos a ver las posibilidades de sincronización que tenemos para los datos de SQL. Vamos a centrarnos principalmente en dos herramientas, los Dataflows gen 2 y los pipelines.

Dataflows Gen2

Los Dataflows Gen2 son una opción no-code que nos permite llevar a Fabric datos de casi cualquier origen. Son una evolución de los Dataflows de Power BI, con un aspecto similar pero, con una gran diferencia, permiten seleccionar el destino. Gracias a esta funcionalidad vamos a poder usarlos para llevar nuestros datos de SQL o Azure SQL a Fabric, ya usemos Lakehouse o Datawarehouse, sin problema.

Para crearlo, simplemente accederemos a la interfaz de Dataflows Gen2 dentro del menú de Data Factory y, a través de la interfaz gráfica seleccionaremos nuestro origen, ya sea Azure SQL o una puerta de enlace previamente configurada con la conexión a SQL Server. A partir de aquí, podremos seleccionar las tablas o vistas que replicar y aplicar transformaciones, siempre cuidando de no romper el plegado de consultas o lo notaremos en el rendimiento.

Pipelines

Los pipelines son otra alternativa sencilla y no-code para la copia de datos, aunque tienen un inconveniente. Si bien es teóricamente posible usarlo para transferir nuestros datos desde SQL Server hacia Fabrik Lakehouse o Datawarehouse, lo cierto es que hacia este último destino va a requerir de una serie de pasos adicionales que complican el proceso hasta hacer que no sea recomendable, al menos en mi opinión. 

Entonces, si vas a trabajar con Fabric Lakehouse la cosa es simple, abres Pipelines desde la misma ventana de Data Factory que hemos comentado antes y practicamente sigues el asistente. Te va a pedir el origen (tu Azure SQL o tu puerta de enlace con la conexión a SQL Server, igual que antes), la tabla o consulta que se va a replicar y el destino con su tipo de datos para cada columna.

Bonus track: Fabric Mirroring, Shortcuts y Notebooks

Los que conocéis el ecosistema de Fabric sabéis que además de Dataflows Gen2 y Pipelines tenemos disponibles otras herramientas como son los mirroring shortcuts y Notebooks. Veamos qué podemos hacer con ellas.

  • Shorcuts: Igual que los accesos directos a los que estamos acostumbrados en nuestros sistemas operativos de Windows, los shortcuts en Fabric nos permiten leer información de otras fuentes sin tener que copiarlas a nuestro One Lake. Suena bien, ¿verdad? Pues es muy bonito pero, lamentablemente no están implementados ni para SQL Server ni para ninguna solución de SQL en la nube.
  • Notebooks: Los cuadernos (notebooks) son la principal herramienta de integración y manipulación de datos en Fabric. Sin embargo, no son compatibles con orígenes de una puerta de enlace por lo que solo podremos usarlos para copiar datos desde orígenes Azure SQL ya sean Managed Instance o bases de datos sin servidor.
  • Mirroring: He dejado lo mejor para el final. Mirroring es una nueva funcionalidad que promete replicar nuestras bases de datos SQL a Fabric. Sin embargo, aún está en Public Preview y solo para orígenes Azure SQL Database (bbdd sin servidor). Esperemos en un futuro cercano verlo en GA para todos los orígenes SQL Server.

Conclusión

Migrar datos de SQL Server a Microsoft Fabric abre un mundo de posibilidades para el análisis avanzado en la nube. Con herramientas como Dataflows Gen2 y Pipelines, podemos transferir datos de manera eficiente y sin código hacia entornos unificados de Fabric, eligiendo entre el Lakehouse, ideal para datos en formatos variados, y el Data Warehouse, optimizado para consultas estructuradas. Fabric facilita la gestión y transformación de datos en un entorno SaaS seguro, apoyado en OneLake y Delta Lake, que garantizan consistencia y escalabilidad. Así, centralizamos el análisis y optimizamos el rendimiento, aprovechando todo el potencial de nuestros datos en la nube.

Si tenéis alguna duda o sugerencia, podéis dejarla en Twitter, por mail o dejarnos un mensaje en los comentarios. Y recuerda que también tenemos un grupo de Telegram y un canal de YouTube a los que te puede unir. ¡Hasta la próxima!

Publicado por Roberto Carrancio en Cloud, Power BI, SQL Server, 0 comentarios

Puertas de Enlace Power BI y Fabric

En el análisis de datos con Power BI o Fabric, las puertas de enlace juegan un papel fundamental. Son el puente que nos permite conectar de forma segura y eficiente los servicios en la nube de Microsoft con los datos locales de nuestra organización. Estas herramientas facilitan la comunicación entre los sistemas internos y Power BI, garantizando que los datos estén siempre actualizados y disponibles para análisis en tiempo real. Sin embargo, las puertas de enlace no solo son esenciales para Power BI; también pueden integrarse con Microsoft Fabric, potenciando los flujos de trabajo avanzados y las capacidades de procesamiento en paralelo. Este artículo se inspira en los artículos de Toni Jurado en explorandodatos.com, quien ha profundizado en las características esenciales y las mejores prácticas de las puertas de enlace en Power BI, y busca añadir una perspectiva integral sobre su uso y consideraciones técnicas. 

¿Qué es una puerta de enlace de Power BI y Microsoft Fabric?

Las puertas de enlace de Power BI y Fabric son un componente de software (programa) que se instala en nuestros servidores locales y que permiten a los servicios en la nube de Microsoft conectarse de manera segura a los datos almacenados en nuestras instalaciones on-premises. Esto es especialmente valioso para las empresas que, por razones de seguridad o privacidad, no desean o no pueden migrar sus datos sensibles a la nube. La puerta de enlace actúa como un intermediario, procesando solicitudes de datos y cifrando la comunicación entre la fuente local y el servicio en la nube, asegurando así la privacidad y protección de la información.

En la práctica, la puerta de enlace permite realizar transformaciones y filtrados de datos en el entorno local, reduciendo el volumen de datos que se envía a la nube. Esto optimiza el uso del ancho de banda de la red y mejora el rendimiento de las consultas en Power BI o Fabric. Sin embargo, este procesamiento requiere recursos en el servidor donde está instalada la puerta de enlace, lo que implica ciertas consideraciones técnicas a la hora de configurarla y mantenerla.

Tipos de puertas de enlace: Personal y Estándar

Existen dos tipos de puertas de enlace y, aunque las dos opciones sirven para enviar nuestros datos de los servidores locales a la nube de Power BI o de Fabric, tienen sus diferencias significativas. Tendremos que elegir una u otra en función de nuestras necesidades.

Puerta de enlace personal

Esta versión está diseñada para un único usuario y es ideal para casos de uso individual o pruebas rápidas. Permite conectar Power BI con fuentes de datos locales, pero está limitada a un solo usuario y no es adecuada para entornos de producción. No es compatible con los servicios de Microsoft Fabric.

Puerta de enlace estándar

Pensada para su uso en entornos de producción, esta puerta de enlace puede ser utilizada por múltiples usuarios y soporta una configuración avanzada para integrarse, además de con Power BI, con otros servicios, como Power Automate, Power Apps y Microsoft Fabric. Es ideal para empresas que manejan grandes volúmenes de datos y requieren análisis en tiempo real.

Es importante tener en cuenta que, aunque las puertas de enlace personales son útiles para usuarios individuales, en entornos de producción o con Microsoft Fabric se recomienda siempre utilizar las puertas de enlace estándar. Esto garantiza el soporte multiusuario, configuraciones avanzadas de balanceo de carga y alta disponibilidad, que son esenciales para entornos de análisis de datos complejos.

Uso de las puertas de enlace: Orígenes de datos compatibles

Una de las grandes ventajas de las puertas de enlace en Power BI y Fabric es su compatibilidad con una amplia variedad de orígenes de datos locales. Esto permite a las organizaciones integrar en sus análisis en la nube prácticamente cualquier sistema interno sin necesidad de migrar los datos a la nube, y manteniendo el control y la seguridad de la información. A continuación, os nombro algunos de los principales orígenes de datos locales que pueden conectarse a través de las puertas de enlace estándar:

Bases de datos relacionales

Entre los sistemas compatibles podemos encontrar SQL Server, Oracle Database, MySQL, PostgreSQL, DB2 y Teradata. Estos sistemas tienen la capacidad de plegar las consultas y nos permiten la conexión en modo DirectQuery, que consulta los datos en tiempo real, o en modo de importación, ideal para escenarios de carga periódica. Ambos modos facilitan el análisis sin necesidad de replicar todos los datos en la nube.

Fuentes de datos de archivos

Las puertas de enlace permiten el acceso a archivos de Excel, CSV, archivos de texto, XML y carpetas compartidas en red. Los datos de estos archivos pueden ser actualizados automáticamente para reflejar la última versión sin intervención manual. Esto es especialmente útil en entornos donde los datos se almacenan en archivos distribuidos en múltiples ubicaciones.

Sistemas de almacenamiento en la nube privada

Las puertas de enlace pueden conectar servicios de almacenamiento en la nube privada alojados dentro del entorno corporativo, incluyendo SAP HANA y SAP BW. Estos sistemas se encuentran en muchas grandes empresas, y la puerta de enlace asegura que los datos permanezcan en la red local mientras están disponibles para análisis en Power BI y Fabric.

Sistemas de información y aplicaciones empresariales

Power BI y Fabric permiten conectarse a sistemas como Microsoft Dynamics 365 on-premises y servicios OData, incluyendo SharePoint on-premises y otros servicios web empresariales. Estas integraciones son clave para empresas que utilizan sistemas empresariales complejos y desean incorporar datos de múltiples fuentes sin comprometer la seguridad.

Sistemas de mensajería y API REST

Las puertas de enlace también son compatibles con servicios que utilizan API REST, lo que permite integrarse con aplicaciones internas que exponen datos mediante servicios web. Esta opción ofrece flexibilidad para conectar sistemas personalizados de la organización.

Configuración de puertas de enlace en entornos de producción

La instalación y configuración de una puerta de enlace requiere ciertos conocimientos técnicos, especialmente en entornos de producción. Para instalar una puerta de enlace, debemos contar con un equipo (idealmente un servidor) que cumpla con los requisitos técnicos de Microsoft y que esté optimizado para manejar el flujo de datos y la carga de procesamiento.

Una vez instalada, la configuración de la puerta de enlace se gestiona desde el portal de administración de Power BI, donde podemos definir permisos de acceso a las fuentes de datos, configurar la autenticación de usuarios y programar las actualizaciones de datos. Las opciones de administración permiten a sus responsables controlar el acceso de los usuarios y gestionar los permisos para asegurar que solo personas autorizadas puedan acceder a los datos a través de la puerta de enlace.

Buenas prácticas para la instalación de puertas de enlace

Existen ciertas buenas prácticas recomendadas para optimizar el rendimiento y la seguridad de las puertas de enlace en entornos corporativos. A continuación, os comparto algunas consideraciones clave a tener en cuenta al instalar una puerta de enlace:

Separación de la puerta de enlace y el servidor de bases de datos

Aunque pueda parecer tentador, no es recomendable instalar la puerta de enlace en el mismo servidor donde reside la base de datos, ya que ambos servicios requieren recursos significativos. Si comparten el mismo servidor, podrían surgir conflictos de recursos en momentos de alta demanda, afectando la estabilidad y el rendimiento de ambos servicios. En su lugar, se recomienda instalar la puerta de enlace en un servidor dedicado que cuente con recursos suficientes para manejar la carga de trabajo de la puerta de enlace.

Ubicación en la misma subred

Para minimizar la latencia y optimizar el rendimiento de las transferencias de datos, es ideal que la puerta de enlace y el servidor de origen de los datos se encuentren en la misma subred. Esto permite una comunicación más rápida y reduce el riesgo de pérdida de paquetes de datos. Cuando la puerta de enlace y la base de datos están en diferentes subredes o ubicaciones, se puede experimentar una mayor latencia, lo cual afecta la eficiencia en el análisis de datos.

Ahora una recomendación personal. El tráfico de datos generado entre la puerta de enlace y un servidor de base de datos puede ser considerable lo que puede afectar al rendimiento de la red y verse afectado por otros usuarios de la red. Para estos casos la solución ideal es una subred aislada entre el servidor de bases de datos y la puerta de enlace. De este modo, nuestro servidor de bases de datos tendrá dos tarjetas de red, cada una en una red, una para el tráfico de los usuarios y otra exclusiva de comunicación con la puerta de enlace. Tampoco es raro encontrarnos en escenarios empresariales con una subred entre servidores aislada de los usuarios. En estos casos, deberéis valorar con los técnicos de redes si la puerta de enlace debe ir en esta red o en una dedicada.

Además, en entornos corporativos complejos, se recomienda aislar el tráfico de la puerta de enlace y la base de datos mediante VLANs independientes. Esta práctica no solo permite gestionar mejor el ancho de banda como acabamos de comentar sino que mejora la seguridad. La segmentación es particularmente importante cuando se trabaja con datos sensibles, ya que ayuda a cumplir con las normativas de privacidad y seguridad.

Balanceo de carga y alta disponibilidad

En organizaciones con grandes volúmenes de datos o con una alta frecuencia de actualizaciones, es recomendable implementar un clúster de puertas de enlace. Esto permite distribuir la carga de trabajo entre varias instancias, garantizando alta disponibilidad. En caso de que una puerta de enlace falle, otra puede asumir su carga, evitando interrupciones. El balanceo de carga es esencial cuando se trabaja con Microsoft Fabric, especialmente cuando usamos procesamiento de datos en tiempo real que requiere una infraestructura robusta y estable. Estos cluster de puertas de enlace solo los podremos hacer con puertas de enlace estándar, las personales no lo permiten.

Monitorización de recursos

Como la puerta de enlace realiza procesamiento de datos local, es importante monitorizar regularmente los recursos del servidor, como CPU, memoria y uso de red. Si detectamos un uso elevado de recursos, podríamos necesitar escalar la capacidad del servidor o migrar la puerta de enlace a un servidor con mayor capacidad para evitar problemas de rendimiento.

Consideraciones especiales para Microsoft Fabric

Con la integración de Microsoft Fabric, las puertas de enlace han ampliado su funcionalidad, permitiendo manejar flujos de datos más complejos y ejecutar análisis en tiempo real. En entornos de Fabric, es fundamental que la puerta de enlace tenga acceso a suficiente capacidad de procesamiento para soportar las demandas adicionales. Esto incluye configuraciones avanzadas para equilibrar la carga de procesamiento y distribuir las solicitudes de datos de forma eficiente. Además, como ya os he mencionado solo las puertas de enlace estándar son compatibles con Fabric, no vamos a poder usar una puerta de enlace personal.

Conclusión

Las puertas de enlace de Power BI y Microsoft Fabric son herramientas indispensables para las organizaciones que necesitan conectar sus datos locales con el servicio en la nube de forma segura y eficiente. Al permitir el procesamiento local de datos, las puertas de enlace optimizan el uso del ancho de banda y aseguran que solo los datos necesarios se transmiten a la nube, reduciendo la carga en la red y mejorando el rendimiento.

Este artículo y las ideas expuestas han sido inspirados en los artículos de Toni Jurado en explorandodatos.com, quien ha compartido valiosos conocimientos sobre el uso de puertas de enlace en Power BI. También os recomiendo el video sobre este tema del Power Quiz presentado por Ricardo Rincón y Diego jurado con Toni Jurado como quiz maker.

Espero que esta guía contribuya a un entendimiento más profundo de estas herramientas y a su implementación eficaz en entornos empresariales. Si tenéis alguna duda o sugerencia, podéis dejarla en Twitter, por mail o dejarnos un mensaje en los comentarios. Y recuerda que también tenemos un grupo de Telegram y un canal de YouTube a los que te puede unir. ¡Hasta la próxima!

Publicado por Roberto Carrancio en Cloud, Power BI, SQL Server, 1 comentario

Obtener el plan de ejecución real de una consulta sin ejecutarla

La semana pasada hablamos del impacto de Query Store en el rendimiento de nuestros servidores. Veíamos que por norma general es prácticamente nulo pero, en casos concretos, con muchas consultas Ad Hoc podría llegar a ser un problema. Si está en uno de esos rarísimos casos donde los beneficios de Query Store no compensan su impacto en el rendimiento aun hay algo que vas a poder hacer para obtener el plan real de una consulta sin tener que llegar a ejecutarla. 

Obtener el plan real es importante para medir el rendimiento de nuestras consultas y localizar problemas de rendimiento pero, el problema es que para ello necesitamos ejecutar la consulta y esta puede ser costosa. Por suerte, desde SQL Server 2019 tenemos una alternativa. Para poder hacer uso de ella es necesario configurar adecuadamente el servidor para que almacene el plan real en lugar de solo el estimado. En este artículo profundizaremos en cómo lograrlo, lo que facilita el acceso a estos planes sin impacto en el sistema productivo.

Introducción a los Planes de Ejecución en SQL Server

Como ya hemos visto en varias ocasiones en el blog, un plan de ejecución representa la secuencia de operaciones que SQL Server realiza para ejecutar una consulta. Estos planes se pueden clasificar en dos tipos:

  • Estimados: SQL Server los calcula antes de ejecutar la consulta, basándose en estadísticas de los índices y distribuciones de datos.
  • Reales: Se generan después de ejecutar la consulta, reflejando los datos y operaciones reales ejecutadas, incluyendo métricas de tiempo y consumo de recursos.

La posibilidad de acceder a un plan de ejecución real sin re-ejecutar la consulta es especialmente valiosa en entornos de producción. SQL Server 2019 introdujo una funcionalidad para almacenar estos planes reales en caché, permitiendo su análisis sin la sobrecarga de una nueva ejecución.

¿Por qué vas a querer almacenar el plan real de las consultas?

Guardar el plan de ejecución real en lugar del estimado nos ofrece una visión precisa del rendimiento y consumo de recursos en tiempo de ejecución de una consulta, algo crucial para entornos de producción. A diferencia del plan estimado, que se basa en estadísticas previas, el plan real refleja las operaciones exactas que SQL Server ejecuta, incluyendo ajustes específicos de paralelismo, decisiones en el uso de índices y variaciones en la ejecución según los datos y los recursos disponibles. Esta precisión nos permite identificar cuellos de botella y problemas de optimización, como el parameter sniffing, donde SQL Server puede seleccionar un plan ineficiente basado en parámetros iniciales de la consulta.

Además, el plan real permite observar el impacto de condiciones específicas del sistema, como bloqueos y alta carga de CPU o memoria, brindándonos una comprensión completa del rendimiento bajo diferentes estados. En resumen, esta visibilidad detallada nos facilita la optimización continua, ya que podemos detectar patrones de rendimiento y ajustar el sistema o la consulta para mejorar la eficiencia sin necesidad de re-ejecutar la consulta. En conjunto, el acceso a planes reales convierte el análisis de rendimiento en un proceso más efectivo, permitiéndonos una gestión más precisa y proactiva del rendimiento del sistema SQL Server.

Almacenar en caché planes de ejecución reales

SQL Server nos permite almacenar el plan de ejecución real en la caché de planes, en lugar de solo el estimado. Esta configuración es especialmente útil para detectar problemas de rendimiento, ya que proporciona información precisa sin la necesidad de una segunda ejecución de la consulta. 

Para activar la traza globalmente en el servidor, podemos hacer uso de la traza 2451:

Donde 2451 es el número de la traza que permite almacenar el plan real y -1 establece que la traza se active a nivel global para todas las bases de datos y usuarios.

Nota: Activar la traza puede aumentar el uso de recursos del sistema, ya que SQL Server debe registrar información adicional para cada consulta que se ejecuta. Además, activar esta función requiere vaciar la caché de planes por lo que es recomendable activarlo solo si es estrictamente necesario y preferiblemente en ventanas de mantenimiento programadas o aprovechando una intervención de un reinicio del servicio.

Otra opción es activar esta característica a nivel de base de datos para que no se aplique a todo el servidor. En este caso, aunque los riesgos son los mismos vamos a poder minimizar el impacto. Para activarlo a nivel de base de datos usaremos el siguiente comando sobre la base de datos donde queramos cambiar la configuración.

Acceso al último plan de rjecución real

Una vez activada la traza o la configuración de base de datos, SQL Server almacenará los planes de ejecución reales en el caché de planes. Para acceder a ellos, utilizamos vistas de administración dinámica (DMVs) como sys.dm_exec_query_stats y sys.dm_exec_query_plan. Estas vistas nos proporcionan datos sobre las consultas y los planes almacenados en caché, permitiendo su análisis sin necesidad de re-ejecutar la consulta.

Ejemplo de consulta para obtener el último plan real

La siguiente consulta permite recuperar el último plan de ejecución real de las consultas en caché:

Esta consulta devuelve el campo query_text con el texto SQL de la consulta y el campo query_plan con el plan de ejecución en formato XML. Para ver el plan de ejecución gráfico, podemos hacer clic en el XML en SQL Server Management Studio (SSMS), lo cual nos permite analizar visualmente las operaciones ejecutadas, los índices utilizados y el costo relativo de cada operación.

Filtrado de una consulta específica

Si estamos buscando el plan de ejecución de una consulta en particular, es posible restringir los resultados usando un filtro en el texto de la consulta, lo cual facilita la identificación del plan específico entre todas las consultas en el caché:

Nota: A la hora de introducir parte del texto de la consulta que buscas en el filtro ten en cuenta que debe ser parte de la consulta (normalmente un nombre de una tabla o de un campo) pero nunca uno de los valores de los campos por los que estás filtrando ya que SQL Server remplaza esos valores por parámetros a la hora de almacenar el plan. 

Es decir, si quieres buscar la consulta “SELECT Campo1 FROM MiTabla WHERE Campo2=’tutifruti’;” podrás buscar por ‘%Campo1%’, ‘%Campo2%’ o ‘%MiTabla%’ pero no por ‘%tutifruti%’. Cuando encuentres el plan de ejecución vas a ver que lo que se ha guardado es algo parecido a esto “SELECT Campo1 FROM MiTabla WHERE Campo2=@0

Consideraciones Finales

La capacidad de acceder al último plan de ejecución real sin re-ejecutar la consulta es una capacidad poderosa para los DBAs, especialmente porque nos facilita la tarea de buscar problemas de rendimiento. Esta configuración nos ofrece un enfoque integral para monitorizar, analizar y optimizar el rendimiento de las consultas en entornos de producción sin comprometer la estabilidad del sistema. Sin embargo, aunque este enfoque nos permite detectar problemas de rendimiento con precisión y realizar ajustes informados para mejorar la eficiencia general del sistema para mi sigue siendo mejor la alternativa de Query Store donde vamos a poder ver todo el historial de planes de ejecución a lo largo del tiempo que hayamos definido y no solo el último plan real almacenado en caché.

Si tenéis alguna duda o sugerencia, podéis dejarla en Twitter, por mail o dejarnos un mensaje en los comentarios. Y recuerda que también tenemos un grupo de Telegram y un canal de YouTube a los que te puede unir. ¡Hasta la próxima!

Publicado por Roberto Carrancio en Cloud, Rendimiento, SQL Server, 0 comentarios
SQL Server 2025 y Fabric SQL Database

SQL Server 2025 y Fabric SQL Database

Hoy (ayer para vosotros) ha sido un día emocionante para todos los que trabajamos con SQL Server y tecnologías relacionadas con el manejo de datos. Microsoft ha revelado importantes novedades entre ellas el anuncio oficial de SQL Server 2025 y la disponibilidad de la preview pública de Fabric SQL Database. Estas innovaciones no solo apuntan a mejorar el rendimiento y las capacidades técnicas, sino que también marcan un paso adelante en la integración de soluciones híbridas y en la experiencia de usuario.

Un Vistazo a SQL Server 2025

La nueva versión de SQL Server 2025 llega con una propuesta clara: acelerar la transición hacia sistemas más inteligentes, seguros y eficaces. Entre las novedades más destacadas se encuentran cosas que no nos sorprenden como IA y cloud, pero vamos a ver las novedades anunciadas una a una.

Mejoras en el rendimiento a través de IA

SQL Server 2025 incorpora inteligencia artificial para optimizar automáticamente las consultas y el rendimiento general de las bases de datos. El uso de aprendizaje automático permite identificar patrones de uso y ajustar índices o recursos de manera proactiva, minimizando el tiempo de inactividad y maximizando la eficiencia.

Mi opinión: La inclusión de IA en el núcleo de SQL Server 2025 es, sin duda, esperable. Hoy en día si lanzas un producto sin IA parece que no lo has hecho. Las primeras pruebas determinarán si esta tecnología está realmente lista para integrarse en operaciones del día a día.

Seguridad Reforzada

La ciberseguridad sigue siendo un pilar central en esta nueva versión. SQL Server 2025 incluye cifrado de datos mejorado con algoritmos de última generación y autenticación multifactorial, además de un sistema de detección de amenazas integrado que alerta en tiempo real sobre posibles intrusiones o comportamientos anómalos.

Mi opinión: Para mi la seguridad siempre será una prioridad, especialmente en bases de datos críticas. Aunque veremos, desde luego estas mejoras anunciadas son bienvenidas, tendremos que evaluar su impacto en el rendimiento y cómo se integran en arquitecturas existentes. Las empresas pequeñas podrían sentirse intimidadas si estas nuevas características aumentan la complejidad de la configuración. Solo el tiempo dirá si nos encontramos con otra característica como Always Encrypted que no va a usar nadie o nos encontramos con algo útil de verdad. 

Compatibilidad Multinube e Híbrida

Siguiendo la tendencia de soluciones híbridas, SQL Server 2025 facilita la migración y operación simultánea en entornos on-premises, multinube y edge. Esto se traduce en mayor flexibilidad y opciones para las empresas, con herramientas diseñadas para gestionar bases de datos distribuidas en diferentes infraestructuras sin fricción.

Mi opinión: Esta característica es una evolución natural hacia infraestructuras más modernas. Realmente me entusiasma la promesa de mayor flexibilidad, aunque será fundamental que Microsoft garantice que estas implementaciones híbridas mantengan un rendimiento consistente y fácil administración, especialmente en escenarios multinube. También esperemos que no pase como con la sincronización real time bidireccional de SQL a Azure que tendría que haber tenido SQL Server 2022 desde el principio (Diciembre de 2022) y al final vimos en producción hace un mes.

Soporte para grandes volúmenes de datos

Los avances en la gestión de datos masivos son notorios. Ahora, SQL Server puede manejar de manera más eficiente petabytes de información gracias a un mejor uso de los recursos y la compatibilidad con arquitecturas modernas de procesamiento paralelo.

Mi opinión: Este enfoque es crítico en un mundo donde los datos no dejan de crecer. Como administradores, esperamos que esta mejora también se refleje en operaciones comunes, como copias de seguridad o análisis en tiempo real, sin que suponga un aumento desmesurado en los costos.

Fabric SQL Database

Junto al lanzamiento de SQL Server 2025, Microsoft también ha presentado Fabric SQL Database en versión pública preliminar. Fabric SQL Database está diseñado como una extensión natural dentro del ecosistema Microsoft Fabric, combinando lo mejor de los sistemas relacionales con la escalabilidad y flexibilidad de la nube.

Convergencia de Datos en Tiempo Real

Fabric SQL Database destaca por su capacidad para integrarse de manera nativa con otros componentes de Microsoft Fabric, permitiendo un acceso en tiempo real a los datos para procesos de análisis, BI y machine learning.

Mi opinión: La posibilidad de trabajar con datos en tiempo real abre puertas a escenarios más dinámicos, especialmente en análisis predictivos. Será interesante observar si esta funcionalidad se mantiene consistente con diferentes volúmenes de datos y bajo cargas intensas. También tengo ganas de ver como convive con KQL.

Ecosistema Unificado

Los usuarios ahora pueden aprovechar una experiencia unificada, integrando datos desde múltiples fuentes en Fabric SQL Database sin necesidad de recurrir a herramientas de ETL complejas. Esto simplifica enormemente los flujos de trabajo y reduce los costos operativos.

Mi opinión: Este enfoque podría ser revolucionario para los equipos que necesitan rapidez y simplicidad. Sin embargo, como siempre, habrá que evaluar si esta unificación sacrifica algo de control sobre los datos y aún más, sobre la administración, puntos críticos para arquitecturas altamente personalizadas.

Escalabilidad Dinámica

Diseñado para la nube, Fabric SQL Database es capaz de escalar automáticamente según la carga de trabajo, lo que lo hace ideal para empresas que manejan volúmenes fluctuantes de datos o necesitan capacidades avanzadas de análisis en tiempo real.

Mi opinión: La escalabilidad automática es un sueño para muchos DBAs. Aun así, será vital que Microsoft mantenga la transparencia en los costes asociados con esta escalabilidad, ya que un crecimiento inesperado podría suponer sorpresas presupuestarias.

Interoperabilidad Avanzada

Fabric SQL Database no solo es compatible con los estándares SQL tradicionales, sino que también permite consultas cross-database y soporte directo para lenguajes como Python y R. Esto amplía sus casos de uso, especialmente en análisis de datos y proyectos de inteligencia artificial.

Mi opinión: Este nivel de interoperabilidad es crucial para mantenerse competitivo en entornos modernos. Sin embargo se me queda algo corto, la posibilidad de usar lenguajes como Python y R directamente en Fabric SQL Database es algo que ya tenemos en SQL Server y en Fabric por separado. No esperaba menos la verdad. aunque dependerá de cuán fluida sea la integración para determinar su adopción masiva.

¿Qué Significan Estas Novedades para el Futuro?

La combinación de SQL Server 2025 y Fabric SQL Database representa un paso significativo hacia la simplificación y modernización de la gestión de datos. Ambas tecnologías no solo ofrecen un rendimiento mejorado, sino que también proporcionan herramientas más inteligentes y flexibles que responden a las necesidades de un mundo cada vez más conectado y basado en la nube.

Desde mi punto de vista, estas actualizaciones son una gran oportunidad para empresas que buscan adoptar soluciones más eficientes y alineadas con las tendencias del mercado. Además, estos avances consolidan a Microsoft como líder en innovación dentro del ecosistema de bases de datos.

Estaré atento a más detalles y lanzamientos relacionados con estas novedades y en cuanto pueda trataré de probarlo todo lo que pueda. Si queréis estar al día con guías técnicas y casos prácticos sobre SQL Server y tecnologías relacionadas, no dudéis en seguir el blog.

Si tenéis alguna duda o sugerencia, podéis dejarla en Twitter, por mail o dejarnos un mensaje en los comentarios. Y recuerda que también tenemos un grupo de Telegram y un canal de YouTube a los que te puede unir. ¡Hasta la próxima!

Publicado por Roberto Carrancio en Otros, 0 comentarios

Migrar datos de Azure a local

En ocasiones nos vamos a encontrar con que necesitamos migrar una base de datos que tenemos alojada en Azure hacia un entorno local, ya sea porque nuestras necesidades han cambiado y preferimos una solución on-premise o para pruebas. Sea cual sea el motivo lo cierto es que existen diferentes enfoques y herramientas disponibles y no todas las podremos usar en todos los casos. Vamos a verlo.

Análisis previo

Lo primero que tenemos que tener en cuenta es nuestra versión de SQL Server on-premise. Para esta tarea, un SQL Server 2022 actualizado con los últimos parches nos va a facilitar enormemente la tarea, no es un aspecto bloqueante pero sí que nos va a limitar las opciones que tenemos disponibles para el proceso.

Lo siguiente que debemos tener en cuenta es el tipo de solución en Azure de la que vamos a sacar los datos, como vamos a ver, las bases de datos sin servidor (Azure Database) nos van a limitar mucho las opciones. Si tenemos una Azure Managed Instance también tendremos que mirar qué configuración tenemos. Por defecto las managed instance tienen las bases de datos en modo de compatibilidad SQL Server 2022 pero esta configuración se puede cambiar por una configuración Always-up-to-date que, es una de las ventajas de la nube, pero que a la hora de pasar los datos a local también nos va a suponer una complicación.

Migrar con Archivos BACPAC

La exportación e importación de bases de datos a través de archivos BACPAC es uno de los métodos más utilizados para mover bases de datos entre Azure SQL Database, Azure Managed Instance y un servidor SQL local. Este archivo incluye tanto los esquemas como los datos de la base de datos, lo que permite una transferencia completa.

Para Azure SQL Database, esta opción es completamente compatible y el proceso es relativamente sencillo. En el caso de Azure Managed Instance, aunque también es posible, su uso es menos común ya que Managed Instance permite la creación de backups nativos (.bak), que son más rápidos y efectivos para bases de datos más grandes o complejas.

La configuración Always-up-to-date de Managed Instance no afecta al uso de BACPAC, ya que este formato es compatible con múltiples versiones de SQL Server. Sin embargo, si se importa un archivo BACPAC en un entorno SQL local con una versión más antigua de SQL Server, podría haber problemas de compatibilidad debido a nuevas características que no son soportadas en versiones anteriores.

Migrar con Archivos de Backup (.bak)

Uno de los métodos más directos para copiar bases de datos desde Azure Managed Instance a un servidor local es la restauración desde archivos de backup nativo (.bak). Esta opción no está disponible para Azure SQL Database, pero en Managed Instance es completamente compatible y el proceso es similar al que se realizaría con cualquier otra instancia de SQL Server.

No obstante, la configuración Always-up-to-date de Managed Instance puede afectar este método si el servidor local tiene una versión más antigua de SQL Server. Los archivos de backup generados en Managed Instance con la versión más reciente podrían incluir características o formatos de almacenamiento que no son compatibles con versiones antiguas. 

Para usar este método de migración deberemos hacer una copia de seguridad de las bases de datos de Azure Managed Instance en un almacenamiento de Azure, descargaremos los archivos de copia y ya en local los podremos restaurar en nuestro SQL Server.

Generación de Scripts con Datos

La generación de scripts SQL es otra forma flexible de migrar bases de datos desde Azure SQL Database o Azure Managed Instance a un servidor local. Este método permite exportar tanto el esquema como los datos en un formato SQL ejecutable, que puede ser personalizado según las necesidades del entorno local.

Esta opción es completamente compatible tanto con Azure SQL Database como con Managed Instance, y no se ve afectada por la configuración Always-up-to-date ni por la versión de SQL Server. Sin embargo, si el script contiene características avanzadas introducidas en versiones más recientes de SQL Server, puede que no se ejecute correctamente en versiones más antiguas del servidor SQL local, lo que obligaría a realizar ajustes manuales en el script.

Para este tipo de migración, desde SSMS, seleccionamos la base de datos en Azure que queremos migrar. Utilizamos la opción «Generar scripts» desde el menú contextual (clic derecho sobre la base de datos). Se nos abrirá un asistente que nos permitirá elegir qué objetos queremos incluir en el script. Podemos optar por seleccionar todas las tablas, vistas, procedimientos almacenados y otros objetos de la base de datos, o solo algunos de ellos, según sea necesario. Para incluir los datos, debemos ir a las opciones avanzadas y seleccionar «Esquema y Datos» en la sección de scripts.
Esto generará un script que incluirá tanto las definiciones de las tablas como los comandos INSERT para poblarlas con los datos existentes. Una vez que el script está generado, podemos guardarlo en un archivo o abrirlo en una nueva pestaña de SSMS para ejecutarlo en el servidor de SQL Server local.
Este script creará la base de datos y restaurará tanto la estructura como los datos aunque es posible que debamos editar un poco las opciones de creación de la base de datos.

Migrar con el asistente de Importación/Exportación

El Asistente de Importación/Exportación de SQL Server, que utiliza paquetes SSIS, es una herramienta versátil para mover datos entre bases de datos en la nube y servidores SQL locales. Este método permite seleccionar qué tablas transferir, realizar transformaciones de datos durante el proceso y manejar grandes volúmenes de información.

Este método es compatible tanto con Azure SQL Database como con Azure Managed Instance, y no se ve afectado por la configuración Always-up-to-date. Sin embargo, la base de datos debe existir previamente en el entorno local. También os recomiendo usar el método anterior, aunque sin datos, previamente para crear los objetos ya que este asistente solo sirve para la copia de datos y si la tabla no existe la creará pero sin índices, restricciones, etc… El resto de objetos tampoco los va a crear este asistente.

Replicación de Datos con Azure SQL Data Sync

Azure SQL Data Sync es una herramienta diseñada específicamente para sincronizar datos entre bases de datos de Azure SQL Database y servidores locales de SQL Server. Esta opción es útil para entornos híbridos en los que se necesita mantener la sincronización de datos entre múltiples bases de datos.

Data Sync es compatible con Azure SQL Database, pero no puede utilizarse con Azure Managed Instance. Además, la configuración Always-up-to-date no influye en este método, ya que esta es una configuración exclusiva de Managed Instance. Sin embargo, la versión del servidor SQL local puede influir, especialmente si es necesario utilizar características de sincronización que no están disponibles en versiones más antiguas.

Migrar con Azure Managed Instance Link: Migraciones Online

Azure Managed Instance Link es una solución avanzada para realizar migraciones online entre Azure Managed Instance y servidores locales mediante Distributed Availability Groups que ha salido en GA el pasado octubre. Permite replicar datos en tiempo real, facilitando migraciones sin interrupciones significativas en el servicio.

Esta funcionalidad solo está disponible para Azure Managed Instance, por lo que no es compatible con Azure SQL Database. La configuración Always-up-to-date puede influir, ya que es necesario que la versión de SQL Server local sea compatible con las características de replicación de Managed Instance. La documentación dice que para que esta funcionalidad funcione correctamente, el servidor SQL local debe tener al menos SQL Server 2016 o una versión superior que soporte Distributed Availability Groups pero eso es para la replicación desde local a la nube, para una replicación bidireccional o de la nube a local vas a necesitar que el servidor local sea SQL Server 2022 CU 10 o superior y que la configuración Up-to-Date de Azure MI no esté activada.

Comparativa de opciones para migrar

Como lo que acabamos de ver tiene muchas variables y hay muchas opciones disponibles creo que la mejor manera de verlo todo claro es con esta tabla comparativa

Método Compatibilidad con Azure SQL DatabaseCompatibilidad con Managed InstanceImpacto de la Configuración Always-up-to-dateRequisitos de Versión en SQL Server Local
BACPAC Compatible Compatible No afectaPuede fallar en versiones antiguas
Backup Nativo (.bak)No compatibleCompatible Puede afectarRequiere misma versión o superior
Generación de ScriptsCompatible Compatible No afectaPuede requerir ajustes en versiones antiguas
Asistente Import/Export Compatible Compatible No afectaNo afecta
Azure SQL Data Sync Compatible No compatibleNo afectaPuede requerir versión reciente
Azure MI LinkNo compatible Compatible No compatibleRequiere SQL Server 2022 CU 10 o superior

Conclusión

El proceso de copiar o migrar bases de datos desde Azure SQL a entornos locales de SQL Server varía en función del método elegido y de las características específicas del entorno en la nube y el servidor local. Las opciones como BACPAC y la generación de scripts son flexibles y ampliamente compatibles con ambas soluciones en la nube. Sin embargo, los backups nativos (.bak) y Azure Managed Instance Link son exclusivos de Azure Managed Instance, y su efectividad puede verse afectada por la configuración Always-up-to-date y la versión de SQL Server en el entorno local. Es fundamental tener en cuenta la compatibilidad de versiones y las características avanzadas en cada entorno antes de realizar una migración para asegurar un proceso fluido y sin interrupciones.

Si tenéis alguna duda o sugerencia, podéis dejarla en Twitter, por mail o dejarnos un mensaje en los comentarios. Y recuerda que también tenemos un grupo de Telegram y un canal de YouTube a los que te puede unir. ¡Hasta la próxima!

Publicado por Roberto Carrancio en Cloud, SQL Server, 0 comentarios

Soft Skill para un buen DBA

Las habilidades blandas, o soft skill, son habilidades interpersonales y de comunicación que son fundamentales para cualquier profesional. Un DBA no va a ser menos y no solo porque opera en un entorno técnico complejo, sino porque nuestra posición entre varios equipos es crítica. Aunque muchas veces se subestima la importancia de estas habilidades frente a las competencias técnicas, las soft skills permiten a los DBAs trabajar de manera eficiente con otros equipos, como los de desarrollo, análisis y sistemas, lo cual es esencial para lograr una colaboración productiva y soluciones eficaces.

La importancia de las soft skills en un DBA

Cuando hablamos del trabajo de un DBA, solemos centrarnos en sus responsabilidades técnicas: optimización de consultas, interpretación de planes de mantenimiento, resolución de incidencias o problemas de rendimiento, entre otros. Sin embargo, el trabajo no se limita a la gestión técnica de la base de datos. Los DBAs deben interactuar regularmente con diferentes grupos dentro de la organización, lo que hace que las soft skill sean igual de esenciales que las habilidades técnicas.

Un DBA a menudo sirve como puente entre los desarrolladores, los analistas y los administradores de sistemas, mediando y asegurando que las necesidades de todos los departamentos se gestionen adecuadamente. Estas habilidades blandas son clave para asegurar que las decisiones técnicas sean comprendidas y respetadas por todos los involucrados.

Soft Skill 1: Comunicación efectiva

Uno de los aspectos más importantes para un DBA es la capacidad de comunicarse claramente con otros equipos. Es común que un DBA tenga que explicar problemas complejos de rendimiento a un equipo de desarrollo o justificar cambios en las políticas de acceso a datos a los analistas de seguridad. Aquí es donde una comunicación efectiva se vuelve crucial.

La capacidad de traducir los detalles técnicos en un lenguaje comprensible para diferentes audiencias es esencial para evitar malentendidos y asegurar que todas las partes involucradas tomen decisiones informadas. Además, la comunicación fluida facilita la colaboración proactiva, lo que ayuda a anticipar y resolver problemas antes de que afecten la estabilidad de la base de datos o la calidad del servicio.

En particular, en proyectos donde la colaboración entre los equipos de desarrollo y DBA es fundamental, es necesario compartir el conocimiento de manera que ambos grupos comprendan los riesgos, limitaciones y oportunidades que presenta cada modificación o implementación. Por ejemplo, si el equipo de desarrollo está implementando nuevas funciones en una aplicación que afecta la base de datos, el DBA debe explicar claramente cómo esos cambios podrían impactar el rendimiento o la integridad de los datos. A su vez, debe escuchar las necesidades del equipo de desarrollo para encontrar soluciones que maximicen el rendimiento sin sacrificar la funcionalidad.

Soft Skill 2: Empatía

La empatía es una habilidad blanda que permite a un DBA comprender los desafíos y prioridades de otros departamentos. Como dice el gran Salvador Ramos: Ponerse en los zapatos de los demás. Al ponerse en los zapatos del equipo de desarrollo o de análisis, un DBA puede adaptar mejor sus estrategias para cumplir con las expectativas de rendimiento, disponibilidad y seguridad que son críticas para esos equipos.

Por ejemplo, los desarrolladores a menudo están más enfocados en lanzar nuevas características y mejorar la funcionalidad de las aplicaciones, mientras que los DBAs tienden a priorizar la estabilidad y el rendimiento a largo plazo. Entender esta diferencia de prioridades ayuda al DBA a buscar un equilibrio que permita a los desarrolladores innovar sin comprometer la seguridad o la escalabilidad de la base de datos.

De igual manera, los analistas pueden requerir acceso a grandes volúmenes de datos para sus informes, lo cual puede ser una carga significativa para el sistema si no se gestiona adecuadamente. Un DBA empático será capaz de identificar soluciones, como optimizaciones en las consultas o el uso de tecnologías como ColumnStore Index que equilibren las necesidades de los analistas sin sobrecargar la infraestructura.

Soft Skill 3: Resolución de conflictos y gestión de expectativas

A menudo, los DBAs nos encontramos en situaciones donde diferentes equipos tienen expectativas o prioridades conflictivas. Un ejemplo clásico es el conflicto entre los desarrolladores que buscan agilidad y velocidad en la implementación de nuevas características, y los equipos de operaciones o de sistemas que prefieren estabilidad y control. Aquí, las habilidades para gestionar conflictos son esenciales.

El DBA debe actuar como mediador, identificando las preocupaciones de cada parte y trabajando hacia soluciones que satisfagan a todos los involucrados. Esto puede implicar negociar plazos, proponer alternativas técnicas o establecer compromisos. La gestión de expectativas es un factor crítico: ser transparente y realista sobre lo que se puede lograr, los riesgos involucrados y el impacto potencial en la operación de la base de datos ayuda a prevenir frustraciones y desacuerdos más adelante.

Por ejemplo, si el equipo de desarrollo necesita acceso a una nueva base de datos en producción en un tiempo récord, el DBA debe ser claro sobre los tiempos requeridos para realizar pruebas adecuadas y garantizar que los sistemas de respaldo y seguridad estén implementados. Al gestionar estas expectativas, se pueden evitar situaciones de riesgo que podrían poner en peligro la integridad del sistema.

Soft Skill 4: Trabajo en equipo y colaboración

Los DBAs rara vez trabajamos en solitario. La naturaleza de nuestro trabajo nos pone en contacto constante con otros profesionales técnicos y no técnicos. La capacidad de trabajar en equipo es una habilidad fundamental, ya que el éxito de un proyecto a menudo depende de la colaboración fluida entre múltiples áreas. En este sentido, un buen DBA no solo tiene que saber liderar cuando sea necesario, sino también integrarse como un miembro productivo dentro de un equipo más amplio.

En entornos modernos de DevOps, donde la colaboración entre desarrollo, operaciones y bases de datos es más cercana que nunca, la capacidad de adaptarse a un flujo de trabajo ágil y colaborativo es esencial. El DBA debe contribuir al ciclo de vida de desarrollo de software de manera continua, lo que implica participar en sprints y reuniones de planificación, además de estar disponible para resolver problemas de base de datos rápidamente.

Soft Skill 5: Adaptabilidad

Los entornos tecnológicos evolucionan rápidamente, y los DBAs no somos una excepción a esta tendencia. Un DBA que pueda adaptarse a nuevas tecnologías, metodologías y herramientas estará mejor preparado para enfrentar los desafíos cambiantes del día a día.

Por ejemplo, en la actualidad, cada vez más empresas están adoptando soluciones de bases de datos en la nube, como Azure SQL. Un DBA que se adapte a estas tecnologías no solo será capaz de administrar bases de datos locales, sino que también podrá colaborar efectivamente con equipos que estén diseñando o migrando aplicaciones hacia la nube. Además, el DBA tendrá que colaborar estrechamente con los equipos de desarrollo y análisis para asegurar que los servicios en la nube se utilicen de manera óptima, garantizando tanto el rendimiento como la seguridad.

Conclusión

Las soft skills no deben subestimarse en la carrera de un DBA. Habilidades como la comunicación efectiva, la empatía, la gestión de conflictos, la adaptabilidad y el trabajo en equipo son esenciales para gestionar con éxito bases de datos en entornos complejos y colaborativos. El papel de un DBA no se limita solo a las tareas técnicas; implica ser un enlace crítico entre distintos equipos, facilitando soluciones que permitan a la empresa operar de manera eficiente y segura. Al desarrollar estas habilidades, los DBAs no solo mejorarán su capacidad para resolver problemas técnicos, sino que también se convertirán en colaboradores valiosos en cualquier organización.

Si tenéis alguna duda o sugerencia, podéis dejarla en Twitter, por mail o dejarnos un mensaje en los comentarios. Y recuerda que también tenemos un grupo de Telegram y un canal de YouTube a los que te puede unir. ¡Hasta la próxima!

Publicado por Roberto Carrancio en Otros, 0 comentarios