Catégories :

Chargement et déchargement des données DDL

ALTER PIPE

Modifie un ensemble limité de propriétés pour un objet de canal existant. Prend également en charge les opérations suivantes :

  • Mettre le canal en pause.

  • Actualiser un canal, c’est-à-dire copier les fichiers de données mis en zone de préparation spécifiés dans la file d’attente d’acquisition Snowpipe pour un chargement dans la table cible.

  • Ajouter/écraser/supprimer un commentaire pour un canal.

Voir aussi :

CREATE PIPE, DESCRIBE PIPE, DROP PIPE, SHOW PIPES

Syntaxe

ALTER PIPE [ IF EXISTS ] <name> SET { [ objectProperties ]
                                      [ COMMENT = '<string_literal>' ] }

ALTER PIPE [ IF EXISTS ] <name> UNSET { <property_name> | COMMENT } [ , ... ]

ALTER PIPE [ IF EXISTS ] <name> REFRESH { [ PREFIX = '<path>' ] [ MODIFIED_AFTER = <start_time> ] }

Où :

objectProperties ::=
  PIPE_EXECUTION_PAUSED = TRUE | FALSE

Paramètres

nom

Indique l’identificateur du canal à modifier. Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.

SET ...

Spécifie une ou plusieurs propriétés à définir pour le canal (séparées par des espaces, des virgules ou de nouvelles lignes) :

PIPE_EXECUTION_PAUSED = TRUE | FALSE

Indique s’il faut interrompre ou non le fonctionnement d’un canal, généralement en vue du transfert de propriété du canal :

  • TRUE interrompt le canal. Le executionState signalé par SYSTEM$PIPE_STATUS est PAUSED. Notez que le propriétaire du canal peut continuer à soumettre des fichiers dans un canal mis en pause ; cependant, ces fichiers ne seront pas traités avant la reprise du canal.

  • FALSE reprend le canal. Le executionState signalé par SYSTEM$PIPE_STATUS est RUNNING.

    Note

    Si la propriété du canal est transférée à un autre rôle après que le canal a été mis en pause, il est nécessaire de forcer la reprise du canal avec SYSTEM$PIPE_FORCE_RESUME. Cela permet au nouveau propriétaire d’évaluer le statut du canal et de déterminer combien de fichiers sont en attente d’être chargés à l’aide de la commande SYSTEM$PIPE_STATUS.

Valeur par défaut : FALSE (le canal est lancé par défaut)

COMMENT = 'chaîne'

Ajoute un commentaire ou écrase un commentaire existant pour le canal.

UNSET ...

Spécifie une ou plusieurs propriétés à désactiver pour le canal, qui les réinitialise aux valeurs par défaut :

  • PIPE_EXECUTION_PAUSED

  • COMMENT

Vous pouvez réinitialiser plusieurs propriétés avec une seule instruction ALTER ; cependant, chaque propriété doit être séparée par une virgule. Lors de la réinitialisation d’une propriété, spécifiez seulement le nom ; si vous spécifiez une valeur pour la propriété, vous obtiendrez une erreur.

REFRESH

Copie un ensemble de fichiers de données mis en zone de préparation dans la file d’attente d’acquisition Snowpipe pour un chargement dans la table cible. Cette clause accepte un chemin d’accès facultatif et peut filtrer davantage la liste des fichiers à charger en fonction d’une heure de début spécifiée.

Note

  • Une instruction ALTER PIPE … REFRESH ne peut charger que des fichiers de données qui ont été mis en zone de préparation au cours des 7 derniers jours.

  • Ce paramètre met en file d’attente uniquement les fichiers qui n’ont pas encore été déjà chargés avec le même canal, à condition que le canal n’ait pas été recréé entre-temps.

Important

La fonctionnalité REFRESH est destinée à une utilisation à court terme pour résoudre des problèmes spécifiques lorsque Snowpipe ne parvient pas à charger un sous-ensemble de fichiers et n’est pas destiné à une utilisation normale.

PREFIX = 'chemin'

Chemin d’accès (ou préfixe) ajouté à la référence de mise en zone de préparation dans la définition du canal. Le chemin d’accès limite l’ensemble des fichiers à charger. Seuls les fichiers qui commencent par le chemin d’accès spécifié sont inclus dans le chargement de données.

Par exemple, supposons que la définition du canal fasse référence à @mystage/path1/. Si la valeur chemin est d1/, l’instruction ALTER PIPE limite les chargements aux fichiers de la zone de préparation @mystage avec le chemin d’accès /path1/d1/. Voir les exemples pour plus d’informations.

Notez que le chemin doit être entouré de guillemets simples.

MODIFIED_AFTER = 'heure_début'

Horodatage (au format ISO-8601) des fichiers de données les plus anciens à copier dans la file d’attente d’ingestion Snowpipe en fonction de la date LAST_MODIFIED (c’est-à-dire la date à laquelle un fichier a été transféré).

La valeur par défaut est de 7 jours.

Notes sur l’utilisation

Actuellement, il n’est pas possible de modifier les propriétés de canal suivantes à l’aide d’une instruction ALTER PIPE :

À la place, recréez le canal à l’aide d’une instruction CREATE OR REPLACE PIPE.

Exemples

Mettre en pause le canal mypipe :

alter pipe mypipe SET PIPE_EXECUTION_PAUSED = true;

Ajouter ou modifier le commentaire pour le canal mypipe :

alter pipe mypipe SET COMMENT = "Pipe for North American sales data";

Actualisation d’un canal

Préparer des exemples :

CREATE PIPE mypipe AS COPY INTO mytable FROM @mystage/path1/;

Charger les fichiers de données de la zone de préparation @mystage/path1/ et du chemin d’accès dans la table mytable, comme défini dans la définition du canal mypipe :

ALTER PIPE mypipe REFRESH;

Comme dans l’exemple précédent, mais en ajoutant d1 au chemin d’accès pour limiter la liste des fichiers à charger. Dans l’exemple actuel, l’instruction charge les fichiers à partir de la zone de préparation @mystage/path1/d1/ et du chemin d’accès :

ALTER PIPE mypipe REFRESH PREFIX='d1/';

Comme dans l’exemple précédent, mais en ne chargeant que les fichiers mis en zone de préparation après un horodatage spécifié :

ALTER PIPE mypipe REFRESH PREFIX='d1/' MODIFIED_AFTER='2018-07-30T13:56:46-07:00';