Materialized views et dynamic tables : un bon choix pour tirer profit de sa BI ?
actu-fr

MATERIALIZED VIEWS ET DYNAMIC TABLES : UN BON CHOIX POUR TIRER PROFIT DE SA BI ?

By 11 octobre 2023 No Comments

Dans un contexte où les entreprises recherchent des solutions data pouvant s’adapter à leur croissance et à leurs contraintes, Snowflake se distingue par sa flexibilité et sa simplicité. En effet, ce cloud data warehouse libère les équipes de l’installation, de la configuration ou de la gestion de hardware ou de logiciel. En plus de ces avantages non négligeables, la solution offre de nombreuses features permettant d’optimiser la performance et le coût de la data platform.

Pour ce qui est de la pré-agrégation, Snowflake offre les vues matérialisées ou les tables dynamiques. Si les vues matérialisées sont disponibles sur d’autres cloud data warehouses, les tables dynamiques sont une fonctionnalité propre à la solution.

Pourquoi deux options différentes pour pré-agréger la donnée ? Quelles sont les caractéristiques et des avantages de chacune d’elles ? Les Materialized Views (MV) et les Dynamic Tables (DT)ont été l’objet d’une étude* de nos experts pendant plusieurs mois qui les ont torturées sur 5 axes :

  • La performance d’affichage des boards
  • La consistance de données avec les données source
  • La redirection automatique
  • Le contrôle des coûts
  • Les limites fonctionnelles

Examinons les résultats.

Blog post MV vs DT pour les non-tech 12.10

Les vues matérialisées (MV)

Définition

Une MV est tout simplement un ensemble de données d’une table précalculée résultant d’une requête SQL dont le résultat est physiquement stocké, contrairement à une vue “classique” qui se calcule à la volée.

Exemple de vue matérialisée (Credit: Microsoft)

Exemple de vue matérialisée (Credit: Microsoft)

Avantages 

Examinons la performance d’affichage en premier point car c’est d’abord de la performance que nous attendons lors d’un usage de pré-agrégation des MVs. Et c’est gagné sur les benchmarks* que nous avons mené, nous avons un facteur d’accélération moyen de 9 par rapport au temps moyen. Si l’affichage des boards est effectivement plus rapide, le facteur d’accélération varie de 1 à 80 et ceci dépend du modèle de données, de la complexité d’usage et du niveau de granularité. 

Le principal avantage des vues matérialisées de Snowflake est sa capacité à maintenir une consistance de données entre les structures d’agrégation des MVs et la donnée source. Et cela de façon totalement transparente pour l’utilisateur.   

Théoriquement Snowflake assure la redirection automatique vers les vues matérialisées, ce qui simplifie le travail des équipes car il n’y a pas de travail de modification des boards.  

Limites 

Les materialized views montrent rapidement leurs limites lorsque les usages se complexifient. Par exemple, les jointures ne sont pas supportées aujourd’hui. Cela limite les cas d’usages sur lesquelles elles peuvent être pertinentes.  

D’autre part la redirection vers les MVs n’est pas aussi automatique ; en effet nous avons constaté de nombreux cas ou le moteur n’effectue pas l’action et ceci, sans raison apparente.  

Enfin, le coût de MVs est imprévisible, non mutualisable et indépendant des warehouse, ce qui complique le controle du budget des MVs sur Snowflake. 

Les dynamic tables sont-elles la solution aux limites des vues matérialisées ? 

Les tables dynamiques (DT) 

Définition 

La table dynamique est le résultat, non pas d’une table mais d’un flux, d’un stream incluant potentiellement des transformations. Ce qui permet d’offrir, on va le voir, tout un monde de possible!  

Table dynamique (Credit: Snowflake)

Table dynamique (Credit: Snowflake)

Avantages

D’un point de vue performance, les DT apportent un gain de performance intéressant par rapport au MVs avec un facteur d’accélération moyen de 13 par rapport à nos performances de référence. On constate autant de différences liées aux usages, à la complexité et à la granularité qui permet un facteur d’accélération jusqu’à 500 dans certains usages.

Les tables dynamiques, contrairement aux vues matérialisées, n’ont aucune limitation fonctionnelle du SQL et supportent donc notamment les jointures, très populaires dans la BI et le data viz.

D’autre part la fréquence de rafraichissement des données est paramétrable lors de la création des DT et assurée automatiquement par Snowflake.

Enfin les DTs offrent un meilleur contrôle des coûts en permettant à l’utilisateur de choisir lui-même sa fréquence de mise à jour et le warehouse pour les stocker.

Limites

Malgré tous leurs avantages indéniables, les tables dynamiques ne sont pas parfaites. En effet, contrairement aux vues matérialisées, Snowflake ne propose pas de redirection automatique vers les tables dynamiques quand celles-ci permettent de répondre plus rapidement à une requête.

De plus, dans la mesure où la fréquence de mise à jour des tables dynamiques est fixée, l’utilisateur n’est pas assuré d’avoir toujours les dernières mises à jour de données en temps réel.

 

En résumé, les tables dynamiques offrent une vraie flexibilité pour un usage BI et data viz et un contrôle supérieur aux vues matérialisées, autant au niveau de leur utilisation que de leur coût. En tout cas, notre équipe d’expert est clairement fan.

Tellement fan que notre nouvelle solution Autopilot permet d’avoir des tables dynamiques toujours à jour sans effort. Autopilot permet ainsi la création automatique des DT à partir des usages issus de l’utilisation des boards et complète en assurant la consistance des données et la redirection automatique. Performance, maitrise des coûts et Bi self-service automatique sur Snowflake !!

Pour en savoir plus et tester gratuitement Autopilot en preview , cliquez ici !

 

* Le contexte des benchmarks:

12 dashboards de vente, marketing, rh ou finance dans les secteurs d’activité retail, énergie, industrie et finance par run quotidien.

1245 paterns de requêtes sql différents

Outils de BI: PowerBI, Tableau, Microstrategy, BO, Cognos

Taille de warehouse Snowflake: XS