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 Chargement en continu à l’aide de Snowpipe.

Syntaxe

SYSTEM$PIPE_FORCE_RESUME( '<pipe_name>' , '[ STALENESS_CHECK_OVERRIDE ] [ , OWNERSHIP_TRANSFER_CHECK_OVERRIDE ]')

Arguments

nom_canal

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 nom_canal comme seule entrée est syntaxiquement équivalent à passer nom_canal 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

  • Seul le propriétaire du canal (c’est-à-dire le rôle dôté du privilège OWNERSHIP sur le canal) ou un rôle avec les autorisations minimales suivantes peuvent appeler cette fonction SQL :

    Privilèges

    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

    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.

  • nom_canal 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`);