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.
Définir ou annuler une balise sur un canal.
- Voir aussi :
Syntaxe¶
ALTER PIPE [ IF EXISTS ] <name> SET { [ objectProperties ]
[ COMMENT = '<string_literal>' ] }
ALTER PIPE <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER PIPE <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
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¶
name
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 des sauts de ligne) :
ERROR_INTEGRATION = 'integration_name'
Requis uniquement lors de la configuration de Snowpipe pour envoyer des notifications d’erreur à un service de messagerie Cloud. Spécifie le nom de l’intégration de notification utilisée pour communiquer avec le service de messagerie. Pour plus d’informations, voir Notifications d’erreur Snowpipe.
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. LeexecutionState
signalé par SYSTEM$PIPE_STATUS estPAUSED
. 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. LeexecutionState
signalé par SYSTEM$PIPE_STATUS estRUNNING
.Note
Dans l’un ou l’autre des scénarios suivants, il faut forcer un canal à reprendre en appelant la fonction SYSTEM$PIPE_FORCE_RESUME :
Transfert de la propriété du canal à un autre rôle. Cette exigence 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 fonction SYSTEM$PIPE_STATUS.
Autorisation d’un objet de canal qui exploite la messagerie Cloud pour déclencher des chargements de données (c’est-à-dire où
AUTO_INGEST = TRUE
dans la définition du canal) de devenir obsolète. Un canal est considéré comme obsolète lorsqu’il est mis en pause pendant une durée supérieure à la période de conservation limitée des messages d’événements reçus pour le canal (14 jours par défaut).
Valeur par défaut :
FALSE
(le canal est lancé par défaut)
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
Spécifie le nom de la balise et la valeur de la chaîne de la balise.
La valeur de la balise est toujours une chaîne de caractères et le nombre maximum de caractères pour la valeur de la balise est 256.
Pour plus d’informations sur la spécification des balises dans une instruction, voir Quotas de balises pour les objets et les colonnes.
COMMENT = 'string'
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
TAG tag_name [ , tag_name ... ]
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
Cette commande SQL ne peut charger que des fichiers de données qui ont été mis en zone de préparation au cours des 7 derniers jours.
Cette commande SQL vérifie l’historique de chargement à la fois pour le canal et la table cible. Par conséquent, la commande met en file d’attente uniquement les fichiers qui n’ont pas déjà été chargés en utilisant soit :
Le même canal, à condition que le propriétaire du canal n’ait pas recréé le canal après le chargement des fichiers.
Une instruction COPY INTO <table>.
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 = 'path'
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 valeurpath
estd1/
, 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 = 'start_time'
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é mis en zone de préparation).
La valeur par défaut et la valeur maximale autorisée sont de 7 jours.
Notes sur l’utilisation¶
Seul le propriétaire du canal (c’est-à-dire le rôle ayant le privilège OWNERSHIP sur le canal) peut définir ou annuler les propriétés d’un canal.
Un rôle de non-propriétaire avec les privilèges minimums suivants peut actualiser un canal (en utilisant ALTER PIPE … REFRESH …) :
Privilège
Objet
Remarques
OPERATE
Canal
USAGE
Définition de la zone de préparation d’un canal
Zones de préparation externes uniquement
READ
Définition de la zone de préparation d’un canal
Zones de préparation internes uniquement
SELECT, INSERT
Table dans la définition du canal
Un rôle non-propriétaire avec le privilège OPERATE sur le canal peut suspendre ou reprendre un canal (en utilisant ALTER PIPE … SET PIPE_EXECUTION_PAUSED = TRUE | FALSE).
Les opérations SQL sur les objets de schéma nécessitent également le privilège USAGE sur la base de données et le schéma qui contiennent l’objet.
Actuellement, il n’est pas possible de modifier les propriétés de canal suivantes à l’aide d’une instruction ALTER PIPE :
instruction COPY INTO <table>
paramètre
AWS_SNS_TOPIC
paramètre
INTEGRATION
À la place, recréez le canal à l’aide d’une instruction CREATE OR REPLACE PIPE.
Concernant les métadonnées :
Attention
Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.
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';