Materialized views et dynamic tables : quel est le meilleur choix pour un expert data ?
actu-fr

MATERIALIZED VIEWS ET DYNAMIC TABLES : QUEL EST LE MEILLEUR CHOIX POUR UN EXPERT DATA ?

By 20 octobre 2023 No Comments

Snowflake est l’un des meilleurs data cloud. Il est notamment particulièrement adapté pour répondre aux besoins de plus en plus croissant de self service BI qui participent à la démocratisation de la donnée au sein de nos organisations. Cependant le besoin de construire des structures d’agrégation sur le data cloud reste rapidement nécessaire pour en améliorer la performance et/ou maitriser le coût de Snowflake. Et pour cela, il se distingue notamment grâce à des vues matérialisées ou des dynamic tables. Si la première est commune à l’ensemble des bases de données du marché, les dynamic tables sont une fonctionnalité propre au célèbre data cloud. Ces deux fonctionnalités sont très utiles pour accélérer le temps de réponse des requêtes, mais ont tout de même des différences importantes qui font de la pré-agrégation un “make-or-break moment”. Nous les avons testées pour vous*, et les résultats parlent d’eux-mêmes.

 

Les vues matérialisées (MV)

Définition

Les vues matérialisées, ou MV pour les intimes, sont des ensembles de données précalculées à partir d’un SELECT lors de leur création. Contrairement aux vues ordinaires, elles sont stockées, ce qui permet d’améliorer la performance pour les requêtes qui s’exécutent fréquemment.

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

Materialized view (Credit: Microsoft)

Avantages

Les MV offrent en moyenne un facteur d’accélération moyen de 9 sur les boards, les résultats variant de 1 à 80 selon le modèle de données, la complexité de l’usage et le niveau de granularité de la donnée.

Néanmoins, ce n’est pas le seul avantage des vues matérialisées. Elles sont également rafraichies automatiquement par Snowflake, qui assure une cohérence de données entre la MV et la table source.

Enfin, la redirection vers les MV est automatique. Les équipes n’ont donc pas à modifier manuellement les boards pour les utiliser.

Limites

Malgré leurs avantages, la liste des use case où les vues matérialisées peuvent se rendre utile est assez courte. En effet, dans les cas plus complexes, le partition_name peut rendre la MV plus lourde que la table qui représenterait la même requête. D’ailleurs, les MV ne prennent en charge qu’un nombre limité de commandes SQL.

De plus, la redirection automatique vers les MV n’est pas si automatique que ça : nous avons repéré plusieurs cas où la redirection n’a pas été effectuée pour des raisons inconnues.

Et au niveau des coûts, Snowflake ne donne pas de visibilité sur les coûts de refresh, qui ne sont d’ailleurs pas associés à un warehouse, ce qui les rend difficiles à anticiper.

Les dynamic tables arrivent-elles à répondre à ces limites ?

 

Les tables dynamiques (DT)

Définition

Les tables dynamiques, ou DT, sont aussi des ensembles de données précalculées. Mais issus des flux (ou stream) plutôt que d’une simple vue sur une table unique, ce qui donne beaucoup plus de possibilités que les vues matérialisées. Elles se rendent particulièrement utiles pour la transformation de données et l’accélération de requêtes sans passer par un outil externe.

Table dynamique (Credit: Snowflake)

Dynamic table (Credit: Snowflake)

Avantages

En ce qui concerne la performance, les tables dynamiques ont un facteur d’accélération moyen de 13. Tout comme pour les MV, ce facteur varie et peut aller jusqu’à 500 !

On peut ajouter à cela les possibilités offertes en matière d’usages. Les DT, à l’inverse des MV, sont multi tables et n’ont aucune limite quant aux commandes SQL et aux jointures, qui sont parfaitement supportées.

De plus, le refresh est paramétrable grâce au target_lag.

Enfin, les DT permettent un meilleur contrôle des coûts avec le choix du target_lag et surtout du warehouse de stockage.

Limites

Les dynamic tables ont des avantages, mais aussi des défauts.

Le premier concerne la redirection, qui n’est pas effectuée automatiquement par Snowflake, obligeant ainsi les utilisateurs à faire ce paramétrage eux-mêmes : c’es tà dire à modifier leur outils (dataviz etc…) pour utiliser les DT.

Le second concerne la data consistency, qui peut être mise à mal par le target_lag. En effet, selon comment est réglé ce dernier, il peut y avoir un gros décalage entre la DT et les tables de base.

 

Si on résume, on peut clairement voir que les tables dynamiques sont la meilleure option en matière de flexibilité et de contrôle des coûts.

Chez indexima,  nous sommes TOUS vraiment fans des DT ! Tellement fans que notre nouvelle solution permet d’avoir des tables dynamiques toujours à jour sans qu’on ait à lever le petit doigt ! Autopilot assure non seulement la création automatique des DT en fonction de vos usages, mais aussi la redirection et la data consistency. Vous aurez donc tous les avantages des DT, sans les inconvénients !

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