À propos de la gestion des tables dynamiques¶
La gestion des tables dynamiques implique généralement les tâches suivantes :
Tâche |
Description |
---|---|
Répertorier les tables dynamiques et afficher des informations sur une table dynamique |
Énumération et vue des tables dynamiques. |
Suppression des tables dynamiques. |
|
Modifier l’entrepôt ou la latence cible pour une table dynamique |
Modification des tables dynamiques. |
Répertorier les tables dynamiques et afficher des informations sur une table dynamique¶
Pour dresser la liste des tables dynamiques d’une base de données et voir les informations relatives à ces tables dynamiques, vous pouvez utiliser les commandes Snowsight ou SQL :
Utiliser Snowsight pour afficher des tables dynamiques et voir des détails
Utiliser des commandes SQL pour afficher des tables dynamiques et voir les détails
Utiliser Snowsight pour afficher des tables dynamiques et voir des détails¶
Pour afficher les tables dynamiques d’un schéma et voir les informations relatives à une table dynamique :
Connectez-vous à Snowsight.
Sélectionnez Data » Databases.
Sélectionnez une base de données et un schéma.
Sur l”Schema Details, sélectionnez l’onglet Dynamic Tables.
Notez que vous pouvez également voir la liste des tables dynamiques dans l’explorateur d’objets de la base de données en développant Dynamic Tables.
Pour voir les informations sur une table dynamique spécifique, sélectionnez la table dynamique dans l’explorateur d’objets de la base de données ou dans la liste des tables dynamiques de l’onglet Dynamic Tables.
Les onglets de cette page fournissent certaines des mêmes informations que la page de détails de la table, y compris :
La définition de la table dynamique et les privilèges accordés pour travailler avec la table dynamique
Informations sur les colonnes de la table dynamique
Un aperçu de 100 lignes maximum des données de la table dynamique
En outre, la page de détails de la table dynamique comprend des onglets que vous pouvez utiliser pour voir des informations sur la table dynamique :
L’onglet Graph affiche le graphe orienté acyclique (DAG) qui comprend cette table dynamique. Voir Utiliser Snowsight pour examiner le graphique des tables dynamiques.
L’onglet Refresh History affiche l’historique des actualisations. Voir Utiliser Snowsight pour surveiller les actualisations.
Utiliser des commandes SQL pour afficher des tables dynamiques et voir les détails¶
Pour dresser la liste des tables dynamiques de la base de données actuelle (ou du compte, si aucune base de données n’est actuellement utilisée), utilisez la commande SHOW DYNAMIC TABLES.
Par exemple, pour répertorier les tables dynamiques dont les noms commencent par
product_
dans la base de donnéesmydb
et le schémamyschema
, exécutez l’instruction SQL suivante :SHOW DYNAMIC TABLES LIKE 'product_%' IN SCHEMA mydb.myschema;
Pour la syntaxe complète de la commande, voir SHOW DYNAMIC TABLES.
Pour obtenir des informations sur les colonnes d’une table dynamique, utilisez la commande DESCRIBE DYNAMIC TABLE.
Par exemple, pour dresser la liste des colonnes de la table dynamique nommée
product
:DESC DYNAMIC TABLE product;
Les tableaux dynamiques sont également inclus dans les résultats de la Vue TABLES.
Supprimer une table dynamique¶
Pour supprimer une table dynamique, vous pouvez utiliser des commandes Snowsight ou SQL.
- Snowsight:
Dans Snowsight, ouvrez la page de détails de la table dynamique (instructions).
Dans le menu More situé dans le coin supérieur droit de la page, sélectionnez Drop.
- SQL:
Utilisez la commande DROP DYNAMIC TABLE.
Par exemple, pour supprimer la table dynamique nommée
product
:
DROP DYNAMIC TABLE product;
Partage de données avec des tables dynamiques¶
Les tables dynamiques sont des objets partageables. Pour partager une table dynamique, les fournisseurs de partage de données accordent des privilèges sur une table dynamique à un partage, qui peut à son tour être utilisée par les consommateurs de partage de données.
Modifier l’entrepôt ou la latence cible pour une table dynamique¶
Pour modifier l’entrepôt ou la latence cible d’une table dynamique, utilisez la commande ALTER DYNAMIC TABLE.
Par exemple, pour modifier l’entrepôt de la table dynamique product
en my_other_wh
, exécutez ceci :
ALTER DYNAMIC TABLE product SET WAREHOUSE = my_other_wh;
Le diagramme suivant illustre les opérations de suspension, de reprise et d’actualisation manuelle dans le contexte des relations en amont et en aval avec d’autres tables dynamiques.
Le diagramme représente un pipeline de données déclaratif simple construit avec des tables dynamiques. Comme l’eau qui coule dans un ruisseau, les données d’un pipeline de table dynamique s’écoulent de la racine vers l’aval, en direction de la table dynamique feuille :
DT2 est décrite comme en aval de DT1 parce qu’elle dépend de cette table dynamique, et comme en amont de DT3, qui en dépend.
DT3 est en aval de DT2 et DT1, car elle dépend directement de DT2 et indirectement de DT1.
DT1 est directement ou indirectement en amont des autres tables dynamiques.
Pour plus de détails et d’exemples sur l’utilisation de la latence cible en aval, voir Comprendre la latence cible.
Déterminer la latence cible optimale pour une table dynamique¶
Pour déterminer le temps de latence cible optimal pour une table dynamique, vous pouvez utiliser les commandes Snowsight ou SQL.
- Snowsight:
Sur la page de détails des tables dynamiques, sélectionnez l’onglet Refresh History.
Vérifiez le temps de latence réel maximum, qui est affiché en haut de l’onglet. Cette mesure est basée sur le temps de latence réel pour chaque actualisation.
- SQL:
Utilisez la fonction de la table DYNAMIC_TABLE_REFRESH_HISTORY dans INFORMATION_SCHEMA. Cette fonction renvoie des informations sur chaque actualisation d’une table dynamique, y compris la durée de l’actualisation et les actualisations qui ont été ignorées.
Le temps de latence que vous choisissez peut affecter le calendrier d’actualisation déterminé par le processus d’actualisation automatisé. Le processus d’actualisation automatisé choisit un calendrier qui respecte au mieux les temps de latence des tables dynamiques.
Déterminer si une actualisation incrémentielle ou complète est utilisée¶
Pour déterminer si une actualisation incrémentielle ou complète est utilisée pour mettre à jour une table dynamique, vous pouvez utiliser des commandes Snowsight ou SQL.
- Snowsight:
Allez à la page de détails de la table dynamique.
Les détails de base en haut de la page indiquent si des actualisations incrémentielles ou complètes sont utilisées pour cette table.
- SQL:
Utilisez la commande SHOW DYNAMIC TABLES et vérifiez la valeur de la colonne
REFRESH_MODE
dans la sortie.REFRESH_MODE_REASON contient des détails supplémentaires sur le choix de REFRESH_MODE.
Présentation des effets des modifications apportées aux colonnes des tables de base¶
Les colonnes des tables de base, des vues et des tables dynamiques sous-jacentes peuvent changer au fil du temps. Certaines modifications peuvent avoir un impact sur la table dynamique elle-même ; d’autres peuvent avoir un impact limité ou nul.
Lorsque les objets sous-jacents associés à une table dynamique changent, les comportements suivants s’appliquent :
Changement |
Impact |
---|---|
|
Aucune. Si une nouvelle colonne est ajoutée à la table de base ou si une colonne inutilisée est supprimée, aucune action ne se produit et les actualisations se poursuivent comme auparavant. |
|
Actualisation/réinitialisation complète : lors du cycle d’actualisation suivant, une actualisation complète est effectuée pour s’assurer qu’il n’y a pas de données incorrectes ou périmées dans la table dynamique. |
|
L’état de la table dynamique devient FAILED. La table dynamique doit être recréée pour tenir compte de la modification. |
Présentation du comportement de la suspension automatique¶
Note
Une table dynamique est suspendue si le système observe cinq erreurs continues d’actualisation. Les tables dynamiques suspendues en raison d’erreurs d’actualisation sont communément appelées suspendues automatiquement car elles sont suspendues par le système et non par une action de l’utilisateur.
Toutes les tables dynamiques qui dépendent de la table dynamique suspendue sont également suspendues. SCHEDULING_STATE décrit l’état actuel d’une table dynamique.
Pour voir l’état de planification de la table dynamique, appelez la fonction de table DYNAMIC_TABLE_GRAPH_HISTORY et examinez la colonne SCHEDULING_STATE.