Gestion des flux

Ce chapitre décrit les tâches administratives associées à la gestion des flux.

Dans ce chapitre :

Activation du suivi des modifications sur les vues et les tables sous-jacentes

Pour que les utilisateurs puissent interroger les données de modification sur une vue, le suivi des modifications doit être activé sur la vue et les tables sous-jacentes.

Seul le propriétaire de l’objet (c’est-à-dire le rôle avec le privilège OWNERSHIP) sur une vue donnée ou des tables sous-jacentes peut activer le suivi des modifications.

Les options suivantes sont disponibles pour activer le suivi des modifications :

  1. Créez un flux sur la vue en utilisant le rôle de propriétaire de la vue. Cette action active le suivi des modifications sur la vue.

    Si le même rôle est également propriétaire des tables sous-jacentes, le suivi des modifications est également activé sur les tables. Sinon, le propriétaire de la table doit explicitement activer le suivi des modifications sur les tables. Pour ces étapes, voir Activer explicitement le suivi des modifications sur les tables sous-jacentes (dans cette rubrique).

  2. Activez explicitement le suivi des modifications sur la vue et les tables. Pour les instructions, voir les autres instructions de cette section.

Activer explicitement le suivi des modifications sur les vues

Définissez le paramètre CHANGE_TRACKING lors de la création d’une vue (en utilisant CREATE VIEW) ou ultérieurement (en utilisant ALTER VIEW).

Notez que le suivi des modifications doit également être explicitement activé sur les tables sous-jacentes d’une vue. Pour obtenir des instructions, voir Activer explicitement le suivi des modifications sur les tables sous-jacentes (dans cette rubrique).

Par exemple, créez une vue sécurisée dans le schéma actuel qui sélectionne un sous-ensemble de lignes dans une table :

CREATE SECURE VIEW v CHANGE_TRACKING = TRUE AS SELECT col1, col2 FROM t;
Copy

Par exemple, modifiez une vue existante pour permettre le suivi des modifications :

ALTER VIEW v2 SET CHANGE_TRACKING = TRUE;
Copy

Activer explicitement le suivi des modifications sur les tables sous-jacentes

Important

Lors de la création ou de la modification d’une vue pour spécifier CHANGE_TRACKING, les objets de base de données dépendants associés sont automatiquement mis à jour pour permettre le suivi des modifications. Pendant l’opération, les ressources sous-jacentes sont verrouillées, ce qui peut entraîner un temps de latence pour les opérations DDL/DML. Pour plus d’informations, reportez-vous à Verrouillage des ressources.

Si l’utilisateur qui exécute l’instruction n’a pas spécifié un rôle avec des autorisations suffisantes (OWNERSHIP), l’instruction échoue, les objets de la base de données sous-jacente ne sont pas mis à jour et les verrouillages sont levés.

Définissez le paramètre CHANGE_TRACKING lors de la création d’une table (en utilisant CREATE TABLE) ou ultérieurement (en utilisant ALTER TABLE).

Par exemple, pour créer une table dans le schéma actuel :

CREATE TABLE t (col1 STRING, col2 NUMBER) CHANGE_TRACKING = TRUE;
Copy

Par exemple, pour modifier une table existante pour permettre le suivi des modifications :

ALTER TABLE t1 SET CHANGE_TRACKING = TRUE;
Copy

Important

Lors de la création ou de la modification d’une TABLE pour spécifier un CHANGE_TRACKING, la table est verrouillée pendant la durée de l’opération, ce qui peut entraîner une latence pour les opérations DML. Pour plus d’informations, reportez-vous à Verrouillage des ressources.

Éviter l’obsolescence des flux

Pour éviter qu’un flux ne devienne obsolète, nous vous recommandons vivement de consommer régulièrement ses données de modification avant son horodatage STALE_AFTER (c’est-à-dire pendant la période de conservation étendue des données de l’objet source).

Pour voir la période de conservation des données d’un flux, exécutez la commande DESCRIBE STREAM ou SHOW STREAMS. L’horodatage de la colonne STALE_AFTER indique la date à laquelle il est prévu que le flux devienne obsolète (ou quand il est devenu obsolète, si l’horodatage est dans le passé). Cet horodatage est calculé en ajoutant le plus grand des paramètres DATA_RETENTION_TIME_IN_DAYS ou MAX_DATA_EXTENSION_TIME_IN_DAYS à l’horodatage actuel. Notez que si l’horodatage est dans le passé, le flux peut être déjà obsolète. La colonne STALE indique également si le flux est censé être obsolète, bien que le flux puisse ne pas l’être encore.

Consommer les données de changement pour un flux déplace l’horodatage STALE_AFTER vers l’avant.

Pour plus d’informations, voir Période de conservation des données et obsolescence.

Visualiser et gérer les flux dans Snowsight

Pour visualiser et gérer un flux dans Snowsight, procédez comme suit :

  1. Connectez-vous à Snowsight.

  2. Sélectionnez Data » Databases.

  3. Pour une base de données et un schéma spécifiques, sélectionnez Streams et sélectionnez le flux que vous souhaitez gérer.

Pour voir le flux dans Snowsight, vous pouvez procéder comme suit :

  • Dans la section Details , examiner le nom de la table à laquelle le flux s’applique, le type de flux et si le flux est obsolète ou non.

  • Examiner l’instruction SQL utilisée pour créer le flux.

  • Gérer les privilèges sur le flux. Voir Gérer les privilèges des objets avec Snowsight.