Accéder au contenu principal

Explication des tableaux dynamiques Snowflake : Pipelines de données modernes

Découvrez comment les tableaux dynamiques Snowflake peuvent simplifier vos processus ETL complexes et urgents en permettant à Snowflake de gérer les actualisations.
Actualisé 8 août 2025  · 15 min de lecture

Les tableaux dynamiques de Snowflake constituent un outil puissant dans la boîte à outils d'un ingénieur de données. Il s'agit essentiellement de processus de rafraîchissement automatisés qui utilisent des requêtes de transformation sur des tables de base pour générer de nouveaux tableaux. 

Les tableaux dynamiques simplifient les pipelines d'orchestration des données lorsque la fraîcheur des données est importante et que des transformations SQL complexes sont nécessaires. Ils utilisent un timing basé sur le décalage pour actualiser les tableaux en fonction des modifications apportées aux tableaux de base.

De récentes améliorations ont renforcé leurs capacités, permettant une propagation des données en temps quasi réel et une intégration plus poussée au sein de l'écosystème Snowflake (rafraîchissez vos connaissances avec ce cours d'introduction). cours d'introduction).

Ce guide explique le fonctionnement des tableaux dynamiques, comment les mettre en œuvre efficacement, et comment surveiller et optimiser leurs performances. À la fin, vous serez en mesure d'évaluer et de tester ces implémentations afin de déterminer si elles répondent aux besoins de votre organisation en matière de données.

Que sont les tableaux dynamiques Snowflake ?

Les tableaux dynamiques sont une classe entièrement gérée d'objets de base de données Snowflake qui permettent de rationaliser et d'automatiser les pipelines de données. 

Au lieu d'utiliser des outils d'orchestration externes ou d'essayer de synchroniser les actualisations manuelles avec les mises à jour des tableaux sources, les tableaux dynamiques se mettent automatiquement à jour en fonction des modifications apportées aux données sources et des objectifs de fraîcheur définis. Cela permet aux professionnels des données de créer des transformations de données flexibles et de les mettre à jour selon les besoins lorsque les données changent.

Contrairement aux vues qui nécessitent que l'utilisateur calcule le tableau lors de la requête, les tableaux dynamiques restent calculés, ce qui améliore la vitesse des requêtes. De même, alors que les vues matérialisées offrent le même type de données mises en cache, les tableaux dynamiques peuvent utiliser des éléments tels que les jointures, les unions et les vues imbriquées, ce qui n'est pas possible avec les vues matérialisées.

Initialement introduit pour combler le fossé entre les pipelines traditionnels de l'ELT et les programmes de formation en ligne, pipelines ELT et les architectures événementielles, les tableaux dynamiques représentent le développement continu de Snowflake en matière de traitement déclaratif et sensible aux dépendances des données.

Il vous suffit d'écrire la requête SQL SELECT qui définit votre tableau dynamique avec une fréquence d'actualisation définie ( TARGET_LAG ) qui détermine la fréquence d'actualisation. 

Par exemple, une « TARGET_LAG » de cinq minutes signifie que le tableau dynamique n'est pas en retard de plus de cinq minutes par rapport au tableau de base. Le plus intéressant est que tout cela est géré par le moteur de rafraîchissement interne de Snowflake, ce qui nous évite de concevoir des pipelines complexes.

Comprendre les tableaux dynamiques Snowflake

Afin de mettre en œuvre efficacement les tableaux dynamiques, nous allons examiner certaines des implémentations techniques sous-jacentes de Snowflake afin de comprendre leurs forces et leurs faiblesses.

Architecture fondamentale et mécanismes opérationnels

Tout comme les vues matérialisées, les tableaux dynamiques offrent un comportement d'actualisation des données persistant et automatisé. Cependant, contrairement aux vues matérialisées, elles permettent des transformations plus complexes en autorisant des opérations telles que les unions et les jointures. 

Cela permet de créer plusieurs tableaux dynamiques plus petits qui peuvent ensuite alimenter des tableaux dynamiques plus grands.

L'une des innovations majeures de Snowflake réside dans l'utilisation d'un graphe de dépendances automatisé. Vous pouvez créer un tableau agrégé dynamique qui se met à jour lorsque les tableaux de base sont mis à jour, ou vous pouvez créer des couches de tableaux dynamiques à l'aide de graphes acycliques dirigés. Cela fonctionne en mettant à jour un tableau de préparation de base, qui déclenche la mise à jour d'un tableau dynamique en aval. 

Une fois ces tableaux dynamiques intermédiaires mis à jour, le tableau dynamique agrégé final est mis à jour. Tout cela fonctionne grâce aux workers de rafraîchissement de Snowflake, qui recherchent les mises à jour des données et s'assurent que les tableaux sources sont actualisés avec les dernières données disponibles.

image décrivant deux flux de travail, l'un montrant un tableau dynamique agrégé utilisant uniquement des tableaux de base et l'autre utilisant des tableaux dynamiques intermédiaires pour créer un tableau dynamique plus grand

Extrait de la documentation Snowflake sur la création de tableaux dynamiques

Dynamique du mécanisme de rafraîchissement

Les principaux mécanismes que vous pouvez contrôler lors de la création de tableaux dynamiques sont les modes d'actualisation, le décalage et les paramètres d'entrepôt. Les tableaux dynamiques prennent en charge deux modes d'actualisation :

  • Mode incrémental : Snowflake analyse les modifications apportées depuis le dernier rafraîchissement et les fusionne dans le tableau.
  • Mode complet : Recalcule l'intégralité du tableau à chaque actualisation et remplace complètement le tableau.

Vous pouvez définir manuellement le mode de rafraîchissement ou utiliser l'REFRESH_MODE = AUTO lors de la création initiale du tableau dynamique. Veuillez noter que lorsque vous utilisez AUTO, le mode de rafraîchissement est défini lors de la création et n'est pas mis à jour. Si Snowflake détermine que l'actualisation incrémentielle est inefficace, il choisira alors de procéder à une actualisation complète.

Le paramètre « WAREHOUSE » (Emplacement du magasin de ressources) détermine l'entrepôt qui sera utilisé pour les ressources informatiques. Veuillez vous assurer de sélectionner celui qui correspond le mieux à vos besoins en matière de calcul et de stockage de données.

Le concept le plus important est peut-être celui de décalage. La méthode la plus courante pour déterminer le décalage consiste à utiliser l'TARGET_LAG, qui définit le délai acceptable entre les données source et les tableaux dynamiques. TARGET_LAG = DOWNSTREAMSi vous travaillez avec un pipeline plus complexe où d'autres tableaux dynamiques dépendent d'autres tableaux dynamiques, vous pouvez choisir de définir l'option « Ignorer les tableaux dynamiques » dans le menu contextuel de la table. 

En définissant l'TARGET_LAG, sur DOWNSTREAM, il examine les tableaux dynamiques en aval qui dépendent du tableau dynamique actuel pour la synchronisation.

Tableau récapitulatif des différences entre les tables dynamiques et les tables traditionnelles, les vues et les vues matérialisées

Concept source

Fonctionnalité héritée dans les tableaux dynamiques

Comment les tableaux dynamiques améliorent cela

Tableaux traditionnels

Stockage persistant ; réutilisabilité en aval

Mise à jour et maintenance automatiques ; aucun chargement manuel de données ni déclencheur requis.

Vues

Logique SQL déclarative ; aucun code procédural n'est nécessaire.

Sortie matérialisée pour de meilleures performances ; fraîcheur gérée via TARGET_LAG

Vues matérialisées

Actualisation automatique ; gestion de l'état

Prend en charge les transformations complexes ; suivi intégré des dépendances à toutes les étapes

Gestion des dépendances

Chaque tableau dynamique contribue à un DAG, ce qui permet à Snowflake de coordonner les actualisations sur plusieurs tableaux. Cela garantit l'exactitude et l'efficacité, en particulier dans les pipelines à plusieurs étapes.

Snowsight fournit une interface visuelle permettant d'explorer ce DAG, en affichant les dépendances, les temps de rafraîchissement et les mesures de latence. Il s'agit d'un avantage majeur pour le débogage et l'analyse d'impact. Veuillez lire cet article sur les les pipelines de données Snowflake pour plus d'informations sur le fonctionnement de l'architecture Snowflake.

Principales caractéristiques et avantages comparatifs

Explorons maintenant quelques-unes des autres fonctionnalités clés des tableaux dynamiques et leurs avantages. 

Avantages comparatifs par rapport aux architectures traditionnelles

Les tableaux dynamiques éliminent le besoin d'orchestration externe (par exemple, Airflow ou dbt Cloud) en gérant le suivi des dépendances et la logique d'actualisation de manière native dans Snowflake.

Cela présente plusieurs avantages, notamment :

  • Orchestration simplifiée: Aucune tâche cron ni logique de rafraîchissement manuel n'est nécessaire.
  • Prise en charge intégrée de la capture des données modifiées (CDC): Le traitement incrémentiel est pris en charge de manière native.
  • de surveillance unifiée: Le statut de rafraîchissement, le décalage et la lignée sont visibles dans Snowsight.
  • Prise en charge de la réécriture des requêtes: Snowflake peut optimiser les requêtes à l'aide de la lignée de tableaux dynamiques.

Toutes ces caractéristiques permettent aux tableaux dynamiques d'exceller dans les situations où des données actualisées et en temps quasi réel sont nécessaires. Pensez à des éléments tels que les tableaux de bord en temps réel et les flux de travail CDC. De plus, vous pouvez enchaîner plusieurs tableaux dynamiques dans un ordre précis pour effectuer des transformations en plusieurs étapes.

Traitement des données en temps réel et capture des données modifiées (CDC)

Au lieu de définir des délais de rafraîchissement manuels à l'aide de tâches CRON, les tableaux dynamiques utilisent l'TARGET_LAG pour vérifier les tableaux sources. Pour les tableaux de données en temps réel, cela signifie que dès que le tableau dynamique n'est plus synchronisé en raison du décalage désigné, il se met automatiquement à jour.

Bien qu'ils soient très similaires, les tableaux dynamiques sont souvent utilisés comme alternative aux flux et aux vues matérialisées. Les vues matérialisées sont idéales si vous avez besoin que les données soient toujours à jour et que vous utilisez une logique simple sur un tableau de base unique. 

Les flux sont parfaits pour implémenter manuellement la CDC et pour comprendre comment les données évoluent au fil du temps. Les tableaux dynamiques sont parfaits lorsque vous souhaitez mettre en œuvre de manière simple des mises à jour régulières de requêtes de transformation de données complexes.

Pour plus d'informations sur la manière de structurer les données dans Snowflake, veuillez consulter ce cours sur la modélisation des données dans Snowflake est une excellente ressource.

Mise en œuvre des tableaux dynamiques Snowflake

Voyons comment configurer des tableaux dynamiques à l'aide de modèles de syntaxe et des meilleures pratiques. Il est relativement facile de les mettre en place, mais une compréhension approfondie des paramètres vous permettra de tirer le meilleur parti de vos tableaux dynamiques.

Cadre de mise en œuvre et syntaxe

Voici un exemple de code illustrant comment créer un tableau dynamique à partir de notre tableau d'raw_sales. Veuillez examiner cela et nous vous expliquerons tout en détail par la suite.

# Your Dynamic Table parameters
CREATE OR REPLACE Dynamic Table sales_agg
  TARGET_LAG = '5 minutes'
  WAREHOUSE = 'prod_wh'
  REFRESH_MODE = auto
  INITIALIZE = on_create
  AS

# Your SQL query for the table itself
SELECT
  store_id,
  SUM(amount) AS total_sales,
  COUNT(*) AS sale_count
FROM raw_sales
GROUP BY store_id;

La seconde moitié devrait être assez simple ; il s'agit de notre déclaration d'SELECT, qui définit les données du tableau. La première moitié avant la déclaration d'SELECT s correspond à l'ensemble de nos paramètres de création : 

  • TARGET_LAG: Spécifie les exigences en matière de fraîcheur comme expliqué ci-dessus. Vous pouvez définir ici une période ou saisir « EN AVAL » si un autre tableau dynamique utilise ces données.
  • WAREHOUSE: Détermine les ressources informatiques. Veuillez vous assurer de sélectionner le bon entrepôt Snowflake afin de disposer de ressources suffisantes pour générer le tableau de manière rentable.
  • REFRESH_MODE: Peut être explicitement défini sur INCREMENTAL ou FULL. J'ai sélectionné « Déterminer la méthode optimale » ( AUTO ) pour permettre à Snowflake de déterminer la méthode optimale.
  • INITIALIZE: Détermine quand le tableau est initialisé. L'ON_CREATE, le tableau est initialisé immédiatement. En le définissant sur « ON_SCHEDULE », le tableau sera initialisé une fois la première période de décalage atteinte.

Veuillez noter que Snowflake nécessite le suivi des modifications pour prendre correctement en charge les actualisations incrémentielles, ce qui signifie qu'elles sont automatiquement activées pour les tableaux dynamiques incrémentiels. 

Si vous souhaitez vérifier manuellement, vous pouvez utiliser la commande ALTER TABLE. L'activation du suivi des modifications permet également de remonter dans le temps si nous avons besoin de restaurer des versions antérieures des tableaux.

CLONE et ICEBERG

Il existe deux nuances à l'utilisation des tableaux dynamiques : leur clonage et leur connexion aux tableaux Snowflake Iceberg, qui sont construits sur des tables externes. tables Apache Iceberg tableaux.

Pour les tables Iceberg, rien ne change lors de l'installation. Le principal avantage des tableaux dynamiques basés sur les tableaux Snowflake Iceberg réside dans le fait qu'ils vous permettent de continuer à traiter les données externes sans ingestion continue ni duplication des données.

Le clonage est possible grâce à la fonctionnalité « voyage dans le temps » de Snowflake, et nous pouvons copier une version plus ancienne de notre tableau dynamique à l'aide de la commande « CLONE » comme suit :

CREATE Dynamic Table clone_sales_agg
CLONE sales_agg
AT (OFFSET => -24*60*60) –-24 hours ago
TARGET_LAG = DOWNSTREAM
WAREHOUSE = sales_wh

Il convient toutefois de noter que les tableaux clonés peuvent ne pas partager toutes les métadonnées du tableau source et qu'ils occupent un espace de stockage supplémentaire. Soyez prudent lorsque vous clonez et assurez-vous que cela est nécessaire.

Exemple de configuration des données

Il est recommandé de s'entraîner à configurer des tableaux dynamiques afin de tester leur fonctionnalité. Voici un guide général sur la manière de tester les tableaux dynamiques :

  • Créez un tableau d'raw_sales s simple avec des horodatages.
  • Insérez de nouvelles lignes régulièrement.
  • Veuillez utiliser TARGET_LAG = '1 minute' pour observer les actualisations en action.

Vous pouvez créer un flux qui examine un compartiment S3 dans lequel vous pouvez télécharger régulièrement des données. À mesure que ces données changent, vous pouvez voir comment votre tableau dynamique se met à jour. Veuillez suivre ce tutoriel pour découvrir des méthodes simples de configuration de l'ingestion de données Snowflake. l'ingestion de données Snowflake, puis consulter ce tutoriel pour plus d'informations sur la création de tableaux dans Snowflake.

Surveillance et gestion des tableaux dynamiques

Snowflake fournit plusieurs outils pour vous aider à surveiller et gérer efficacement les tableaux dynamiques, tels que Snowsight ou les requêtes. Veuillez vous assurer que vous disposez des privilèges de surveillance sur votre compte pour afficher ces informations.

Méthodes et outils de surveillance

L'utilisation de Snowsight pour surveiller les tableaux dynamiques est simple :

  • Veuillez naviguer dans les données et sélectionner « Bases de données ».
  • Sélectionnez la base de données et le schéma contenant votre tableau dynamique.
  • Sélectionnez l'option Tableaux dynamiques ».
  • Cela fournit une liste des tableaux que vous pouvez sélectionner et sur lesquels vous pouvez obtenir plus d'informations.

Snowsight peut fournir des informations très utiles, telles que la manière dont le tableau dynamique a été créé, le DAG, l'historique des actualisations et les métriques.

Pour effectuer la même opération avec SQL, nous utiliserions la commande « SHOW DYNAMIC TABLES ». 

Par exemple, si je souhaite consulter tous mes tableaux dynamiques liés aux ventes :

SHOW Dynamic Tables LIKE ‘sales_%' IN SCHEMA mydb.myschema;

Cela fournit des informations telles que la date de création du tableau, sa taille, son retard cible et son dernier état.

Gestion et modification des tableaux dynamiques

Il se peut que vous souhaitiez modifier ou suspendre votre tableau dynamique. Heureusement, Snowflake vous facilite la tâche.

Pour suspendre votre tableau, nous utilisons ALTER DYNAMIC TABLE et SUSPEND:

ALTER Dynamic Table sales_agg SUSPEND;

Pour résumer, nous procédons de la même manière, mais avec l'RESUME:

ALTER Dynamic Table sales_agg RESUME;

Pour modifier les paramètres, nous pouvons également utiliser la ligne « ALTER DYNAMIC TABLE » et « SET » le paramètre spécifique que nous souhaitons modifier :

ALTER Dynamic Table sales_agg SET TARGET_LAG = '10 minutes';

La meilleure façon de gérer les dépendances et de minimiser les interruptions opérationnelles est de vous assurer que vous ne suspendez pas les tableaux critiques. Si vous envisagez de modifier le délai, assurez-vous de bien comprendre l'impact que cela pourrait avoir sur le timing des tableaux en aval. 

Surmonter les contraintes opérationnelles

Nous avons appris que les tableaux dynamiques sont très utiles, mais ils présentent encore quelques limites et considérations.

Contraintes et limitations architecturales

Il existe certaines restrictions concernant les types de comptes et de sources. Les contraintes actuelles sont les suivantes :

  • Limité à 50 000 tableaux dynamiques par compte (à compter de mi-2025).
  • Tous les types d'objets Snowflake ne sont pas pris en charge en tant que sources (par exemple, les flux).
  • Les requêtes de tableaux dynamiques ne sont pas suivies dans la vue d'audit de l'ACCESS_HISTORY.

D'autres éléments à prendre en considération sont le clonage, le voyage dans le temps et le contrôle d'accès. Le voyage dans le temps est peut-être le plus simple, car il nécessite une valeur minimale d'un jour. Il n'est pas possible de désactiver le voyage dans le temps en réglant l'DATA_RETENTION_TIME_IN_DAYS sur 0. 

Lorsque vous clonez un tableau dynamique, veuillez noter que toutes les métadonnées ne sont pas enregistrées. De plus, vous ne pouvez pas cloner les tableaux dynamiques Iceberg. Si vous clonez un tableau dynamique qui dépend d'un tableau dynamique Iceberg, ce tableau dynamique Iceberg n'est pas déplacé vers le nouvel emplacement.

La création et l'utilisation de tableaux dynamiques nécessitent les rôles d'accès CREATE DYNAMIC TABLE, SELECT et USAGE pour la base de données et le schéma parents. 

Si vous vous souvenez de ces contraintes, vous devriez avoir moins de difficultés avec les tableaux dynamiques.

Techniques d'optimisation des performances

En raison de leur méthodologie de mise en œuvre simple, il est facile de surcharger le système. Une erreur courante consiste à traiter les tableaux dynamiques comme un pipeline de données en temps réel. Ils ne sont pas destinés à remplacer les sources de données en temps réel ; il convient plutôt de tenir compte des exigences en matière de timing et d'actualité des données. Par exemple, nous pouvons suivre ces bonnes pratiques :

  • Utilisez l'REFRESH_MODE = incremental lorsque cela est possible afin de ne pas avoir à recréer l'intégralité du tableau dynamique à chaque chargement.
  • Ajustez l'TARGET_LAG afin d'équilibrer les coûts et les besoins des parties prenantes en matière de fraîcheur des données.
  • Sélectionnez des instances de type « WAREHOUSE » de taille appropriée afin d'optimiser les ressources informatiques utilisées.
  • Divisez les transformations importantes en tableaux plus petits et plus faciles à gérer.
  • Écrivez du code SQL intelligent et efficace qui ne repose pas sur des jointures massives et des instructions d'SELECT imbriquées.

En suivant ces conseils simples, vous contribuerez au bon fonctionnement de vos tableaux dynamiques. Une utilisation judicieuse peut réellement simplifier vos pipelines de données critiques à moindre coût, mais une utilisation imprudente peut créer davantage de problèmes à l'avenir.

Considérations relatives aux prix et aux coûts

Comme nous l'avons mentionné, l'utilisation de tableaux dynamiques implique des coûts de stockage et de calcul. Nous pouvons vous présenter quelques stratégies pour comprendre ces coûts et comment les gérer dans Snowflake.

Éléments de coût

Le coût lié à l'utilisation de tableaux dynamiques comprend deux éléments principaux : le stockage et le calcul. Chacun d'entre eux comporte plusieurs éléments, nous allons donc les examiner en détail.

Coûts de stockage avec les tableaux dynamiques

En ce qui concerne les coûts de stockage, vous serez facturé pour le stockage des résultats matérialisés de chaque tableau dynamique. Il existe également des coûts supplémentaires pour des services tels que le voyage dans le temps, le stockage sécurisé et le clonage. 

La seule exception concerne les tableaux dynamiques de type iceberg, pour lesquels vous n'aurez aucun coût de stockage Snowflake, car ils sont stockés en externe. Vous pouvez limiter ces coûts en réduisant autant que possible la taille de votre tableau dynamique ou en minimisant le nombre de clonages et les déplacements temporels.

Calculez les coûts à l'aide des tableaux dynamiques

Les coûts informatiques se divisent en deux grandes catégories : l'entrepôt virtuel et les services informatiques Cloud. Les entrepôts virtuels deviendront les ressources que vous utiliserez pour initialiser et actualiser vos tableaux ; pensez aux coûts associés à l'exécution de la requête. 

Les services cloud sont davantage axés sur l'automatisation offerte par Snowflake. Il s'agit notamment d'identifier les modifications apportées aux objets de base sous-jacents et de maintenir les DAG. Pensez à tout le travail en arrière-plan effectué par Snowflake pour assurer le bon fonctionnement de vos tableaux dynamiques. 

Cette fonction dépend du décalage défini pour votre tableau, et le coût est directement associé à la fréquence définie.

Pour obtenir un aperçu complet de la composition de ces coûts, veuillez consulter la documentation sur les coûts de Snowflake. documentation relative aux coûts de Snowflake, qui détaille les différents éléments.

Suivi des coûts et économies

Snowflake facilite le suivi de ces coûts grâce à Snowsight. Refresh History Vous pouvez vous rendre dans Surveillance, puis Tableaux dynamiques comme d'habitude. Sous la page du tableau dynamique, vous trouverez un onglet Crédits de l'entrepôt qui vous indiquera les crédits utilisés.

Si vous souhaitez obtenir des informations plus détaillées sur l'utilisation de votre compte, vous pouvez également utiliser la requête suivante :

SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.METERING_HISTORY;

Cela affichera les coûts engagés par les différents services sur le compte et pourra être lié à vos tableaux dynamiques. 

De plus, je vous recommande d'effectuer des tests sur un entrepôt dédié afin de bien comprendre les coûts d'entreposage associés au tableau dynamique. Une fois que vous avez une idée du coût, vous pouvez les transférer vers vos entrepôts partagés.

Si vous souhaitez réduire vos coûts, envisagez d'utiliser des fonctionnalités telles que la suspension automatique. Les tableaux dynamiques suspendus sont uniquement facturés pour le stockage et non pour les ressources de rafraîchissement. 

Vous pouvez également utiliser des tableaux dynamiques transitoires qui n'ont pas de coûts de stockage à sécurité intégrée. De plus, en optimisant la fréquence de votre requête TARGET_LAG et en utilisant la mise à jour incrémentielle lorsque cela est possible, vous pouvez réduire considérablement vos coûts informatiques. 

Comme toujours, l'écriture de code SQL de qualité et l'optimisation des transformations constituent également un excellent moyen de réduire l'utilisation des ressources informatiques.

Cas d'utilisation des tableaux dynamiques Snowflake

Les tableaux dynamiques peuvent être utilisés partout où vous souhaitez remplacer un pipeline ETL complexe et fastidieux basé sur le temps par un pipeline simplifié, basé sur le décalage et autogéré.

Modèles de déploiement en entreprise

Voici quelques cas d'utilisation qui pourraient être utiles pour votre secteur d'activité.

Pour les organisations financières, il peut être utile de procéder à des actualisations périodiques des données transactionnelles, par exemple pour la détection des fraudes ou les rétrofacturations. 

TARGET_LAG Étant donné que nous n'avons pas besoin de données actualisées à la seconde près, nous pourrions opter pour une fréquence de collecte de données de 10 minutes pour les tableaux de bord généraux sur l'état du système. Vous disposez peut-être d'un modèle de science des données qui enregistre toutes les alertes de fraude dans un tableau et d'un système tiers de surveillance des rétrofacturation qui les enregistre dans un autre tableau. 

Vous pouvez regrouper ces deux éléments dans un tableau agrégé en toute simplicité, sans avoir recours à des DAG Airflow complexes. Cela devrait simplifier et améliorer les performances des requêtes.

Dans le domaine de l'analyse commerciale, nous sommes peut-être intéressés par les performances des différentes régions. Il est possible que chaque région dispose de sa propre base de données centrale qui transmet les données périodiquement, mais avec un léger décalage. Au lieu de créer des pipelines ETL dont le timing doit être adapté à chaque base de données, nous pouvons créer un tableau dynamique qui agrège toutes ces données selon les besoins, en fonction des décalages de chaque tableau. Cela réduit la complexité du pipeline et minimise le besoin d'une maintenance constante.

D'autres scénarios pourraient inclure :

  • Analyse comportementale en temps réel: regroupez les informations en temps réel sur le comportement des clients afin de résumer les tendances émergentes.
  • Workflows CDC: conservez des données en temps quasi réel pour les changements opérationnels afin de suivre les problèmes commerciaux tout au long du cursus.
  • Modélisation de coffre-fort de données: ajoutez progressivement les nouvelles données à mesure qu'elles arrivent et utilisez-les comme source unique d'informations sur la manière dont les données ont été ingérées.

Conclusion

Les tableaux dynamiques Snowflake constituent un outil remarquable pour simplifier les pipelines ETL complexes basés sur le temps. Ils offrent un équilibre raffiné entre automatisation, flexibilité et performance. Il suffit de garder à l'esprit certaines bonnes pratiques, telles que tester avec des pipelines non critiques pour comprendre le comportement de rafraîchissement des données, surveiller vos indicateurs de retard et de coût, et évaluer les DAG visuels pour comprendre les dépendances.

Les tableaux dynamiques ne remplacent pas complètement les flux et les tâches dans tous les cas, mais ils constituent une nouvelle option robuste qui réduit le code et optimise l'efficacité. Utilisez-les judicieusement, et vous vous simplifierez considérablement la vie. Pour plus d'informations sur Snowflake et quelques rappels sur le langage SQL, veuillez consulter les ressources suivantes :

FAQ sur les tableaux dynamiques Snowflake

Qu'est-ce qu'un tableau dynamique Snowflake et en quoi diffère-t-il d'une vue ou d'une vue matérialisée ?

Un tableau dynamique est un objet Snowflake entièrement géré qui matérialise les résultats d'une requête SQL et les actualise automatiquement. Contrairement aux vues, qui calculent les résultats à la demande, et aux vues matérialisées, qui prennent en charge des transformations limitées, les tableaux dynamiques prennent en charge une logique complexe, des actualisations incrémentielles et des dépendances orchestrées.

Comment Snowflake détermine-t-il quand actualiser un tableau dynamique ?

Les actualisations sont déterminées par le paramètre d'TARGET_LAG, qui spécifie le délai maximal autorisé entre les modifications des données source et les mises à jour dans le tableau dynamique. Snowflake déclenche automatiquement des actualisations afin de respecter cette exigence de latence à l'aide de l'entrepôt virtuel attribué.

Puis-je utiliser les tableaux dynamiques pour remplacer les flux et les tâches dans mon pipeline ?

Dans la plupart des cas, oui. Les tableaux dynamiques offrent une configuration plus simple et une planification de l'actualisation intégrée, ce qui les rend idéaux pour la plupart des pipelines CDC et de transformation. Toutefois, pour une logique hautement personnalisée, événementielle ou procédurale, les flux et les tâches peuvent s'avérer plus appropriés.

Que se passe-t-il si les données sous-jacentes d'un tableau dynamique changent fréquemment ?

Snowflake tentera de respecter l'TARGET_LAG en programmant des actualisations fréquentes. Si les données changent plus fréquemment que les actualisations ne peuvent le suivre, vous risquez de constater une augmentation des coûts informatiques ou des décalages dépassant votre objectif.

Quels sont les cas d'utilisation concrets dans lesquels les tableaux dynamiques sont les plus efficaces ?

Les tableaux dynamiques sont particulièrement adaptés aux applications suivantes :

  • Tableaux de bord en temps réel avec accords de niveau de service stricts en matière de fraîcheur des données.
  • Pipelines CDC simplifiés remplaçant les flux et les tâches.
  • Pipelines ELT multi-étapes dans les cas d'utilisation du commerce de détail, de la finance et de l'IoT.
  • Modélisation Data Vault 2.0 et couches de transformation intermédiaires.

Tim Lu's photo
Author
Tim Lu
LinkedIn

Je suis un data scientist avec de l'expérience dans l'analyse spatiale, l'apprentissage automatique et les pipelines de données. J'ai travaillé avec GCP, Hadoop, Hive, Snowflake, Airflow et d'autres processus d'ingénierie et de science des données.

Sujets

Meilleurs cours Snowflake

Cursus

Fondations Snowflake

0 min
Mettez la main à la pâte avec Snowflake ! Apprenez à interroger, modéliser et gérer les données dans cette introduction interactive pour les ingénieurs de données, les analystes et les professionnels de l'informatique décisionnelle.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow