Tables dynamiques

Les tables dynamiques sont des tables qui s’actualisent automatiquement en fonction d’une requête définie et du niveau d’actualisation de la cible, ce qui simplifie la transformation des données et la gestion du pipeline sans nécessiter de mises à jour manuelles ou de planification personnalisée.

Lors de la création d’une table dynamique, vous définissez une requête qui spécifie comment les données doivent être transformées à partir des objets de base. Snowflake se charge ensuite de la planification de l’actualisation de la table dynamique, en la mettant automatiquement à jour en fonction des modifications apportées aux objets de base sur la base de la requête.

Fonctionnement des tables dynamiques

Les tables dynamiques sont mises à jour par un processus d’actualisation automatisé qui exécute régulièrement la requête de transformation. Ce processus calcule les modifications apportées aux objets de base et les fusionne dans la table dynamique en utilisant les ressources calcul associées à la table.

Représentation visuelle du processus d'actualisation automatisé entre les objets de base et les tables dynamiques

La fréquence d’actualisation et le niveau d’actualisation des données sont déterminés par la latence cible spécifiée lors de la création de la table dynamique, qui définit le degré d’actualisation des données. Le processus d’actualisation utilise la latence cible spécifiée pour planifier les mises à jour. Par exemple, une latence cible de cinq minutes garantit que les données de la table dynamique ne sont pas en retard de plus de cinq minutes par rapport aux mises à jour de la table de base.

Des latences cibles plus longues peuvent être utilisées pour réduire les coûts lorsque des mises à jour des données en temps quasi réel ne sont pas nécessaires. Par exemple, si les données de votre table dynamique doivent avoir au maximum une heure de retard sur les mises à jour des tables de base, vous pouvez spécifier un niveau d’actualisation cible d’une heure (au lieu de cinq minutes) pour réduire les coûts.

Pour plus d’informations, voir Comprendre la latence cible des tables dynamiques et Comprendre l’initialisation et l’actualisation des tables dynamiques.

Quand utiliser les tables dynamiques

Les tables dynamiques sont idéales pour les scénarios dans lesquels :

  • Vous voulez éviter de suivre manuellement les dépendances des données et de gérer les planifications d’actualisation.

  • Vous devez matérialiser les résultats de requêtes provenant de plusieurs tables de base sans écrire de code personnalisé.

  • Vous devez construire plusieurs tables pour les transformations de données dans un pipeline.

  • Vous n’avez pas besoin de contrôler avec précision les planifications d’actualisation, et il vous suffit de spécifier un niveau d’actualisation cible pour le pipeline.

  • Vous souhaitez utiliser une table dynamique comme source d’un flux.

Exemples de cas d’utilisation

  • Dimensions à changement lent (SCDs) : les tables dynamiques peuvent être utilisées pour mettre en œuvre les types 1 et 2 de SCDs en lisant un flux de modifications et en utilisant des fonctions de fenêtre sur des clés par enregistrement ordonnées par un horodatage des modifications. Cette méthode permet de gérer les insertions, les suppressions et les mises à jour qui se produisent dans le désordre, ce qui simplifie la création de SCDs. Pour plus d’informations, voir Changement lent des dimensions avec les tables dynamiques.

  • Passage du lot à la diffusion en continu : les tables dynamiques permettent de passer en toute transparence du lot à la diffusion en continu avec une seule commande ALTER DYNAMIC TABLE. Vous pouvez contrôler la fréquence d’actualisation dans votre pipeline afin d’équilibrer le coût et le niveau d’actualisation des données.

Considérations clés

  • SQL déclarative : les tables dynamiques vous permettent de définir les résultats du pipeline de manière déclarative, sans gérer manuellement les étapes de transformation.

  • Actualisation automatique : Snowflake prend en charge l’orchestration des actualisations de données, y compris la planification et l’exécution, en fonction de vos exigences de niveau d’actualisation cible.

  • Optimisation des performances : les tables dynamiques utilisent le traitement incrémentiel pour les charges de travail qui le prennent en charge, ce qui peut améliorer les performances en mettant à jour uniquement les données qui ont changé, plutôt que d’effectuer une actualisation complète.