El uso conjunto de Snowflake y Power BI es cada vez más habitual. Exploramos 15 buenas prácticas para optimizar el rendimiento de Snowflake y Power BI.

Desde que Snowflake anunció su lanzamiento oficial en Azure en noviembre de 2018, se ha observado un crecimiento constante en la adopción de cuentas de Snowflake en la plataforma, lo que ha llevado a un aumento significativo en la utilización de Power BI como herramienta de visualización y análisis de datos. Esta tendencia ha generado un interés creciente entre los clientes que buscan comprender las estrategias óptimas para implementar con éxito Power BI en conjunción con Snowflake.

Snowflake continúa invirtiendo en fortalecer su colaboración con Microsoft Azure, realizando mejoras constantes en la integración con Microsoft Power BI. A lo largo de 16 años consecutivos, Power BI ha mantenido su posición de liderazgo en el Cuadrante Mágico de Gartner, siendo una herramienta esencial para los clientes de Snowflake en cuanto a análisis y visualización de datos y creación de informes.

 

Snowflake se está posicionando como la plataforma en la nube preferida de los expertos y las empresas y Power BI sigue siendo la plataforma de business intelligence líder en el mercado. Por ello, en este artículo exploraremos las mejores prácticas para optimizar el uso conjunto de estas dos plataformas.

 

Sin embargo, en primer lugar, respondemos a algunas preguntas freqüentes sobre Snowflake y su integración con Azure y Power BI.

 

FAQ: Snowflake, Azure y Power BI

¿Qué es Snowflake y para qué sirve?

Snowflake es una plataforma de almacenamiento y análisis de datos en la nube que proporciona un enfoque innovador para la gestión de datos. Es una base de datos relacional en la nube, diseñada para la escalabilidad y el rendimiento en entornos de nube como Microsoft Azure, Amazon Web Services (AWS) y Google Cloud Platform (GCP). A diferencia de las bases de datos tradicionales, Snowflake se basa en una arquitectura de múltiples clústeres y utiliza almacenamiento y computación separados, lo que permite una escalabilidad y un rendimiento independientes.

 

¿Qué es Azure Snowflake?

Azure Snowflake es la colaboración entre Snowflake y Microsoft Azure que permite a los usuarios aprovechar las capacidades de Snowflake en la plataforma de Azure. Azure Snowflake combina la escalabilidad y el rendimiento de Snowflake con la infraestructura y los servicios de nube de Azure. Esto proporciona a los clientes una solución integral para el almacenamiento y análisis de datos en la nube.

Con Azure Snowflake, los usuarios pueden aprovechar las capacidades de Snowflake para administrar y analizar sus datos empresariales clave, al tiempo que se benefician de la seguridad, la confiabilidad y la elasticidad de la nube de Azure. Esta colaboración ha sido muy exitosa y ha llevado a un aumento significativo en la adopción de Snowflake en la plataforma de Azure.

 

¿Se puede utilizar Power BI con Snowflake?

Power BI y Snowflake son dos plataformas que se complementan perfectamente, brindando a los usuarios una solución integral para el almacenamiento, análisis y visualización de datos en la nube. Snowflake, con su arquitectura de múltiples clústeres y almacenamiento y computación separados, ofrece escalabilidad y rendimiento independientes, mientras que Power BI, como herramienta líder de analítica y BI, es esencial para la visualización y el análisis de datos empresariales. 

La colaboración entre Snowflake y Microsoft Azure ha permitido a los clientes implementar Power BI junto con Snowflake en la plataforma de Azure, lo que les brinda la capacidad de visualizar y analizar sus datos de manera más eficiente. Esta tendencia ha llevado a un crecimiento constante en la adopción de cuentas de Snowflake en la plataforma, lo que demuestra el valor de utilizar Power BI y Snowflake juntos. Con estas dos plataformas trabajando en conjunto, los usuarios pueden aprovechar al máximo sus datos, obtener información valiosa y tomar decisiones informadas para impulsar el éxito empresarial.

 

Buenas prácticas para el uso de Power BI y Snowflake

A continuación se presentan algunas prácticas esenciales para establecer un flujo de trabajo exitoso al combinar Power BI y Snowflake, así como mejorar el rendimiento de Snowflake. 

 

1. Conectar Power BI y Snowflake

A la hora de realizar la conexión entre Power BI y Snowflake, es recomendable utilizar el conector nativo de Snowflake, tanto en Power BI Desktop como en Power BI Service, en lugar de configurar el controlador ODBC genérico para conectarse a Snowflake.

Snowflake y Microsoft están colaborando estrechamente para mejorar continuamente este conector, con actualizaciones recientes en julio y octubre de 2023, y con la promesa de futuras optimizaciones en camino.

 

2. Modos de almacenamiento en Power BI

Al elegir entre Import (copiar todos los datos en Power BI), DirectQuery (consultar directamente Snowflake cada vez que se ejecuta un informe) o Dual (configuración que permite que las tablas actúen tanto en caché como sin caché), es crucial considerar las necesidades de cada empresa.

Cada enfoque tiene sus ventajas y limitaciones particulares. 

  • Se recomienda el modo DirectQuery para conjuntos de datos extremadamente grandes y que requieren análisis en tiempo real.
  • La opción de modelos compuestos permite la importación de dimensiones en memoria para filtros rápidos y consultas a grandes tablas de hechos mediante DirectQuery.

 

3. Infraestructura y Conexiones

La minimización de los impactos de la latencia y la limitación del ancho de banda de la red implica que debemos considerar detenidamente la ubicación de nuestro inquilino de Power BI  o la capacidad Premium en relación con la ubicación de nuestra cuenta de Snowflake.

En el caso de utilizar Snowflake en Azure, se nos sugiere almacenar los datos de Snowflake en la misma región de Azure que la región predeterminada de nuestro inquilino de Power BI. Esta alineación de ubicaciones contribuye a una conexión más eficiente y optimiza el rendimiento general del sistema.

 

4. Concurrencia y paralelismo

La inversión estratégica en la construcción de BI y análisis mediante Snowflake no debe verse comprometida por una configuración inadecuada en Power BI. La premisa esencial radica en maximizar el rendimiento de las consultas a través de la paralelización, buscando ejecutar el mayor número posible de consultas de DAX o MDX simultáneamente. Este enfoque de paralelización disminuye el impacto de los retrasos provenientes de fuentes de datos y latencias de red en el rendimiento general de las consultas.

Aumentar el número de conexiones puede marcar una diferencia notable, especialmente en páginas de informes con numerosos Power BI visuals o cuando algunos visuals generan consultas más lentas.

Es importante destacar que la paralelización de consultas no reduce la cantidad de consultas SQL generadas por Power BI, pero sí disminuye los tiempos al ejecutar consultas de manera simultánea en lugar de forma secuencial.

 

5. Single Sign On (SSO)

La habilitación del SSO en la conexión entre Power BI y Snowflake implica que la identidad del usuario que ejecuta el informe también se emplea para enviar las consultas SQL generadas por Power BI a Snowflake. Esta práctica garantiza que los informes respeten las reglas de seguridad definidas en Snowflake y mejora la data governance y la gestión en Power BI.

 

6. SQL Personalizado o DirectQuery

A pesar de que el conector de Snowflake ofrece la posibilidad de emplear consultas SQL personalizadas como fuente para las tablas en su conjunto de datos, Snowflake aconseja cautela en esta elección.

Esta práctica, aunque viable, puede desencadenar desafíos de rendimiento durante el desarrollo en Power BI Desktop y complicar la tarea de mantenimiento de la solución, ya que introduce código SQL directamente en la definición del conjunto de datos.

No obstante, cabe destacar que la actualización de octubre de 2023 de Power BI incorpora una actualización significativa que mejora el rendimiento de "SQL Personalizado" en Snowflake. Se insta a los usuarios de Power BI Desktop a actualizar de inmediato para aprovechar este avance, que se implementa automáticamente en el servicio Power BI.

 

7. Optimizar el rendimiento del almacenamiento de datos

Snowflake recomienda asignar almacenes específicos para distintos proyectos de Power BI o modelos semánticos.

Por otro lado, a la hora de trabajar con Power BI y Snowflake de forma conjunta, existen ciertas técnicas para optimizar el rendimiento del almacenamiento. Las más destacadas son:

  • Dimensionar los almacenes de datos de forma adecuada
  • Evitar suspenderlos demasiado rápido para preservar la caché de datos
  • Reducir las colas en situaciones de alta concurrencia
  • Realizar pruebas de aceleración de consultas y asegurarse de que los resultados persistentes de las consultas (conocidos como "caché de resultados") estén habilitados y disponibles.
  • Hacer uso de la agrupación automática, de las vistas materializadas y del servicio de optimización de búsquedas.

 

8. Modelar los datos como un esquema en estrella

La manera en que modelamos nuestros datos tiene un impacto significativo en el rendimiento de Power BI. A diferencia de muchas otras herramientas de BI, Power BI está especialmente diseñado para funcionar de manera óptima con modelos dimensionales y esquemas en estrella, en lugar de preferir tablas planas y extensas. 

Asimismo, para el uso conjunto de Snowflake y Power BI, es recomendable llevar a cabo todo el trabajo de modelado de datos en Snowflake antes de realizar cualquier tarea en Power BI. Este enfoque asegura una base sólida y optimizada para el análisis posterior en Power BI, maximizando así la eficiencia del proceso.

Por otro lado, Snowflake aconseja evitar el uso de funciones de Power BI, como el Editor de Power Query o la creación de columnas calculadas, para abordar deficiencias en la modelación de datos

  • Prioriza la creación de un modelo de datos sólido en Snowflake antes de realizar cualquier tarea en Power BI.
  • Evita depender en exceso de las funciones específicas de Power BI, como el Editor de Power Query o la creación de columnas calculadas, para solucionar deficiencias en el modelado de datos.
  • Realiza todas las tareas de modelado de datos en Snowflake, asegurando así una base sólida y optimizada para el análisis posterior en Power BI.

 

9. Uso adecuado de las agregaciones y modelos compuestos

Snowflake se puede beneficiar de las funcionalidades de agregaciones y modelos compuestos de Power BI.

La función de agregaciones en Power BI permite incorporar tablas con datos pre-agregados al conjunto de datos, mejorando así el rendimiento de las consultas. Estas agregaciones pueden almacenarse en modo Importar o DirectQuery. Además, la implementación de tablas de agregación ocultas en los modelos semánticos de Power BI permite optimizar las consultas al dirigirlas a la tabla adecuada según sea necesario.

En entornos DirectQuery, estas tablas de agregación pueden resolver problemas similares a las vistas materializadas en Snowflake, y se sugiere evaluar ambas opciones para determinar cuál ofrece mayores ventajas de rendimiento.

Por último, es importante recordar que las agregaciones automáticas de Power BI también son compatibles con Snowflake, excepto cuando SSO está activado.

 

10. Reducir el número de elementos visuales en una página

Cuando se trabaja con Snowflake en Power BI, es importante limitar el número de elementos visuales en una página

Es fundamental considerar factores como la carga de trabajo específica, el volumen de datos y la metodología de modelado de datos e informes. Además, al trabajar con medidas calculadas, es importante evaluar estrategias alternativas más eficaces, como el uso de expresiones de Análisis de Datos (DAX). Realizar pruebas exhaustivas en la carga de trabajo particular de cada cliente es esencial para determinar la experiencia más beneficiosa para sus comunidades de usuarios. 

 

11. Limitar el numero de datos

Seleccionar con precisión las tablas, filas y columnas es esencial  para cumplir con los requisitos empresariales. En este contexto, a la hora de trabajar con Power BI, la premisa de "más datos no siempre es la solución" es fundamental.

En este sentido, se recomienda eliminar las columnas que no resulten absolutamente necesarias, ya que no solo consumen memoria, sino que también contribuyen a la complejidad y, potencialmente, aumentan el volumen de datos, afectando negativamente al rendimiento en última instancia.

 

12. Reducir las consultas

A la hora de trabajar con Power BI es importante aprovechar las herramientas de optimización de consultas para limitar la generación excesiva de queries. Esta estrategia resulta especialmente útil cuando incorporamos filtros en la visualización. 

Un exceso de consultas puede afectar negativamente al rendimiento de Power BI.

 

13. Establecer la propiedad Assume Referential Integrity en las relaciones

Aunque la configuración predeterminada en Power BI establece una unión externa izquierda en las relaciones, activar la opción "Asumir integridad referencial" posibilita forzar una unión interna. Este ajuste puede resultar en consultas más ágiles. Al confiar en la integridad de los datos en las tablas de Snowflake, habilitar esta función permite a Power BI generar consultas SQL más eficientes para la recuperación de datos.

 

14. Emplear filtros bidireccionales en las relaciones sólo cuando sea necesario

Generar una gran cantidad de filtros bidireccionales se traduce en una mayor generación de consultas SQL, lo que potencialmente complica el modelo. En el ámbito del modelado de Power BI, es común que desarrolladores menos experimentados empleen filtros bidireccionales sin comprender completamente su impacto. Por lo general, las relaciones entre tablas se establecen como uno a muchos, especialmente al considerar dimensiones y hechos.

 

 

15. Máximo recuento de conjuntos de filas

En entornos Power BI Premium, ajustar la configuración de carga de trabajo es crucial para manejar conjuntos de datos eficientemente. Se destaca el parámetro "Recuento máximo de conjuntos de filas intermedios", que controla el número máximo de filas que puede devolver una consulta SQL en modo DirectQuery.

Este límite puede surgir al modelar relaciones complejas o al escribir expresiones DAX elaboradas. En lugar de simplemente aumentar este valor, lo cual podría aplazar problemas o generar otros de rendimiento, se sugiere replantear la estructura de datos o reescribir las expresiones DAX para abordar la situación.

 

Publicado por Núria Emilio