Dépannage des tables dynamiques¶
Cette rubrique aborde les solutions de dépannage des tables dynamiques qui ne fonctionnent pas comme prévu :
Certaines actions peuvent être restreintes en raison de limitations concernant l’utilisation de tables dynamiques ou si vous ne disposez pas des privilèges nécessaires. Pour plus d’informations, voir Limitations connues relatives aux tables dynamiques et Contrôle de l’accès aux tables dynamiques.
Pour plus d’informations sur les coûts des tables dynamiques, voir Compréhension du coût des tables dynamiques.
Si vous rencontrez un problème qui n’est pas répertorié ici, contactez le support Snowflake.
Dépannage de l’actualisation des tables dynamiques¶
Problème |
Solution |
---|---|
Ma table dynamique utilise une actualisation complète au lieu d’une actualisation incrémentielle. |
Le mode d’actualisation d’une table dynamique est déterminé au moment de la création et est immuable par la suite. S’il n’est pas spécifié explicitement, le mode d’actualisation est par défaut Pour un comportement cohérent entre les versions de Snowflake, définissez explicitement le mode d’actualisation de toutes les tables dynamiques. Par exemple, si vous souhaitez que vos tables dynamiques soient actualisées uniquement de manière incrémentielle, vous devez définir explicitement le mode d’actualisation sur En utilisant un rôle doté des privilèges nécessaires, vous pouvez vérifier le mode d’actualisation à l’aide de l’une des méthodes suivantes :
|
L’actualisation incrémentielle de ma table dynamique est lente. |
Les performances d’actualisation d’une table dynamique reposent sur des hypothèses spécifiques concernant la charge de travail ou les données qu’elle traite. Utilisez Refresh History pour voir la variance ou repérer les valeurs aberrantes :
|
Ma table dynamique exécute une actualisation vide, mais je vois un coût. |
Les actualisations qui ne produisent aucune nouvelle ligne nette (c’est-à-dire aucune ligne ajoutée, mise à jour ou supprimée) consomment des ressources de l’entrepôt lorsqu’elles sont associées à des changements dans l’un des objets en amont référencés par la table dynamique. Par exemple, si l’entrepôt virtuel associé est suspendu et qu’aucun changement dans les objets de base n’est identifié, l’entrepôt virtuel suspendu ne reprend pas et aucun crédit n’est consommé. C’est ce que l’on appelle une actualisation NO_DATA. Inversement, si des changements sont identifiés, l’entrepôt virtuel est automatiquement repris pour traiter les mises à jour, ce qui consomme des ressources de l’entrepôt même si le résultat net est zéro ligne appliquée à la table dynamique. Si vous constatez un coût alors que vous n’avez apporté aucune modification à votre table dynamique, cela peut être dû à une modification de votre table source. Vous pouvez utiliser l’onglet Refresh History dans Snowsight pour vérifier si les crédits de l’entrepôt virtuel ont été consommés :
Pour plus d’informations, voir Compréhension du coût des tables dynamiques. |
Ma table dynamique n’a pas été actualisée. |
Les tables dynamiques sont actualisées selon une planification. Lorsqu’une actualisation planifiée démarre, les situations suivantes peuvent entraîner l’interruption de l’actualisation :
Les actualisations manuelles ne sont jamais ignorées, mais elles peuvent entraîner l’omission d’autres actualisations, en particulier si vous effectuez des actualisations manuelles fréquentes sur une table dynamique. Cela peut empêcher l’actualisation des tables dynamiques en aval. Pour cette raison, Snowflake ne vous recommande pas d’effectuer fréquemment des actualisations manuelles sur une table dynamique avec des tables dynamiques en aval qui sont censées s’actualiser en fonction d’une latence cible. |
L’actualisation de ma table dynamique a échoué. |
Comme une requête Snowflake classique, l’actualisation d’une table dynamique peut échouer en raison de problèmes liés à la définition de la requête de la table dynamique, aux données d’entrée (par exemple, des erreurs d’analyse) ou à des problèmes internes au système. Pour déterminer la raison de l’échec de l’actualisation, procédez comme suit :
Si l’actualisation a échoué en raison d’un code d’erreur
|
Ma table dynamique se réinitialise. |
Il se peut que votre table dynamique se réinitialise pour l’une des raisons suivantes :
Pour des informations générales sur l’initialisation, voir Compréhension de l’initialisation des tables dynamiques. |
Dépannage de la création de tables dynamiques¶
Problème |
Solution |
---|---|
La création de ma table dynamique prend beaucoup de temps. |
Lorsque vous créez une table dynamique à l’aide d’une instruction CREATE DYNAMIC TABLE, son actualisation initiale a lieu soit à un moment planifié ( L’initialisation peut prendre un certain temps, suivant la quantité de données analysées. Pour voir la progression, procédez comme suit :
Pour des informations générales sur l’initialisation, voir Compréhension de l’initialisation des tables dynamiques. |
Dépannage des tables dynamiques¶
Problème |
Solution |
---|---|
Je ne peux pas voir les métadonnées de ma table dynamique. |
Pour afficher les métadonnées et la fonction Information Schema d’une table dynamique, vous devez utiliser un rôle disposant du privilège MONITOR sur cette table dynamique. Pour plus d’informations, voir Privilèges permettant d’afficher les métadonnées d’une table dynamique. |
Ma table dynamique est suspendue. |
Une table dynamique peut être suspendue pour plusieurs raisons :
Pour connaître la raison pour laquelle votre table dynamique a été suspendue, procédez comme suit :
|