Automatisation de Snowpipe pour le stockage Microsoft Azure Blob

Cette rubrique fournit des instructions pour déclencher automatiquement les chargements de données Snowpipe à l’aide de messages Event Grid Microsoft Azure pour les événements de stockage d’objets Blob. Les instructions expliquent comment créer un message d’événement pour le chemin cible dans le stockage d’objets Blob où sont stockés vos fichiers de données.

Note

Cette fonctionnalité est limitée aux comptes Snowflake hébergés sur Amazon Web Services ou Microsoft Azure. Les instructions pour automatiser les chargements de données Snowpipe à l’aide des messages Event Grid sont identiques pour les comptes sur l’une ou l’autre des plateformes d’hébergement Cloud.

La prise en charge de l’automatisation des chargements de données Snowpipe depuis Azure vers des comptes Snowflake hébergés sur AWS est fournie en tant que fonctionnalité d’avant-première.

Snowflake prend actuellement en charge le stockage d’objets Blob uniquement. Snowflake prend en charge les types de comptes de stockage suivants :

  • Stockage d’objets blob

  • Data Lake Storage Gen2 — Pris en charge en tant que fonctionnalité préliminaire.

  • Usage général v2

Notez que seuls les événements Microsoft.Storage.BlobCreated déclenchent Snowpipe pour charger des fichiers. Seul l’ajout de nouveaux objets au stockage Blob déclenche ces événements. Renommer un répertoire ou un objet ne déclenche pas ces événements.

Dans ce chapitre :

Flux de processus

Les notifications d’Event Grid Microsoft Azure pour un conteneur Azure déclenchent le chargement automatique des données Snowpipe.

Le diagramme suivant montre le déroulement du processus d’intégration automatique Snowpipe :

Snowpipe Auto-ingest Process Flow
  1. Les fichiers de données sont chargés dans une zone de préparation.

  2. Un message d’événement de stockage d’objets Blob informe Snowpipe via Event Grid que les fichiers sont prêts à être chargés. Snowpipe copie les fichiers dans une file d’attente.

  3. Un entrepôt virtuel fourni par Snowflake charge les données des fichiers en file d’attente dans la table cible en fonction des paramètres définis dans le canal spécifié.

Pour obtenir des instructions, voir Automatisation de Snowpipe pour le stockage Microsoft Azure Blob.

Configuration de l’accès sécurisé au stockage Cloud

Note

Si vous avez déjà configuré un accès sécurisé au conteneur de stockage blob Azure qui stocke vos fichiers de données, vous pouvez ignorer cette section.

Cette section décrit comment configurer un objet d’intégration de stockage Snowflake pour déléguer la responsabilité de l’authentification pour le stockage dans le Cloud à une entité Gestion des identités et des accès Snowflake (IAM).

Note

Nous vous recommandons vivement cette option, qui vous évite de fournir des informations d’identification IAM lors de l’accès à un stockage dans le Cloud. Voir Configuration d’un conteneur Azure pour le chargement de données pour des options d’accès au stockage supplémentaires.

Cette section décrit comment utiliser des intégrations de stockage pour permettre à Snowflake de lire et d’écrire des données dans un conteneur Azure référencé dans une zone de préparation externe (Azure). Les intégrations sont des objets Snowflake de première classe nommés, qui évitent de transmettre des informations d’identification explicites de fournisseur Cloud, telles que des clés secrètes ou des jetons d’accès. Les objets d’intégration stockent un ID d’utilisateur Azure de gestion des identités et des accès (IAM) appelé inscription d’application. Un administrateur de votre organisation accorde à cette application les autorisations nécessaires dans le compte Azure.

Une intégration peut également spécifier des conteneurs (et des chemins facultatifs) qui limitent les emplacements que les utilisateurs peuvent spécifier lors de la création de zones de préparation externes utilisant l’intégration.

Note

La réalisation des instructions de cette section nécessite des autorisations dans Azure pour gérer les comptes de stockage. Si vous n’êtes pas un administrateur Azure, demandez à votre administrateur Azure d’effectuer ces tâches.

Dans cette section :

Étape 1 : Création d’une intégration Cloud Storage dans Snowflake

Créez une intégration de stockage à l’aide de la commande CREATE STORAGE INTEGRATION. Une intégration de stockage est un objet Snowflake qui stocke un principal de service généré pour votre stockage Cloud Azure, ainsi qu’un ensemble facultatif d’emplacements de stockage autorisés ou bloqués (c.-à-d. des conteneurs). Les administrateurs de fournisseur de Cloud de votre entreprise accordent des autorisations sur les emplacements de stockage au principal de service généré. Cette option permet aux utilisateurs d’éviter de fournir des informations d’identification lors de la création de zones de préparation ou du chargement de données.

Une seule intégration de stockage peut prendre en charge plusieurs zones de préparation (c.-à-d. Azure) externes. L’URL dans la définition de zone de préparation doit correspondre aux conteneurs Azure (et aux chemins facultatifs) spécifiés pour le paramètre STORAGE_ALLOWED_LOCATIONS.

Note

Seuls les administrateurs de compte (utilisateurs dotés du rôle ACCOUNTADMIN) ou un rôle disposant du privilège global CREATE INTEGRATION peuvent exécuter cette commande SQL.

CREATE STORAGE INTEGRATION <integration_name>
  TYPE = EXTERNAL_STAGE
  STORAGE_PROVIDER = AZURE
  ENABLED = TRUE
  AZURE_TENANT_ID = '<tenant_id>'
  STORAGE_ALLOWED_LOCATIONS = ('azure://<account>.blob.core.windows.net/<container>/<path>/', 'azure://<account>.blob.core.windows.net/<container>/<path>/')
  [ STORAGE_BLOCKED_LOCATIONS = ('azure://<account>.blob.core.windows.net/<container>/<path>/', 'azure://<account>.blob.core.windows.net/<container>/<path>/') ]

Où :

  • nom_intégration est le nom de la nouvelle intégration.

  • id_client est l’ID de votre client Office 365 auquel appartiennent les comptes de stockage autorisés et bloqués. Une intégration de stockage peut s’authentifier auprès d’un seul client. Les emplacements de stockage autorisés et bloqués doivent donc faire référence aux comptes de stockage qui appartiennent tous à ce client.

    Pour trouver votre ID de client, connectez-vous au portail Azure et cliquez sur Azure Active Directory » Properties. L” ID de client s’affiche dans le champ Directory ID.

  • conteneur est le nom d’un conteneur Azure qui stocke vos fichiers de données (par exemple, mycontainer). Les paramètres STORAGE_ALLOWED_LOCATIONS et STORAGE_BLOCKED_LOCATIONS limitent ou bloquent l’accès à ces conteneurs, respectivement, lors de la création ou de la modification de zones de préparation faisant référence à cette intégration.

  • chemin est un chemin facultatif qui peut être utilisé pour fournir un contrôle granulaire sur les répertoires logiques du conteneur.

L’exemple suivant crée une intégration qui limite explicitement les zones de préparation externes utilisant l’intégration pour faire référence à l’un des deux conteneurs et des chemins. Dans une étape ultérieure, nous allons créer une zone de préparation externe qui fait référence à l’un de ces conteneurs et chemins. Plusieurs zones de préparation externes qui utilisent cette intégration peuvent référencer les conteneurs et les chemins autorisés :

CREATE STORAGE INTEGRATION azure_int
  TYPE = EXTERNAL_STAGE
  STORAGE_PROVIDER = AZURE
  ENABLED = TRUE
  AZURE_TENANT_ID = 'a123b4c5-1234-123a-a12b-1a23b45678c9'
  STORAGE_ALLOWED_LOCATIONS = ('azure://myaccount.blob.core.windows.net/mycontainer1/mypath1/', 'azure://myaccount.blob.core.windows.net/mycontainer2/mypath2/')
  STORAGE_BLOCKED_LOCATIONS = ('azure://myaccount.blob.core.windows.net/mycontainer1/mypath1/sensitivedata/', 'azure://myaccount.blob.core.windows.net/mycontainer2/mypath2/sensitivedata/');

Étape 2 : Accorder un accès à Snowflake aux emplacements de stockage

  1. Exécutez la commande DESCRIBE INTEGRATION pour récupérer l’URL de consentement :

    DESC STORAGE INTEGRATION <integration_name>;
    

    Où :

Notez l’URL dans la colonne AZURE_CONSENT_URL, au format suivant :

https://login.microsoftonline.com/<tenant_id>/oauth2/authorize?client_id=<snowflake_application_id>

Notez également la valeur dans la colonne AZURE_MULTI_TENANT_APP_NAME. Il s’agit du nom de l’application client Snowflake créée pour votre compte. Plus loin dans ces instructions, vous devrez accorder à cette application les autorisations nécessaires pour obtenir un jeton d’accès sur vos emplacements de stockage autorisés.

  1. Dans un navigateur Web, accédez à l’URL dans la colonne AZURE_CONSENT_URL URL. La page affiche une page de demande d’autorisations Microsoft.

  2. Cliquez sur le bouton Accept. Cela permet au principal du service Azure créé pour votre compte Snowflake d’obtenir un jeton d’accès sur n’importe quelle ressource à l’intérieur de votre client. L’obtention d’un jeton d’accès ne réussit que si vous accordez au principal du service les autorisations appropriées sur le conteneur (voir l’étape suivante).

  3. Connectez-vous au portail Microsoft Azure.

  4. Accédez à Azure Services » Storage Accounts. Cliquez sur le nom du compte de stockage auquel vous accordez au principal du service Snowflake l’accès.

  5. Cliquez sur Access Control (IAM) » Add role assignment.

  6. Sélectionnez le rôle souhaité à accorder au principal du service Snowflake :

    • Storage Blob Data Reader accorde un accès en lecture uniquement. Cela permet de charger des données à partir de fichiers mis en zone de préparation dans le compte de stockage.

    • Storage Blob Data Contributor accorde un accès en lecture et en écriture. Cela permet de charger ou de décharger des données dans des fichiers stockés dans le compte de stockage.

  7. Search for the Snowflake service principal. This is the identity in the AZURE_MULTI_TENANT_APP_NAME property in the DESC STORAGE INTEGRATION output (in Step 1). Search for the string before the underscore in the AZURE_MULTI_TENANT_APP_NAME property.

    Important

    • Azure peut prendre une heure ou plus pour créer le principal de service Snowflake demandé via la page de demande Microsoft dans cette section. Si le principal de service n’est pas disponible immédiatement, nous vous recommandons d’attendre une heure ou deux, puis de relancer la recherche.

    • Si vous supprimez le principal de service, l’intégration de stockage cesse de fonctionner.

  8. Cliquez sur le bouton Save.

    Note

    Selon la documentation de Microsoft Azure, les affectations de rôles peuvent prendre jusqu’à cinq minutes pour se propager.

Configuration de Snowpipe automatisé à l’aide d’Event Grid Azure

Note

Les instructions de cette rubrique supposent qu’une table cible existe déjà dans la base de données Snowflake où vos données seront chargées.

Étape 1 : Configurer l’abonnement à Event Grid

Cette section explique comment configurer un abonnement à Event Grid pour les événements Azure Storage à l’aide d’Azure CLI. Pour plus d’informations sur les étapes décrites dans cette section, consultez les articles suivants dans la documentation Azure :

Création d’un groupe de ressources

Un sujet Event Grid fournit un point de terminaison où la source (c.-à-d. Azure Storage) envoie des événements. Un sujet est utilisé pour une collection d’événements connexes. Les sujets Event Grid sont des ressources Azure et doivent être placés dans un groupe de ressources Azure.

Exécutez la commande suivante pour créer un groupe de ressources :

az group create --name <resource_group_name> --location <location>

Où :

  • nom_groupe_ressources est le nom du nouveau groupe de ressources.

  • emplacement est l’emplacement ou la région dans la terminologie Snowflake de votre compte Azure Storage.

Activation du fournisseur de ressources Event Grid

Exécutez la commande suivante pour inscrire le fournisseur de ressources d’Event Grid. Notez que cette étape n’est requise que si vous n’avez pas déjà utilisé Event Grid avec votre compte Azure :

az provider register --namespace Microsoft.EventGrid
az provider show --namespace Microsoft.EventGrid --query "registrationState"

Création d’un compte de stockage pour les fichiers de données

Exécutez la commande suivante pour créer un compte de stockage pour stocker vos fichiers de données. Ce compte doit être l’un des suivants :

  • Stockage d’objets blob

  • Data Lake Storage Gen2 — Pris en charge en tant que fonctionnalité préliminaire.

  • Usage général v2

Seuls ces types de comptes prennent en charge les messages d’événements.

Note

Si vous possédez déjà l’un de ces types de comptes, vous pouvez utiliser ce compte à la place.

Par exemple, créez un compte de stockage Blob :

az storage account create --resource-group <resource_group_name> --name <storage_account_name> --sku Standard_LRS --location <location> --access-tier Hot

Où :

  • nom_groupe_ressources est le nom du groupe de ressources que vous avez créé dans Création d’un groupe de ressources.

  • nom_compte_stockage est le nom du nouveau compte de stockage.

  • emplacement correspond à l’emplacement de votre compte Azure Storage.

Création d’un compte de stockage pour la file d’attente de stockage

Exécutez la commande suivante pour créer un compte de stockage pour héberger votre file d’attente de stockage. Ce compte doit être un compte GPv2, car seul ce type de compte prend en charge les messages d’événement dans une file d’attente de stockage.

Note

Si vous avez déjà un compte GPv2, vous pouvez utiliser ce compte pour héberger à la fois vos fichiers de données et votre file d’attente de stockage.

Par exemple, créez un compte GPv2 :

az storage account create --resource-group <resource_group_name> --name <storage_account_name> --sku Standard_LRS --location <location>

Où :

  • nom_groupe_ressources est le nom du groupe de ressources que vous avez créé dans Création d’un groupe de ressources.

  • nom_compte_stockage est le nom du nouveau compte de stockage.

  • emplacement correspond à l’emplacement de votre compte Azure Storage.

Création d’une file d’attente de stockage

Une seule file d’attente Azure Queue Storage peut collecter les messages d’événement pour de nombreux abonnements à Event Grid. Une seule file d’attente de stockage peut être partagée entre plusieurs comptes de stockage.

Pour optimiser les performances, Snowflake recommande de créer une seule file d’attente de stockage afin de prendre en charge tous vos abonnements liés à Snowflake. Snowpipe achemine les messages vers le bon canal même lorsque ceux-ci sont relayés par la même file d’attente de stockage.

Note

Snowflake limite à 10 le nombre de files d’attente de stockage pouvant être utilisées pour collecter les messages d’événement Snowpipe.

Exécutez la commande suivante pour créer une file d’attente de stockage. Une file d’attente de stockage stocke un ensemble de messages, en l’occurrence des messages d’événement d’Event Grid :

az storage queue create --name <storage_queue_name> --account-name <storage_account_name>

Où :

Exportation des IDs de compte de stockage et de file d’attente pour référence

Exécutez les commandes suivantes pour définir les variables d’environnement des IDs de compte de stockage et de file d’attente qui seront demandés ultérieurement dans ces instructions :

  • Linux ou macOS :

    export storageid=$(az storage account show --name <data_storage_account_name> --resource-group <resource_group_name> --query id --output tsv)
    export queuestorageid=$(az storage account show --name <queue_storage_account_name> --resource-group <resource_group_name> --query id --output tsv)
    export queueid="$queuestorageid/queueservices/default/queues/<storage_queue_name>"
    
  • Windows :

    set storageid=$(az storage account show --name <data_storage_account_name> --resource-group <resource_group_name> --query id --output tsv)
    set queuestorageid=$(az storage account show --name <queue_storage_account_name> --resource-group <resource_group_name> --query id --output tsv)
    set queueid="%queuestorageid%/queueservices/default/queues/<storage_queue_name>"
    

Où :

Installation de l’extension Event Grid

Exécutez la commande suivante pour installer l’extension Event Grid pour Azure CLI :

az extension add --name eventgrid

Création de l’abonnement à Event Grid

Exécutez la commande suivante pour créer l’abonnement à Event Grid. L’abonnement à un sujet indique à Event Grid quels événements doivent être suivis :

  • Linux ou macOS :

    az eventgrid event-subscription create \
    --source-resource-id $storageid \
    --name <subscription_name> --endpoint-type storagequeue \
    --endpoint $queueid
    
  • Windows :

    az eventgrid event-subscription create \
    --source-resource-id %storageid% \
    --name <subscription_name> --endpoint-type storagequeue \
    --endpoint %queueid%
    

Où :

Étape 2 : Créer une intégration de notification dans Snowflake

Une intégration de notification est un objet Snowflake qui fournit une interface entre Snowflake et un service de mise en file d’attente de messages dans le Cloud tiers, tel que Azure Event Grid.

Note

Une file d’attente Azure Queue Storage prend en charge une intégration de notification unique. Le fait de référencer une file d’attente de stockage unique dans plusieurs intégrations de notification peut entraîner des données manquantes dans les tables cibles, car les notifications d’événements sont réparties entre les intégrations de notification.

Récupération de l’URL de la file d’attente de stockage et de l’ID du client

  1. Connectez-vous au portail Microsoft Azure.

  2. Accédez à Storage account » Queue service » Queues. Enregistrez l’URL de la file d’attente que vous avez créée dans Création d’une file d’attente de stockage pour référence ultérieure. L’URL a le format suivant :

    https://<storage_account_name>.queue.core.windows.net/<storage_queue_name>
    
  3. Accédez à Azure Active Directory » Properties. Enregistrez la valeur Directory ID pour référence plus tard. L’ID de répertoire , ou ID de client, est nécessaire pour générer l’URL de consentement qui accorde à Snowflake l’accès à l’abonnement à Event Grid.

Création de l’intégration des notifications

Créez une intégration de notification à l’aide de la commande CREATE NOTIFICATION INTEGRATION.

Note

Seuls les administrateurs de compte (utilisateurs dotés du rôle ACCOUNTADMIN) ou un rôle disposant du privilège global CREATE INTEGRATION peuvent exécuter cette commande SQL.

CREATE NOTIFICATION INTEGRATION <integration_name>
  ENABLED = true
  TYPE = QUEUE
  NOTIFICATION_PROVIDER = AZURE_STORAGE_QUEUE
  AZURE_STORAGE_QUEUE_PRIMARY_URI = '<queue_URL>'
  AZURE_TENANT_ID = '<directory_ID>';

Où :

Accorder l’accès de Snowflake à la file d’attente de stockage

  1. Exécutez la commande DESCRIBE INTEGRATION pour récupérer l’URL de consentement :

    DESC NOTIFICATION INTEGRATION <integration_name>;
    

    Où :

  2. Notez l’URL dans la colonne AZURE_CONSENT_URL, au format suivant :

    https://login.microsoftonline.com/<tenant_id>/oauth2/authorize?client_id=<snowflake_application_id>
    
  3. Accédez à l’URL dans un navigateur Web. La page affiche une page de demande d’autorisations Microsoft.

  4. Cliquez sur le bouton Accept pour enregistrer Snowflake dans Active Directory.

  5. Connectez-vous au portail Microsoft Azure.

  6. Accédez à Azure Active Directory » Enterprise applications. Vérifiez que l’application Snowflake est répertoriée.

    Important

    Si vous supprimez l’application Snowflake, l’intégration des notifications cesse de fonctionner.

  7. Accédez à Queues » nom_file_stockage, où nom_file_stockage est le nom de la file d’attente de stockage que vous avez créée dans Création d’une file d’attente de stockage.

  8. Cliquez sur Access Control (IAM) » Add role assignment.

  9. Recherchez l’application Snowflake.

  10. Accordez à l’application Snowflake les autorisations suivantes :

    • Role: Contributeur de données de la file de stockage (aperçu)

    • Assign access to: Principal de service, groupe ou utilisateur AD Azure

    • Select: id_application_snowflake

    L’application Snowflake devrait maintenant figurer dans la liste sous Storage Queue Data Contributor (dans la même boîte de dialogue).

Étape 3 : créer une zone de préparation (si nécessaire)

Créez une zone de préparation externe qui fait référence à votre conteneur Azure à l’aide de la commande CREATE STAGE. Snowpipe va chercher vos fichiers de données dans la zone de préparation et les mettre temporairement en file d’attente avant de les charger dans votre table cible.

Vous pouvez aussi utiliser une zone de préparation externe.

Note

Pour configurer un accès sécurisé à l’emplacement de stockage Cloud, voir Configuration de l’accès sécurisé au stockage Cloud (dans cette rubrique).

L’exemple suivant crée une zone de préparation nommée mystage dans le schéma actif de la session utilisateur. L’URL de stockage Cloud inclut le chemin load/files. La zone de préparation fait référence à une intégration de stockage nommée myint.

USE SCHEMA snowpipe_db.public;

CREATE STAGE mystage
  URL = 'azure://myaccount.blob.core.windows.net/mycontainer/load/files/'
  STORAGE_INTEGRATION = myint;

Note

Utilisez le point de terminaison blob.core.windows.net pour tous les types de comptes de stockage Azure Blob pris en charge, dont Data Lake Storage Gen2.

Étape 4 : Créer un canal avec l’intégration automatique activée

Créez un canal à l’aide de la commande CREATE PIPE . Le canal définit l’instruction COPY INTO <table> utilisée par Snowpipe pour charger les données de la file d’attente d’acquisition dans la table cible.

Par exemple, créez un canal dans le schéma snowpipe_db.public qui charge toutes les données des fichiers de la zone de préparation mystage dans la table mytable :

create pipe snowpipe_db.public.mypipe
  auto_ingest = true
  integration = '<integration_name>'
  as
  copy into snowpipe_db.public.mytable
  from @snowpipe_db.public.mystage
  file_format = (type = 'JSON');

Où :

Important

  • Le nom de l’intégration doit être saisi en majuscules.

  • Comparez la référence de la zone de préparation dans la définition de canal avec les canaux existants. Vérifiez que les chemins de répertoire du même conteneur Azure ne se chevauchent pas. Sinon, plusieurs canaux pourraient charger le même ensemble de fichiers de données plusieurs fois dans une ou plusieurs tables cibles. Cela peut se produire, par exemple, lorsque plusieurs zones de préparation font référence au même conteneur Azure avec différents niveaux de granularité, tels que azure://myaccount.blob.core.windows.net/mycontainer/path1 et azure://myaccount.blob.core.windows.net/mycontainer/path1/path2. Dans ce cas d’utilisation, si les fichiers sont stockés dans azure://myaccount.blob.core.windows.net/mycontainer/path1/path2, les canaux pour les deux zones de préparation chargeraient une copie des fichiers.

    Cela diffère de la configuration manuelle de Snowpipe (avec l’intégration automatique désactivée), qui oblige les utilisateurs à soumettre un ensemble de fichiers nommé à une API REST pour mettre en file d’attente les fichiers à charger. Lorsque l’intégration automatique est activée, chaque canal reçoit une liste de fichiers générée à partir des messages d’Event Grid. Des précautions supplémentaires sont nécessaires pour éviter la duplication des données.

Note

Le clonage d’une base de données ou d’un schéma clone tous les objets, y compris les canaux qui font référence à des zones de préparation externes, dans la base de données ou le schéma source. Lorsqu’un fichier de données est créé à un emplacement de zone de stockage (par exemple, un conteneur de stockage Blob), une copie de la notification est envoyée à chaque canal correspondant à l’emplacement de la zone de préparation. Cela entraîne le comportement suivant :

  • Si une table est pleinement qualifiée dans l’instruction COPY de la définition de canal (sous la forme nom_bdd.nom_schéma.nom_table ou nom_schéma.nom_table), alors Snowpipe charge les données dupliquées dans la table source (c’est-à-dire base de données.schéma.table de l’instruction COPY) pour chaque canal.

  • Si une table n’est pas pleinement qualifiée dans la définition du canal, alors Snowpipe charge les données dans la même table (par exemple, mytable) dans les bases de données/schémas sources et clonés.

Snowpipe avec l’intégration automatique est maintenant configuré !

Lorsque de nouveaux fichiers de données sont ajoutés au conteneur Azure, le message d’événement indique à Snowpipe de les charger dans la table cible définie dans le canal.

Étape 5 : Charger des fichiers historiques

Pour charger les retards de traitement des fichiers de données qui existaient dans la zone de préparation externe avant que les messages d’Event Grid aient été configurés, exécutez une instruction ALTER PIPE … REFRESH .

SYSTEM$PIPE_STATUS Sortie

La fonction SYSTEM$PIPE_STATUS récupère une représentation JSON du statut actuel d’un canal.

Pour les canaux avec AUTO_INGEST défini sur TRUE, la fonction renvoie un objet JSON contenant les paires nom/valeur suivantes (si applicable au statut actuel du canal) :

{« executionState »: »<valeur> », »oldestFileTimestamp »:<valeur>, »pendingFileCount »:<valeur>, »notificationChannelName »: »<valeur> », »numOutstandingMessagesOnChannel »:<valeur>, »lastReceivedMessageTimestamp »: »<valeur> », »lastForwardedMessageTimestamp »: »<valeur> », »error »:<valeur>, »fault »:<valeur>}

Où :

executionState

État d’exécution actuel du canal ; pourrait être l’un des éléments suivants :

  • RUNNING (c’est-à-dire que tout est normal ; Snowflake peut ou non traiter activement les fichiers de ce canal)

  • STOPPED_FEATURE_DISABLED

  • STOPPED_STAGE_DROPPED

  • STOPPED_FILE_FORMAT_DROPPED

  • STOPPED_MISSING_PIPE

  • STOPPED_MISSING_TABLE

  • STALLED_COMPILATION_ERROR

  • STALLED_INITIALIZATION_ERROR

  • STALLED_EXECUTION_ERROR

  • STALLED_INTERNAL_ERROR

  • PAUSED

  • PAUSED_BY_SNOWFLAKE_ADMIN

  • PAUSED_BY_ACCOUNT_ADMIN

oldestFileTimestamp

Le plus ancien horodatage parmi les fichiers de données en file d’attente (le cas échéant), l’horodatage étant défini lors de l’ajout du fichier à la file d’attente.

pendingFileCount

Nombre de fichiers en cours de traitement par le canal. Si le canal est mis en pause, cette valeur diminue à mesure que tous les fichiers en file d’attente avant que le canal a été mis en pause sont traités. Lorsque cette valeur est 0, aucun fichier n’est en file d’attente pour ce canal ou le canal est effectivement mis en pause.

notificationChannelName

File d’attente de stockage Azure associée au canal.

numOutstandingMessagesOnChannel

Nombre de messages dans la file d’attente de stockage qui ont été mis en file d’attente mais pas encore reçus.

lastReceivedMessageTimestamp

Horodatage du dernier message reçu de la file d’attente de stockage. Notez que ce message peut ne pas s’appliquer au canal spécifique, par exemple si le chemin/préfixe associé au message ne correspond pas au chemin/préfixe de la définition du canal. De plus, seuls les messages déclenchés par des objets de données créés sont consommés par les canaux d’intégration automatique.

lastForwardedMessageTimestamp

Horodatage du dernier message d’événement « créer un objet » avec un chemin/préfixe correspondant qui a été transmis au canal.

error

Message d’erreur généré lors de la dernière compilation du canal en vue de son exécution (le cas échéant) ; souvent causé par des problèmes d’accès aux objets requis (par exemple, une table, une zone de préparation, le format de fichier) en raison de problèmes d’autorisation ou d’objets perdus.

fault

La plus récente erreur interne liée au processus Snowflake (le cas échéant). Utilisé principalement par Snowflake à des fins de débogage.

DDL d’intégration de notification

Pour faciliter la création et la gestion des intégrations de notification, Snowflake fournit l’ensemble suivant de commandes spéciales DDL :