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.
When you create a dynamic table, you define a query that specifies how data should be transformed from base objects. Snowflake handles the refresh schedule of the dynamic table and updates the table automatically to reflect the changes made to the base objects based on the query.
Considérations clés et meilleures pratiques générales¶
Contraintes d’immuabilité : Utilisez des contraintes d’immuabilité pour vous permettre de contrôler les mises à jour des tables dynamiques. Les contraintes gardent des lignes spécifiques statiques tout en permettant des mises à jour incrémentielles du reste de la table. Elles empêchent les modifications non souhaitées aux données marquées et permettent aux actualisations normales de se produire pour d’autres parties de la table. Pour plus d’informations, voir Créer des tables dynamiques avec des limites d’immuabilité.
Performance considerations: Dynamic tables use incremental processing for workloads that support it, which can improve performance by recomputing only the data that has changed, rather than performing a full refresh. For more information, see Meilleures pratiques pour optimiser les performances des tables dynamiques.
Décomposer les tables dynamiques complexes : décomposez votre pipeline en tables dynamiques plus petites et ciblées pour améliorer les performances et simplifier le dépannage. Pour plus d’informations, voir Bonnes pratiques pour la création de tables dynamiques.
Fonctionnement des tables dynamiques¶
Snowflake exécute la requête de définition spécifiée dans votre CREATE DYNAMIC TABLE et vos tables dynamiques sont mises à jour via un processus d’actualisation automatisé.
The following diagram shows how this process computes the changes made to the base objects and merges them into the dynamic table by using compute resources associated with the table.
Latence cible¶
Utilisez la latence cible pour définir le niveau d’actualisation de vos données. En général, le niveau d’actualisation des données de la table ne sera pas si éloigné du niveau d’actualisation des données de la table de base. Avec la latence cible, vous contrôlez la fréquence d’actualisation de la table et la manière dont les données restent à jour.
For more information, see Comprendre la latence cible des tables dynamiques.
Dynamic table refresh¶
Les tables dynamiques visent à s’actualiser dans la latence cible que vous spécifiez. Par exemple, une latence cible de 5 minutes garantit que les données de la table dynamique n’ont pas plus de 5 minutes de retard sur les données mises à jour de la table de base. Vous définissez le mode d’actualisation lorsque vous créez la table et, par la suite, les actualisations peuvent être effectuées selon une planification ou manuellement.
For more information, see Comprendre l’initialisation et l’actualisation des tables dynamiques and Actualiser manuellement les tables dynamiques.
Quand utiliser les tables dynamiques¶
Dynamic tables are ideal for the following scenarios:
You want to materialize query results without writing custom code.
You want to avoid manually tracking data dependencies and managing refresh schedules. Dynamic tables enable you to define pipeline outcomes declaratively, without managing transformation steps manually.
You want to chain together multiple tables for data transformations in a pipeline.
You don’t need fine-grained control over refresh schedules, and you only need to specify a target freshness for the pipeline. Snowflake handles the orchestration of data refreshes, including scheduling and execution, based on your target freshness requirements.
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.
Jointures et agrégations : vous pouvez utiliser des tables dynamiques pour précalculer de manière incrémentielle les jointures lentes et les agrégations afin de permettre des requêtes rapides.
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.