Seleccionar página
13 de marzo de 2024

Acelera el análisis de tus datos con el nuevo modo Direct Lake de Microsoft Fabric

Nos adentramos en la nueva funcionalidad que ofrece Fabric, el modo Direct Lake, descubriendo sus ventajas frente a los antiguos modos de conexión y conociendo sus limitaciones para sacarle el máximo partido.

Fabric va creciendo y madurando poco a poco y cada vez nos va proporcionando soluciones más innovadoras para crear nuestros modelos semánticos y conectarnos a los datos. En este artículo, vamos a hablar sobre el modo Direct Lake, comparándolo con sus hermanos mayores, Import y DirectQuery, y mostrando tanto sus ventajas como sus limitaciones.

¡Comenzamos!

Hasta ahora, conocíamos en Power BI los modos de conectividad de datos Import, DirectQuery y para ciertos orígenes de datos el modo Live, pero con Fabric aparece una nueva funcionalidad conocida como Direct Lake que, a fecha de redacción de este artículo, se encuentra en versión preliminar.

El modo Direct Lake es una nueva capacidad que utilizan por defecto los modelos semánticos de Fabric y que permite tratar grandes volúmenes de datos sin tener que importar los datos en un modelo de Power BI. Esto lo consigue mediante la carga de datos directamente desde OneLake, consultando los archivos delta directamente sin necesidad de enviar consultas SQL al origen de datos. Solo sería necesario tener esos archivos delta almacenados en OneLake, bien sea en un Lakehouse o en un Warehouse según las necesidades del modelo y preferencias del usuario.

De esta forma, eliminamos la desventaja de rendimiento que podemos encontrar con DirectQuery y evitamos tener que duplicar datos como en el modo Import. Y, al mismo tiempo, conseguimos las ventajas de inmediatez de los datos y un buen rendimiento de estos. Por tanto, el modo Direct Lake sería ideal para un modelo de datos grande en el que el origen de los datos esté en constante cambio.

En el siguiente diagrama vemos cómo trabaja la capacidad Direct Lake frente a los modos previos de Import y DirectQuery.

modos-almacenamiento-microsoft

Resumen de los diferentes modos de almacenamiento (Fuente: Microsoft)

Microsoft Fabric, La Plataforma de Analítica Completa y Unificada que necesitas

Llega Microsoft Fabric, una plataforma de análisis unificada e integral que reúne todos los datos y las necesidades analíticas de una organización. Una solución de análisis todo en uno para empresas que abarca todo, desde el movimiento de datos a la ciencia de datos, Real-Time Analytics y la inteligencia empresarial.

Lleva tus datos a la era de la Inteligencia Artificial y convierte tus datos en una ventaja competitiva.

Otra de las ventajas del modo Direct Lake es el refresco automático del modelo semántico al añadir datos o realizar cambios de metadatos en el mismo. Con esta nueva funcionalidad ahorraremos en tiempo de procesamiento del modelo evitando esos largos refrescos de los grandes modelos en modo Import.

Pero ¿qué pasa si no queremos que los cambios en los datos se vean reflejados inmediatamente en nuestro modelo semántico? Para eso existe una propiedad en el apartado de Refresco del modelo semántico, que viene habilitada por defecto pero que podemos deshabilitar para escenarios en los que estemos probando los datos o no queramos mostrarlos todavía al usuario final.

Refresh-fabric-direct-lake

Además, como podemos ver en la imagen, es posible activar un refresco programado del modelo semántico para estos casos. Esta última funcionalidad de programar una frecuencia concreta de refresco solo está disponible para los modelos semánticos creados manualmente y no para los que se crean por defecto dentro del Lakehouse o Warehouse.

Limitaciones de Direct Lake

Además, como podemos ver en la imagen, es posible activar un refresco programado del modelo semántico para estos casos. Esta última funcionalidad de programar una frecuencia concreta de refresco solo está disponible para los modelos semánticos creados manualmente y no para los que se crean por defecto dentro del Lakehouse o Warehouse.

sku-fabric

Si nuestro modelo supera alguna de estas limitaciones en la capacidad que tengamos contratada tendríamos que ir a una capacidad superior o desechar la idea de usar Direct Lake.

Por otro lado, encontramos otra serie de limitaciones propias del modo Direct Lake como son que el modelo no puede estar formado por vistas, no permite crear columnas ni tablas calculadas o que no se puede hacer uso de Power Query, entre otras.

A todo esto, se suman las limitaciones que encontramos en los modelos semánticos que se crean por defecto en cada Lakehouse y Warehouse:

  • No nos permite programar los refrescos ni refrescar el modelo manualmente.
  • No se pueden realizar cambios en los nombres de las tablas ni de las columnas.
  • No está permitido modificar la propiedad del comportamiento de Direct Lake que viene por defecto en automático, como veremos más adelante.

Si el modelo se encuentra con alguna de estas limitaciones o excede los límites de capacidad provocará un fallback. Esto no significa que el informe deje de funcionar o provoque un fallo, si no que sus consultas cambiarán al modo DirectQuery perjudicando el rendimiento del informe.

Comportamientos del modo Direct Lake

Existen tres modos de comportamiento del Direct Lake para el modelo semántico. Estos modos se pueden cambiar modificando la propiedad DirectLakeBehavior a través de la herramienta Tabular Editor. Para ello, debemos conectarnos al modelo semántico a través de dicha herramienta y seleccionando a nivel del modelo encontramos la propiedad.

direct-lake-behavior

Dada la constante evolución que encontramos en este modo, desde hace unos días, también podemos modificar esta propiedad en el propio modelo semántico.

comportamiento-direct-lake

El comportamiento que viene seleccionado por defecto es el Automático, que hará uso de las consultas en Direct Lake mientras pueda y provocará un fallback de las mismas a DirectQuery si encuentra alguna limitación, garantizándonos que los informes creados a partir de un modelo Direct Lake muestren resultados a pesar de no cumplir con alguna condición. Es importante tener en cuenta que todavía no es posible tener modelos compuestos con Direct Lake, por lo que si alguna tabla no cumple con las limitaciones que hemos comentado anteriormente todas las tablas del modelo pasarán a modo DirectQuery.

Una de las formas de averiguar si con el comportamiento automático las consultas se están ejecutando en modo Direct Lake o si, por el contrario, se está produciendo un fallback a DirectQuery es a través de la propia herramienta de Power BI Performance Analyzer. Como podemos ver en el ejemplo de la izquierda, la consulta está provocando un fallback a DirectQuery mientras que en la imagen de la derecha se está ejecutando en Direct Lake.

performance-analyzer-1
performance-analyzer-2

También vemos la posibilidad del comportamiento Solo consulta directa (DirectQueryOnly) por si quisiéramos que las consultas no se ejecuten en modo Direct Lake. Esto sería interesante para probar el rendimiento del modo DirectQuery, bien para compararlo con el modo Direct Lake o bien para hacer uso del modo Automático y conocer las consecuencias de rendimiento de un posible fallback.

Y, por último, vemos el modo Solo Direct Lake (DirectLakeOnly), pero, podrías pensar, ¿cuál es la utilidad de tener este modo si el modo automático ya ejecuta las consultas en modo Direct Lake en primer lugar? Pues una gran utilidad es descubrir qué limitación de las antes comentadas está provocando que nuestra consulta se ejecute en modo DirectQuery en vez de en modo Direct Lake y así poder solventarlas.

De esta forma, forzando el modo Direct Lake, podemos descubrir que alguna de nuestras tablas supera el número máximo de filas:

error-fabric

O que el modelo semántico necesita un refresco manual porque el refresco automático anterior haya fallado o porque lo tengamos desactivado y hayamos añadido nuevas tablas o columnas al modelo.

error-fabric-2

Otra de las causas que podemos descubrir es que nuestras consultas se están pasando de memoria y debemos ir a una capacidad superior:

resources-exceeded-fabric

Si el comportamiento Solo Direct Lake no nos refleja ningún fallo y el informe carga correctamente, podremos estar seguros de que nuestro modelo funciona a la perfección en modo Direct Lake. Si bien, es recomendable monitorizar el uso de la capacidad para controlar que la concurrencia de usuarios a la hora de utilizar los recursos funciona correctamente y no provoca un consumo elevado de memoria lo que precisaría contratar una capacidad superior.

Recomendaciones en el Uso de Direct Lake

Se recomienda, inicialmente y sobre todo en la fase de desarrollo, usar el modo de comportamiento Solo Direct Lake para tener las limitaciones de nuestro modelo presentes y a partir de las advertencias que vayamos obteniendo adecuar nuestro modelo a las limitaciones que podamos tener según nuestra capacidad.

Como hemos comentado, uno de los principales beneficios del modo Direct Lake en los modelos semánticos es un mejor rendimiento a la hora de visualizar los datos en los informes, sin embargo, es posible experimentar tiempos de respuesta elevados al abrir un informe por primera vez. Esto es debido a que los datos no están cargados en memoria encontrándonos en una situación que conocemos como caché fría en la que todos los datos deben recuperarse por completo desde el origen OneLake.

Por el contrario, nos referimos a caché caliente cuando los datos del informe ya están cargados en memoria caché por lo que, al no tener que ser cargados nuevamente, el rendimiento de las consultas mejora significativamente. En estas ocasiones vamos a encontrar unos tiempos de respuesta más rápidos.

Para evitar experimentar esa primera situación de respuesta del informe recomendamos precalentar el modelo. Esto podría llevarse a cabo mediante una API que lanzaría una query de las columnas del modelo más usadas en los informes provocando que se cargaran en la caché. Esta llamada a la API podría estar incluida, por ejemplo, como paso final en el pipeline que cargase los datos al modelo desde un origen externo.

Además, se recomienda no hacer uso del modelo semántico que se crea por defecto al construir un Lakehouse o Warehouse debido a las limitaciones extra con las que cuenta frente a un modelo creado manualmente.

Conviértete en un experto con nuestro curso de Microsoft Fabric

El Curso Microsoft Fabric te permitirá adquirir conocimientos sobre los conceptos básicos de los data lakes, como la arquitectura, los tipos de datos, las herramientas y las técnicas de implementación. Aprenderás a utilizar las herramientas y servicios de Microsoft Fabric para implementar un data lake, como Azure Data Lake Storage, Azure Data Factory y Azure Synapse Analytics.

Conclusión

 

El modo Direct Lake es una innovadora solución que presenta Fabric para hacer frente a las desventajas de los modos Import y Direct Lake. Su uso es recomendable para grandes volúmenes de datos que sufren constantes cambios en origen, siempre y cuando cumplan con las limitaciones expuestas anteriormente según la capacidad en la que nos encontremos.

Por último, recuerda que Fabric está ofreciendo, por el momento, poder activar una capacidad de prueba gratuita FT1 (correspondiente a una F64) durante 60 días, lo que es una oportunidad inmejorable para experimentar de primera mano las capacidades de Fabric y en concreto del modo Direct Lake.

beatriz-nomdedeu

Beatriz Nomdedeu Cabrera

Data & IA Architect

[dgbm_blog_module posts_number=»3″ related_posts=»on» title_tag=»h3″ show_categories=»off» meta_date=»d/m/y» show_pagination=»off» show_more=»on» read_more_text=»Leer más» space_between=»50px» equal_height=»on» button_alignment=»right» button_at_bottom=»on» container_padding=»||||false|false» image_margin=»||25px||false|false» content_padding=»|25px||25px|false|true» title_margin=»||15px||false|false» text_margin=»||50px||false|false» button_wrapper_margin=»||||false|false» button_margin=»40px|50px|25px||false|false» author_location=»bottom» date_location=»bottom» _builder_version=»4.22.1″ _module_preset=»default» title_font=»Roboto||||||||» title_font_size=»25px» meta_text_color=»#353432″ read_more_font=»Roboto|700|||||||» read_more_text_color=»#353432″ read_more_font_size=»13px» pagination_text_color=»#353432″ pagination_font_size=»16px» author_font_size=»13px» date_font_size=»13px» border_width_bottom_image=»5px» border_color_bottom_image=»#3686C7″ global_colors_info=»{}»][/dgbm_blog_module]