Meilleures pratiques pour optimiser les performances des tables dynamiques

Pour optimiser les performances de vos tables dynamiques, vous devez comprendre le système, expérimenter des idées et itérer en fonction des résultats. Par exemple :

  1. Développez des moyens d’améliorer votre pipeline de données en fonction de vos besoins en matière de coût, de décalage des données et de temps de réponse.

  2. Implémentez les actions suivantes :

    1. Commencez par un petit ensemble de données fixes pour développer rapidement des requêtes.

    2. Testez les performances avec des données en mouvement.

    3. Développez l’ensemble de données pour vous assurer qu’il répond à vos besoins.

  3. Ajustez votre charge de travail en fonction des résultats obtenus.

  4. Répétez si nécessaire, en priorisant les tâches ayant le plus grand impact sur les performances.

De plus, utilisez la latence en aval pour gérer efficacement les dépendances d’actualisation entre les tables, en garantissant que les actualisations ne se produisent que lorsque cela est nécessaire.

Note

Lorsqu’elles sont interrogées, les tables dynamiques se comportent de la même manière que les tables Snowflake ordinaires. Pour plus d’informations, voir Optimisation des performances dans Snowflake.

Performance d’actualisation à actualisation complète

Les tables dynamiques à actualisation complète ont des performances similaires à celles de CREATE TABLE … AS SELECT (également appelé CTAS). Elles peuvent être optimisées comme n’importe quelle autre requête de Snowflake.

Performance de l’actualisation incrémentielle

Pour vous aider à atteindre des performances optimales en matière d’actualisation incrémentielle pour vos tables dynamiques :

  • Maintenez les changements entre les actualisations à un niveau minimal, idéalement moins de 5 % de l’ensemble de données, tant pour les sources que pour la table dynamique.

  • Tenez compte du nombre de micropartitions modifiées et pas seulement du nombre de lignes. La quantité de travail qu’une actualisation incrémentielle doit effectuer est proportionnelle à la taille de ces micropartitions, et pas seulement aux lignes qui ont été modifiées.

  • Réduisez au minimum les opérations de regroupement telles que les jointures, GROUP BYs et PARTITION BYs dans votre requête. Décomposez les grandes expressions de tables communes (CTEs) en parties plus petites et créez une table dynamique pour chacune d’entre elles. Évitez de surcharger une table dynamique unique avec des agrégations ou des jointures excessives.

  • Assurez la localité des données en alignant les changements de table sur les clés de requête (par exemple, pour les jointures, GROUP BYs, PARTITION BYs). Si vos tables ne sont pas naturellement regroupées par ces clés, envisagez d’activer le clustering automatique.