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 ]')
Copy

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 à passer pipe_name et OWNERSHIP_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');
Copy

Forcez la reprise d’un canal avec un nom respectant la casse :

SELECT SYSTEM$PIPE_FORCE_RESUME('mydb.myschema."myPipe"');
Copy

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');
Copy