Gestion de Snowpipe

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

Dans ce chapitre :

Chargement de données historiques

Note

Les informations de cette section concernent les chargements de données automatisés à l’aide de notifications d’événement. Les appels vers l’API REST de Snowpipe peuvent charger des données historiques sans nécessiter d’étapes supplémentaires.

Une instruction ALTER PIPE … REFRESH copie un ensemble de fichiers de données mis en zone de préparation au cours des sept jours précédents dans la file d’attente d’intégration de Snowpipe pour un chargement dans la table cible. Si vous souhaitez charger des données à partir de fichiers mis en zone de préparation précédemment, nous vous recommandons les étapes suivantes :

  1. Chargez les données historiques dans la table cible en exécutant une instruction COPY INTO <table>.

  2. Configurez les chargements de données automatiques à l’aide de Snowpipe avec les notifications d’événement. Les fichiers qui viennent d’être créés déclencheront des notifications d’événements pour une intégration dans la table cible. Étant donné que les fichiers de données historiques ne déclenchent pas de notifications d’événements, ils ne sont pas chargés deux fois.

    Pour obtenir des instructions, voir :

    Amazon S3

    Automatisation de Snowpipe pour Amazon S3

    Google Cloud Storage

    Snowpipe automatisé pour Google Cloud Storage

    Microsoft Azure

    Automatisation de Snowpipe pour le stockage Microsoft Azure Blob

  3. Exécutez une instruction ALTER PIPE … REFRESH pour mettre en file d’attente tous les fichiers mis en zone de préparation entre les étapes 1 et 2. L’instruction vérifie l’historique de chargement de la table cible et du canal pour s’assurer que les mêmes fichiers ne sont pas chargés deux fois.

Modification des paramètres Cloud de la zone de préparation référencée

Les paramètres Cloud d’une zone de préparation externe sont les suivants :

  • URL

  • STORAGE_INTEGRATION

  • ENCRYPTION

Une fois que Snowpipe a été configuré avec succès, si vous devez modifier l’un des paramètres Cloud de la zone de préparation référencée, nous vous recommandons d’effectuer les étapes suivantes :

  1. Mettez en pause le canal (à l’aide de ALTER PIPE … SET PIPE_EXECUTION_PAUSED = true). Attendez que tous les fichiers actuellement en file d’attente soient chargés dans la table cible.

  2. Modifiez les paramètres de zone de préparation si nécessaire (en utilisant ALTER STAGE).

  3. Reprenez le canal (avec ALTER PIPE ... SET PIPE_EXECUTION_PAUSED = false).

Étant donné que les canaux ne sont pas transactionnels, ces étapes garantissent que Snowpipe met les fichiers en file d’attente en utilisant les dernières valeurs de paramètre de zone de préparation.

Avertissement

La modification du paramètre URL d’une zone de préparation peut entraîner le blocage de tout canal dépendant qui utilise la messagerie cloud pour déclencher des chargements de données (c’est-à-dire où AUTO_INGEST = TRUE).

Transfert de propriété de canal

Effectuez les étapes suivantes pour transférer la propriété d’un canal :

  1. Définissez le paramètre PIPE_EXECUTION_PAUSED sur TRUE.

    Ce paramètre permet de suspendre ou de reprendre un canal. Ce paramètre est pris en charge aux niveaux suivants :

    • Compte

    • Schéma

    • Canal

    Au niveau du canal, le propriétaire de l’objet (ou un rôle parent dans une hiérarchie de rôles) peut définir le paramètre pour interrompre ou reprendre un canal spécifique.

    Un administrateur de compte (utilisateur avec le rôle ACCOUNTADMIN) peut définir ce paramètre au niveau du compte pour interrompre ou reprendre tous les canaux du compte. De même, un utilisateur avec le privilège MODIFY sur le schéma peut mettre en pause ou reprendre les canaux au niveau du schéma. Notez que ce contrôle de domaine plus large n’affecte que les canaux pour lesquels le paramètre n’a pas déjà été réglé à un niveau inférieur, par exemple, par le propriétaire au niveau objet.

  2. Forcez la reprise du canal (avec SYSTEM$PIPE_FORCE_RESUME).

    Cette étape permet au nouveau propriétaire d’évaluer le statut du canal et de déterminer combien de fichiers de données sont en attente d’être chargés à l’aide de la commande SYSTEM$PIPE_STATUS. Nous vous recommandons de vérifier que seuls les fichiers approuvés pour le chargement dans la table cible sont mis en file d’attente.

Modification de l’instruction COPY dans une définition de canal

Effectuez les étapes suivantes pour modifier l’instruction COPY dans une définition de canal. Par exemple, lorsque des colonnes sont ajoutées à la table cible.

Pour exécuter les commandes de cette section, le rôle actuel de l’utilisateur doit disposer du privilège OWNERSHIP sur le canal.

  1. Mettez en pause le canal (à l’aide de ALTER PIPE … SET PIPE_EXECUTION_PAUSED=true).

  2. Interrogez la fonction SYSTEM$PIPE_STATUS et vérifiez que l’état d’exécution du canal est PAUSED et que le nombre de fichiers en attente est de 0.

  3. Recréez le canal pour modifier l’instruction COPY dans la définition. Choisissez l’une des options suivantes :

  4. Mettez à nouveau le canal en pause.

  5. Passez en revue les étapes de configuration de votre service de messagerie Cloud pour vous assurer que les paramètres sont toujours exacts :

  6. Reprenez le canal (en utilisant ALTER PIPE … SET PIPE_EXECUTION_PAUSED = false).

  7. Interrogez à nouveau la fonction SYSTEM$PIPE_STATUS et vérifiez que l’état d’exécution du canal est RUNNING.

Note

Les métadonnées de chargement de fichiers sont associées à l”objet canal plutôt qu’à la table. La recréation du canal supprime l’historique des fichiers chargés. Assurez-vous que les fichiers déjà chargés par Snowpipe ne sont pas accidentellement soumis à nouveau au canal, puis chargés à nouveau dans la table cible. Pour afficher l’historique des requêtes d’une table, interrogez la fonction COPY_HISTORY.