Blog de Bismart: Últimes Notícies en Dades, IA i Business Intelligence

Power BI i Snowflake: Bones pràctiques i FAQs

Written by Núria Emilio | 16/01/2024 10:15:44

Des que Snowflake va anunciar el seu llançament oficial en Azure al novembre de 2018, s'ha observat un creixement constant en l'adopció de comptes de Snowflake en la plataforma, la qual cosa ha portat a un augment significatiu en la utilització de Power BI com a eina de visualització i anàlisi de dades. Aquesta tendència ha generat un interès creixent entre els clients que busquen comprendre les estratègies òptimes per a implementar amb èxit Power BI en conjunció amb Snowflake.

Snowflake continua invertint a enfortir la seva col·laboració amb Microsoft Azure, realitzant millores constants en la integració amb Microsoft Power BI. Al llarg de 16 anys consecutius, Power BI ha mantingut la seva posició de lideratge en el Quadrant Màgic de Gartner, sent una eina essencial per als clients de Snowflake quant a anàlisis i visualització de dades i creació d'informes.

 

Snowflake s'està posicionant com la plataforma en el núvol preferit dels experts i les empreses i Power BI continua sent la plataforma de business intelligence líder en el mercat. Per això, en aquest article explorarem les millors pràctiques per a optimitzar l'ús conjunt d'aquestes dues plataformes.

 

No obstant això, en primer lloc, responem a algunes preguntes freqüentes sobre Snowflake i la seva integració amb Azure i Power BI.

 

FAQ: Snowflake, Azure i Power BI

Què és Snowflake i per què serveix?

Snowflake és una plataforma d'emmagatzematge i anàlisi de dades en el núvol que proporciona un enfocament innovador per a la gestió de dades. És una base de dades relacional en el núvol, dissenyada per a l'escalabilitat i el rendiment en entorns de núvol com Microsoft AzureAmazon Web Services (AWS) i Google Cloud Platform (GCP). A diferència de les bases de dades tradicionals, Snowflake es basa en una arquitectura de múltiples clústers i utilitza emmagatzematge i computació separats, la qual cosa permet una escalabilitat i un rendiment independents.

 

Què és Azure Snowflake?

Azure Snowflake és la col·laboració entre Snowflake i Microsoft Azure que permet als usuaris aprofitar les capacitats de Snowflake en la plataforma d'AzureAzure Snowflake combina l'escalabilitat i el rendiment de Snowflake amb la infraestructura i els serveis de núvol d'Azure. Això proporciona als clients una solució integral per a l'emmagatzematge i anàlisi de dades en el núvol.

Amb Azure Snowflake, els usuaris poden aprofitar les capacitats de Snowflake per a administrar i analitzar les seves dades empresarials clau, al mateix temps que es beneficien de la seguretat, la confiabilitat i l'elasticitat del núvol d'Azure. Aquesta col·laboració ha estat molt reeixida i ha portat a un augment significatiu en l'adopció de Snowflake en la plataforma de Azure.

 

Es pot utilitzar Power BI amb Snowflake?

Power BI i Snowflake són dues plataformes que es complementen perfectament, brindant als usuaris una solució integral per a l'emmagatzematge, anàlisi i visualització de dades en el núvolSnowflake, amb la seva arquitectura de múltiples clústers i emmagatzematge i computació separats, ofereix escalabilitat i rendiment independents, mentre que Power BI, com a eina líder d'analítica i BI, és essencial per a la visualització i l'anàlisi de dades empresarials. 

La col·laboració entre Snowflake i Microsoft Azure ha permès als clients implementar Power BI juntament amb Snowflake en la plataforma de Azure, la qual cosa els brinda la capacitat de visualitzar i analitzar les seves dades de manera més eficient. Aquesta tendència ha portat a un creixement constant en l'adopció de comptes de Snowflake en la plataforma, la qual cosa demostra el valor d'utilitzar Power BI i Snowflake junts. Amb aquestes dues plataformes treballant en conjunt, els usuaris poden aprofitar al màxim les seves dades, obtenir informació valuosa i prendre decisions informades per a impulsar l'èxit empresarial.

 

Bones pràctiques per a Power BI i Snowflake

A continuació es presenten algunes pràctiques essencials per a establir un flux de treball reeixit en combinar Power BI i Snowflake, així com millorar el rendiment de Snowflake.

 

1. Com connectar Power BI i Snowflake

A l'hora de realitzar la connexió entre Power BI i Snowflake, és recomanable utilitzar el connector natiu de Snowflake, tant en Power BI Desktop com en Power BI Service, en lloc de configurar el controlador ODBC genèric per a connectar-se a Snowflake.

Snowflake i Microsoft estan col·laborant estretament per a millorar contínuament aquest connector, amb actualitzacions recents al juliol i octubre de 2023, i amb la promesa de futures optimitzacions en camí.

2. Modes d'emmagatzematge en Power BI

En escollir entre Import (copiar totes les dades en Power BI), DirectQuery (consultar directament Snowflake cada vegada que s'executa un informe) o Dual (configuració que permet que les taules actuïn tant en caixet com sense caixet), és crucial considerar les necessitats de cada empresa. Cada enfocament té els seus avantatges i limitacions particulars.

  • Es recomana el mode DirectQuery per a conjunts de dades extremadament grans i que requereixen anàlisis en temps real.
  • L'opció de models composts permet la importació de dimensions en memòria per a filtres ràpids i consultes a grans taules de fets mitjançant DirectQuery.

 

3. Infraestructura i connexions

La minimització dels impactes de la latència i la limitació de l'amplada de banda de la xarxa implica que hem de considerar detingudament la ubicació del nostre inquilí de Power BI  o la capacitat Premium en relació amb la ubicació del nostre compte de Snowflake.

En el cas d'utilitzar Snowflake en Azure, se'ns suggereix emmagatzemar les dades de Snowflake en la mateixa regió de Azure que la regió predeterminada del nostre inquilí de Power BI. Aquesta alineació d'ubicacions contribueix a una connexió més eficient i optimitza el rendiment general del sistema.

 

4. Concurrència i paral·lelisme

La inversió estratègica en la construcció de BI i anàlisi mitjançant Snowflake no ha de veure's compromesa per una configuració inadequada en Power BI. La premissa essencial radica a maximitzar el rendiment de les consultes a través de la paral·lelització, buscant executar el major nombre possible de consultes de DAX o MDX simultàniament. Aquest enfocament de paral·lelització disminueix l'impacte dels retards provinents de fonts de dades i latències de xarxa en el rendiment general de les consultes.

Augmentar el nombre de connexions pot marcar una diferència notable, especialment en pàgines d'informes amb nombrosos Power BI visuals o quan alguns visuals generen consultes més lentes.

És important destacar que la paral·lelització de consultes no redueix la quantitat de consultes SQL generades per Power BI, però sí que disminueix els temps en executar consultes de manera simultània en lloc de manera seqüencial.

 

5. Single Sign On (SSO)

L'habilitació del SSO en la connexió entre Power BI i Snowflake implica que la identitat de l'usuari que executa l'informe també s'empra per a enviar les consultes SQL generades per Power BI a Snowflake. Aquesta pràctica garanteix que els informes respectin les regles de seguretat definides en Snowflake i millora la data governance i la gestió en Power BI.

 

 

6. SQL Personalitzat DirectQuery

Tot i que el connector de Snowflake ofereix la possibilitat d'emprar consultes SQL personalitzades com a font per a les taules en el seu conjunt de dades, Snowflake aconsella cautela en aquesta elecció.

Aquesta pràctica, encara que viable, pot desencadenar desafiaments de rendiment durant el desenvolupament en Power BI Desktop i complicar la tasca de manteniment de la solució, ja que introdueix codi SQL directament en la definició del conjunt de dades.

No obstant això, cal destacar que l'actualització d'octubre de 2023 de Power BI incorpora una actualització significativa que millora el rendiment de "SQL Personalitzat" en Snowflake. S'insta els usuaris de Power BI Desktop a actualitzar immediatament per a aprofitar aquest avanç, que s'implementa automàticament en el servei Power BI.

 

7. Optimitzar el rendiment de l'emmagatzematge de dades

Snowflake recomana assignar magatzems específics per a diferents projectes de Power BI o models semàntics.

D'altra banda, a l'hora de treballar amb Power BI i Snowflake de manera conjunta, existeixen unes certes tècniques per a optimitzar el rendiment de l'emmagatzematge. Les més destacades són:

  • Dimensionar els magatzems de dades de manera adequada
  • Evitar suspendre'ls massa ràpid per a preservar la caixet de dades
  • Reduir les cues en situacions d'alta concurrència
  • Realitzar proves d'acceleració de consultes i assegurar-se que els resultats persistents de les consultes (coneguts com a "caixet de resultats") estiguin habilitats i disponibles.
  • Fer ús de l'agrupació automàtica, de les vistes materialitzades i del servei d'optimització de cerques.

8. Modelar les dades en un esquema en estrella

La manera en què modelem les nostres dades té un impacte significatiu en el rendiment de Power BI. A diferència de moltes altres eines de BIPower BI està especialment dissenyat per a funcionar de manera òptima amb models dimensionals i esquemes en estrella, en lloc de preferir taules planes i extenses. 

Així mateix, per a l'ús conjunt de Snowflake i Power BI, és recomanable dur a terme tot el treball de modelatge de dades en Snowflake abans de fer qualsevol tasca en Power BI. Aquest enfocament assegura una base sòlida i optimitzada per a l'anàlisi posterior en Power BI, maximitzant així l'eficiència del procés.

D'altra banda, Snowflake aconsella evitar l'ús de funcions de Power BI, com l'Editor de Power Query o la creació de columnes calculades, per a abordar deficiències en el modelatge de dades.

  • Prioritza la creació d'un model de dades sòlid en Snowflake abans de fer qualsevol tasca en Power BI.
  • Evita dependre en excés de les funcions específiques de Power BI, com l'Editor de Power Query o la creació de columnes calculades, per a solucionar deficiències en el modelatge de dades.
  • Realitza totes les tasques de modelatge de dades en Snowflake, assegurant així una base sòlida i optimitzada per a l'anàlisi posterior en Power BI.

9. Ús adequat de les agregacions i models compostos

Snowflake es pot beneficiar de les funcionalitats d'agregacions i models composts de Power BI.

La funció d'agregacions en Power BI permet incorporar taules amb dades pre-agregats al conjunt de dades, millorant així el rendiment de les consultes. Aquestes agregacions poden emmagatzemar-se en mode Importar o DirectQuery. A més, la implementació de taules d'agregació ocultes en els models semàntics de Power BI permet optimitzar les consultes en dirigir-les a la taula adequada segons sigui necessari.

En entorns DirectQuery, aquestes taules d'agregació poden resoldre problemes similars a les vistes materialitzades en Snowflake, i se suggereix avaluar totes dues opcions per a determinar quin ofereix majors avantatges de rendiment.

Finalment, és important recordar que les agregacions automàtiques de Power BI també són compatibles amb Snowflake, excepte quan SSO està activat.

 

10. Reduir el nombre d'elements visuals en una pàgina

Quan es treballa amb Snowflake en Power BI, és important limitar el nombre d'elements visuals en una pàgina

És fonamental considerar factors com la càrrega de treball específica, el volum de dades i la metodologia de modelatge de dades i informes. A més, en treballar amb mesures calculades, és important avaluar estratègies alternatives més eficaces, com l'ús d'expressions d'Anàlisis de Dades (DAX). Realitzar proves exhaustives en la càrrega de treball particular de cada client és essencial per a determinar l'experiència més beneficiosa per a les seves comunitats d'usuaris.

 

11. Limitar el nombre de dades

Seleccionar amb precisió les taules, files i columnes és essencial  per a complir amb els requisits empresarials. En aquest context, a l'hora de treballar amb Power BI, la premissa de "més dades no sempre és la solució" és fonamental.

En aquest sentit, es recomana eliminar les columnes que no resultin absolutament necessàries, ja que no sols consumeixen memòria, sinó que també contribueixen a la complexitat i, potencialment, augmenten el volum de dades, afectant negativament el rendiment en última instància.

 

12. Reduir les consultes

A l'hora de treballar amb Power BI és important aprofitar les eines d'optimització de consultes per a limitar la generació excessiva de queries. Aquesta estratègia resulta especialment útil quan incorporem filtres en la visualització. 

Un excés de consultes pot afectar negativament el rendiment de Power BI.

 

13. Establir la propietat Assume Referential Integrity en les relacions

Encara que la configuració predeterminada en Power BI estableix una unió externa esquerra en les relacions, activar l'opció "Assumir integritat referencial" possibilita forçar una unió interna. Aquest ajust pot resultar en consultes més àgils. En confiar en la integritat de les dades en les taules de Snowflake, habilitar aquesta funció permet a Power BI generar consultes SQL més eficients per a la recuperació de dades.

 

14. Emprar filtres bidireccionals en les relacions només quan sigui necessari

Generar una gran quantitat de filtres bidireccionals es tradueix en una major generació de consultes SQL, la qual cosa potencialment complica el model. En l'àmbit del modelatge de Power BI, és comú que desenvolupadors menys experimentats emprin filtres bidireccionals sense comprendre completament el seu impacte. En general, les relacions entre taules s'estableixen com un a molts, especialment en considerar dimensions i fets.
 

 

15. Màxim recompte de conjunts de files

En entorns Power BI Premium, ajustar la configuració de càrrega de treball és crucial per a manejar conjunts de dades eficientment. Es destaca el paràmetre "Recompte màxim de conjunts de files intermedis", que controla el nombre màxim de files que pot retornar una consulta SQL en mode DirectQuery.

Aquest límit pot sorgir en modelar relacions complexes o en escriure expressions DAX elaborades. En lloc de simplement augmentar aquest valor, la qual cosa podria ajornar problemes o generar uns altres de rendiment, se suggereix replantejar l'estructura de dades o reescriure les expressions DAX per a abordar la situació.