- Catégories :
Fonctions système (Contrôle du système)
SYSTEM$PIPE_FORCE_RESUME¶
Force un canal mis en pause à reprendre ses activités à l’aide de ALTER PIPE. Cela est nécessaire dans l’un ou l’autre des scénarios suivants :
Le propriétaire du canal transfère la propriété du canal à un autre rôle pendant que celui-ci est mis en pause.
On laisse le canal mis en pause 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). Lorsque chaque notification arrive à la fin de cette période, Snowflake programme son retrait des métadonnées internes. Si le canal est repris par la suite, Snowpipe peut traiter les notifications datant de plus de 14 jours dans la mesure du possible. Snowflake ne peut garantir le traitement de ces anciennes notifications.
Ce scénario concerne uniquement les objets de canal qui exploitent la messagerie Cloud pour déclencher des chargements de données (c’est-à-dire où
AUTO_INGEST = TRUE
dans la définition du canal).
L’exécution de cette fonction reprend le canal spécifié.
Pour déterminer le nombre de fichiers en file d’attente, interrogez SYSTEM$PIPE_STATUS.
Pour plus d’informations, voir Snowpipe.
Syntaxe¶
SYSTEM$PIPE_FORCE_RESUME( '<pipe_name>' , '[ STALENESS_CHECK_OVERRIDE ] [ , OWNERSHIP_TRANSFER_CHECK_OVERRIDE ]')
Arguments¶
pipe_name
Canal devant reprendre ses activités
STALENESS_CHECK_OVERRIDE
Spécifie la reprise d’un canal 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).
Note
Cet argument concerne uniquement les objets de canal qui exploitent la messagerie Cloud pour déclencher des chargements de données.
OWNERSHIP_TRANSFER_CHECK_OVERRIDE
Spécifie de reprendre un canal après que la propriété du canal ait été transférée à un autre rôle.
Note
Pour assurer la rétrocompatibilité, passer
pipe_name
comme seule entrée est syntaxiquement équivalent à passerpipe_name
etOWNERSHIP_TRANSFER_CHECK_OVERRIDE
.
Si STALENESS_CHECK_OVERRIDE
et OWNERSHIP_TRANSFER_CHECK_OVERRIDE
sont tous deux requis, ces arguments peuvent être saisis dans n’importe quel ordre.
Notes sur l’utilisation¶
Seuls le propriétaire du canal (c’est-à-dire le rôle doté du privilège OWNERSHIP sur le canal) ou un rôle avec le privilège OPERATE sur le canal peuvent appeler cette fonction SQL :
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.
pipe_name
est une chaîne, elle doit donc être placée entre guillemets simples :Notez que le nom complet doit être placé entre guillemets simples, y compris la base de données et le schéma (si le nom est complètement qualifié), c’est-à-dire
'<bd>.<schéma>.<nom_canal>'
.Si le nom du canal est sensible à la casse ou inclut des caractères spéciaux ou des espaces, des guillemets doubles sont nécessaires pour traiter la casse / les caractères. Les guillemets doubles doivent être placés entre guillemets simples, c’est-à-dire
'"<nom_canal>"'
.
Exemples¶
Forcez la reprise d’un canal avec un nom ne respectant pas la casse :
SELECT SYSTEM$PIPE_FORCE_RESUME('mydb.myschema.mypipe');
Forcez la reprise d’un canal avec un nom respectant la casse :
SELECT SYSTEM$PIPE_FORCE_RESUME('mydb.myschema."myPipe"');
Forcez un canal obsolète à la reprise après que sa propriété a été transférée à un autre rôle :
SELECT SYSTEM$PIPE_FORCE_RESUME('mydb.myschema.stalepipe','staleness_check_override, ownership_transfer_check_override');