Tutoriel : Exemple de connecteur Java Snowflake Native SDK for Connectors¶
Introduction¶
Bienvenue dans notre tutoriel sur un exemple de connecteur conçu à l’aide de Snowflake Native SDK for Connectors. Ce guide vous montrera comment concevoir, déployer, installer et configurer un exemple de connecteur.
L’application proposée à titre d’exemple permet d’ingérer les données de GitHub en se connectant à l’API GitHub pour extraire des informations sur les problèmes à partir des référentiels spécifiés.
Dans ce tutoriel, vous apprendrez à :
Concevoir un exemple de connecteur à partir de sources
Déployer un nouveau paquet d’application et une nouvelle version
Installer une nouvelle instance d’application
Configurer l’instance du connecteur pour ingérer des données
Conditions préalables¶
Avant de commencer, assurez-vous que vous remplissez les conditions suivantes :
Connaissance de base de Java
Connaissances de base de Snowflake Native Apps
Connaissance de base de l’UIStreamlit
Accès à un compte Snowflake avec un rôle
ACCOUNTADMIN
Compte GitHub, qui permet de créer des applications GitHub
MacOS ou Linux pour créer le projet et exécuter les scripts de déploiement
Préparer votre environnement local¶
Avant de poursuivre, vous devez vous assurer que tous les logiciels nécessaires sont installés sur votre machine et cloner le référentiel du connecteur d’exemple.
Installation de Java¶
Snowflake Native SDK for Connectors exige la version 11 ou supérieure de Java LTS (Long-Term Support). Si la version minimale requise de Java n’est pas installée sur votre machine, vous devez installer soit Oracle Java, soit OpenJDK.
Oracle Java¶
La dernière version de LTS de JDK peut être téléchargée et utilisée gratuitement sous Oracle NFTC. Pour les instructions de téléchargement et d’installation, consultez la page Oracle.
OpenJDK¶
OpenJDK est une implémentation open-source de Java. Pour le téléchargement et les instructions d’installation, consultez openjdk.org et jdk.java.net.
Vous pouvez également utiliser une version tierce OpenJDK, telle que Eclipse Temurin ou Amazon Corretto.
Clonage du référentiel¶
Clonez le référentiel connectors-native-sdk sur votre machine.
Configuration de la CLI Snowflake¶
L’outil de la CLI Snowflake est une exigence pour concevoir, déployer et installer le connecteur. Si vous n’avez pas la CLI Snowflake sur votre machine - installez-la selon les instructions disponibles ici.
Une fois l’outil installé, vous devez configurer une connexion à Snowflake dans votre fichier de configuration.
Si aucune connexion n’est configurée, créez-en une nouvelle nommée native_sdk_connection
. Vous trouverez un exemple de connexion dans le fichier deployment/snowflake.toml
.
Si vous avez déjà configuré une connexion et que vous souhaitez l’utiliser avec le connecteur - utilisez son nom au lieu de native_sdk_connection
chaque fois que cette connexion est utilisée dans ce tutoriel.
Structure du projet¶
Le projet Snowflake Native SDK for Connectors se compose de deux éléments principaux.
Connectors Native SDK Java¶
Le répertoire connectors-native-sdk-java
contient tout le code Java de Snowflake Native SDK for Connectors, ainsi que des tests d’unité et d’intégration pour les composants SDK. En raison de la nature des Native Apps à l’intérieur de Snowflake, cela signifie non seulement du code Java, mais aussi du code SQL, qui est nécessaire pour créer une application fonctionnelle. Les définitions des objets de la base de données se trouvent dans le répertoire src/main/resources
. Ces fichiers sont utilisés lors de la création d’une application pour personnaliser les objets qui seront disponibles dans l’application. Dans l’exemple du connecteur, nous utilisons le fichier all.sql
, qui crée des objets pour toutes les fonctions disponibles. Ce fichier sera exécuté au cours du processus d’installation de l’instance d’application.
Connectors Native SDK Test Java¶
Le répertoire connectors-native-sdk-test-java
contient le code source d’une bibliothèque d’aide utilisée dans les tests unitaires, par exemple des objets utilisés pour simuler des composants particuliers, des assertions personnalisées, etc. Ces fichiers ne font pas partie de l’application du connecteur.
Exemple de connecteur Java GitHub¶
L’exemple de connecteur proprement dit se trouve dans le répertoire examples/connectors-native-sdk-example-java-github-connector
. Le répertoire app/
contient tous les fichiers nécessaires à l’exécution de la Native App :
Le répertoire
app/streamlit/
contient les fichiers sources nécessaires à l’exécution de la version Streamlit UI du connecteur.Le fichier
setup.sql
est exécuté lors de l’installation de l’application et est chargé de créer les objets nécessaires à la base de données. Ce fichier exécutera le fichierall.sql
mentionné plus haut, ainsi que du code SQL personnalisé.Le fichier
manifest.yml
est le manifeste de la Native App. Il est exigé pour créer un paquet d’application, puis l’instance d’application elle-même. Ce fichier spécifie les propriétés de l’application, ainsi que les autorisations nécessaires à l’application.
En outre, le répertoire examples/connectors-native-sdk-example-java-github-connector
contient le sous-répertoire src/
, qui contient la logique du connecteur personnalisé, telle que l’implémentation des classes requises et les personnalisations des composants par défaut de SDK.
Modèle du Connectors Native SDK¶
Un projet Java Gradle modèle qui utilise Snowflake Native SDK for Connectors comme dépendance pour vous aider à créer rapidement un nouveau connecteur. Pour en savoir plus, consultez Tutoriel : Modèle de connecteur Java Snowflake Native SDK for Connectors.
Conception, déploiement et installation¶
Les sections suivantes vous montreront comment créer, déployer et installer l’exemple de connecteur.
Créer le connecteur¶
La conception d’un connecteur créé à l’aide de Snowflake Native SDK for Connectors est un peu différente de celle d’une application Java classique. Il y a d’autres choses à faire que de concevoir les archives .jar à partir des sources. La conception de l’application comprend les étapes suivantes :
Copier des composants internes personnalisés dans le répertoire de conception
Copier des composants SDK dans le répertoire de conception
Copier des composants internes¶
Cette étape permet de créer le fichier .jar du connecteur et de le copier (avec les fichiers UI, manifest et setup) dans le répertoire sf_build
.
Pour exécuter cette étape, exécutez la commande : ./gradlew copyInternalComponents
.
Copier les composants SDK¶
Cette étape copie le fichier .jar SDK (ajouté en tant que dépendance au module Gradle du connecteur) dans le répertoire sf_build
et extrait les fichiers .sql regroupés de l’archive .jar.
Ces fichiers .sql permettent de personnaliser les objets fournis qui seront créés lors de l’installation de l’application. Pour les premiers utilisateurs, la personnalisation n’est pas recommandée, car l’omission d’objets peut entraîner l’échec de certaines fonctionnalités si elle n’est pas effectuée correctement. L’application de l’exemple de connecteur utilise le fichier all.sql
, qui crée tous les objets SDK recommandés.
Pour exécuter cette étape, exécutez la commande : ./gradlew copySdkComponents
.
Déployer le connecteur¶
Pour déployer une Native App, un paquet d’application doit être créé dans Snowflake. Ensuite, tous les fichiers du répertoire sf_build
doivent être téléchargés vers Snowflake.
Veuillez noter qu’à des fins de développement, la création de versions est facultative. Une instance d’application peut être créée directement à partir de fichiers en zone de préparation. Cette approche vous permet de voir les modifications apportées à la plupart des fichiers du connecteur sans avoir à recréer la version et l’instance de l’application.
Les opérations suivantes seront effectuées :
Créer un nouveau paquet d’application, s’il n’existe pas déjà
Créer un schéma et une zone de préparation des fichiers à l’intérieur du paquet
Télécharger les fichiers du répertoire
sf_build
vers la zone de préparation (cette étape peut prendre un certain temps)
Pour déployer le connecteur, exécutez la commande : snow app deploy --connection=native_sdk_connection
.
Pour plus d’informations sur la commande snow app deploy
, consultez snow app deploy.
Le paquet d’application créé sera désormais visible dans l’onglet App packages
, dans la catégorie Data products
, dans le compte Snowflake UI de votre compte.

Installer le connecteur¶
L’installation de l’application est la dernière étape du processus. Il crée une application à partir du paquet d’application créé précédemment.
Pour installer le connecteur, exécutez la commande : snow app run --connection=native_sdk_connection
.
Pour plus d’informations sur la commande snow app run
, consultez snow app run.
L’application installée sera désormais visible dans l’onglet Installed apps
, dans la catégorie Data products
, dans le compte Snowflake UI de votre compte.

Mettre à jour les fichiers des connecteurs¶
Si, à un moment donné, vous souhaitez modifier l’un des fichiers du connecteur, vous pouvez facilement télécharger les fichiers modifiés dans la zone de préparation du paquet d’application. La commande de téléchargement dépend des fichiers qui ont été mis à jour.
Avant d’exécuter les commandes de mise à jour, vous devez copier les nouveaux fichiers de votre connecteur dans le répertoire sf_build
en exécutant la commande : ./gradlew copyInternalComponents
Fichiers UI .py ou fichiers .java du connecteur¶
Utilisez la commande snow app deploy --connection=native_sdk_connection
, l’instance actuelle de l’application utilisera les nouveaux fichiers sans réinstallation.
Fichiers setup.sql ou manifest.yml¶
Utilisez la commande snow app run --connection=native_sdk_connection
, l’instance de l’application en cours sera réinstallée après le téléchargement des nouveaux fichiers dans la zone de préparation.
Débit du connecteur¶
Avant de passer à la configuration du connecteur et à l’ingestion des données, il convient de jeter un coup d’œil rapide sur le fonctionnement du connecteur. Vous pouvez voir ci-dessous toutes les étapes qui seront réalisées dans les prochaines étapes de ce tutoriel. Le point de départ consistera à remplir les conditions préalables et à parcourir l’assistant.
La zone de préparation de l’assistant du connecteur guide les utilisateurs à travers toutes les configurations requises par le connecteur. La zone de préparation d’utilisation quotidienne permet à l’utilisateur de voir les statistiques, de configurer les référentiels pour l’ingestion et de mettre en pause/reprendre le connecteur.
Assistant de configuration¶
Après l’ouverture de l’application, la page de l’assistant UI s’ouvre. Le connecteur a besoin de certaines informations fournies par l’utilisateur avant de pouvoir commencer à ingérer des données. L’assistant vous guidera à travers toutes les étapes requises dans l’application elle-même, mais aussi sur l’ensemble du compte Snowflake et parfois même sur le système externe qui sera la source des données ingérées, dans ce cas GitHub. Une fois toutes ces étapes terminées - le connecteur sera prêt à commencer à ingérer les données.
Conditions préalables¶
La première étape de l’assistant concerne les conditions préalables. Cette étape vous fournira une liste des éléments à préparer avant de configurer le connecteur. Il n’est pas nécessaire de remplir les conditions préalables, mais il est recommandé de le faire pour faciliter la configuration ultérieure.
Dans le cas de l’exemple du connecteur GitHub, deux choses doivent être prises en compte avant d’aller plus loin :
Préparation d’un compte GitHub
Confirmation de l’accès aux référentiels GitHub que vous souhaitez ingérer

Configuration du connecteur¶
L’étape suivante de l’assistant est la configuration du connecteur. Cette étape permet à l’utilisateur de :
Garantir les privilèges de l’application, qui sont demandés à l’aide de l”autorisation Native Apps SDK
Choisir un entrepôt qui sera référencé lors de la planification des tâches d’ingestion
Choisir la base de données et le schéma de destination pour les données qui seront ingérées
Privilèges¶
L’opération de l’application nécessite deux autorisations au niveau du compte : CREATE DATABASE
et EXECUTE TASK
.
Le premier privilège est nécessaire pour créer une base de données de destination pour les données ingérées. Cette base de données doit être créée en dehors de l’application, de manière à ce que les données ingérées restent intactes en cas de désinstallation de l’application. Cependant, cet exemple ne prend pas en charge cette fonction, une nouvelle base de données est toujours créée.
Le second privilège est nécessaire pour planifier les tâches périodiques qui récupèrent les données sur GitHub et les enregistrent dans la base de données de destination.
Ces privilèges peuvent être accordés via l’onglet sécurité ou en appuyant sur le bouton Grant privileges
dans l’écran de configuration du connecteur. Ce dernier fera apparaître une fenêtre contextuelle sur l’écran.

Référence de l’entrepôt¶
Le connecteur nécessite un entrepôt pour exécuter et planifier les tâches d’ingestion. L’application utilisera l’entrepôt par l’intermédiaire d’une référence. La référence de l’entrepôt est définie dans le fichier manifest.yml
:
references:
- WAREHOUSE_REFERENCE:
label: "Warehouse used for ingestion"
description: "Warehouse which will be used to schedule ingestion tasks"
privileges: [USAGE]
object_type: WAREHOUSE
register_callback: PUBLIC.REGISTER_REFERENCE
La référence peut être définie en utilisant l’onglet sécurité, de la même manière que pour les privilèges ci-dessus, ou en appuyant sur le bouton Choose warehouse
.

Base de données et schéma de destination¶
Comme indiqué précédemment, le connecteur a besoin d’une base de données pour stocker les données ingérées. Cette base de données sera créée, lors d’une étape ultérieure, avec le schéma spécifié par l’utilisateur. Le nom de la base de données est laissé à l’appréciation de l’utilisateur, à condition que la base de données fournie n’existe pas déjà.
L’écran de configuration du connecteur, une fois rempli, ressemble à celui-ci :

Configuration de connexion¶
L’étape suivante de l’assistant est la configuration de la connexion. Cette étape permet à l’utilisateur d’établir la connexion avec une source de données externe. Nous vous recommandons d’utiliser l’authentification OAuth2 dans la mesure du possible, au lieu d’utiliser des jetons utilisateur/mot de passe ou des jetons en texte clair.
GitHub prend en charge actuellement deux modes d’authentification OAuth2 - applications OAuth et applications GitHub. Les applications OAuth sont un peu plus faciles à paramétrer et à utiliser, mais elles n’offrent pas le même niveau de granularité dans le contrôle des autorisations. Nous recommandons l’utilisation d’une application GitHub pour cet exemple, mais si vous souhaitez utiliser une application OAuth, le connecteur fonctionnera toujours comme prévu.
Configuration d’autorisation SDK¶
L’authentification OAuth2 nécessite la création d’une intégration de sécurité, d’un secret et d’une intégration d’accès externe dans le compte de l’utilisateur. Notre connecteur utilise l’autorisation Native Apps SDK pour requérir la création de ces objets.
Les références pour l’intégration de l’accès externe et le secret, qui sont nécessaires au connecteur, sont définies dans le fichier manifest.yml
:
references:
- GITHUB_EAI_REFERENCE:
label: "GitHub API access integration"
description: "External access integration that will enable connection to the GitHub API using OAuth2"
privileges: [USAGE]
object_type: "EXTERNAL ACCESS INTEGRATION"
register_callback: PUBLIC.REGISTER_REFERENCE
configuration_callback: PUBLIC.GET_REFERENCE_CONFIG
- GITHUB_SECRET_REFERENCE:
label: "GitHub API secret"
description: "Secret that will enable connection to the GitHub API using OAuth2"
privileges: [READ]
object_type: SECRET
register_callback: PUBLIC.REGISTER_REFERENCE
configuration_callback: PUBLIC.GET_REFERENCE_CONFIG
En outre, une procédure spéciale doit être ajoutée dans le fichier setup.sql
. Elle est référencée dans la propriété configuration_callback
pour chacune des références présentées ci-dessus :
CREATE OR REPLACE PROCEDURE PUBLIC.GET_REFERENCE_CONFIG(ref_name STRING)
RETURNS STRING
LANGUAGE SQL
AS
BEGIN
CASE (ref_name)
WHEN 'GITHUB_EAI_REFERENCE' THEN
RETURN OBJECT_CONSTRUCT(
'type', 'CONFIGURATION',
'payload', OBJECT_CONSTRUCT(
'host_ports', ARRAY_CONSTRUCT('api.github.com'),
'allowed_secrets', 'LIST',
'secret_references', ARRAY_CONSTRUCT('GITHUB_SECRET_REFERENCE')
)
)::STRING;
WHEN 'GITHUB_SECRET_REFERENCE' THEN
RETURN OBJECT_CONSTRUCT(
'type', 'CONFIGURATION',
'payload', OBJECT_CONSTRUCT(
'type', 'OAUTH2',
'security_integration', OBJECT_CONSTRUCT(
'oauth_scopes', ARRAY_CONSTRUCT('repo'),
'oauth_token_endpoint', 'https://github.com/login/oauth/access_token',
'oauth_authorization_endpoint', 'https://github.com/login/oauth/authorize'
)
)
)::STRING;
ELSE
RETURN '';
END CASE;
END;
Pour la référence d’intégration de l’accès externe, la procédure prévoit :
host_ports
- les noms d’hôte de la source de données externe à laquelle il sera accédé lors de l’ingestionsecret_references
- tableau de noms de références aux secrets OAuthallowed_secrets
-LIST
qui indique à l’autorisation SDK d’utiliser les secrets spécifiés dans le champsecret_references
Pour la référence du secret, la procédure prévoit :
type
-OAUTH2
dans le cas de notre secretsecurity_integration
- les propriétés de l’intégration de sécurité créée :oauth_scopes
- une liste des champs d’application OAuth requis par le connecteur (si vous utilisez une application GitHub - ce champ est facultatif)oauth_token_endpoint
- point de terminaison à partir duquel le jeton d’actualisation et d’accès sera acquisoauth_authorization_endpoint
- point de terminaison auquel la requête d’autorisation sera envoyée
Configuration de l’application GitHub¶
L’étape suivante consiste à configurer une application GitHub dans le compte de l’utilisateur. Cette application sera utilisée pour accorder un accès limité au compte, afin que les données puissent être ingérées.
La première étape consiste à appuyer sur le bouton Request access
du connecteur UI.

Le premier écran vous permet de passer en revue les points de terminaison pour lesquels la connectivité externe sera autorisée.

Après avoir appuyé sur Next
- vous verrez un deuxième écran. Sélectionnez OAuth2
pour créer une intégration et un secret, et copiez l’URL de redirection fournie - elle contiendra le nom de votre organisation et la région de votre compte.

Allez ensuite sur la page des paramètres de votre compte GitHub, puis dans Developer settings > GitHub Apps
et appuyez sur le bouton New GitHub App
:
Saisissez le nom et l’URL de la page d’accueil de votre application
Collez l’URL de redirection que vous avez copiée dans le champ
Callback URL
Assurez-vous que l’option
Expire user authorization tokens
est sélectionnéeAssurez-vous que l’adresse
Request user authorization (OAuth) during installation
n’est pas sélectionnéeSi vous n’en avez pas besoin - désélectionnez l’option
Active
dans la sectionWebhook
Sélectionnez les autorisations nécessaires au fonctionnement du connecteur :
Repository permissions > Issues
avec l’accèsRead-only
Repository permissions > Metadata
avec l’accèsRead-only
Si l’application ne sera utilisée que par vous, avec cet exemple de connecteur - il est préférable de sélectionner
Only on this account
dans la section d’accès de l’installation
Une fois l’application créée, cliquez sur l’option Install app
dans la barre latérale gauche et installez l’application dans votre compte. Vous pouvez choisir les référentiels auxquels l’application (et par extension le connecteur) pourra accéder. Sans cette installation, le connecteur ne pourra accéder qu’aux référentiels publics.
Configuration de l’intégration OAuth¶
Après l’installation, retournez à votre application GitHub et générez un nouveau secret client. Veillez à le copier immédiatement, car il ne s’affichera plus. Collez le secret du client dans la fenêtre contextuelle de configuration OAuth de votre connecteur. Enfin, copiez l’ID client (et non l’ID de l’application) de votre application et collez-le également dans la fenêtre contextuelle de configuration OAuth de votre connecteur.

Après avoir appuyé sur Connect
, une fenêtre GitHub s’ouvre, vous demandant l’autorisation d’utiliser l’application sur votre compte GitHub. Après autorisation - vous serez automatiquement redirigé vers le connecteur UI. Une fois l’autorisation réussie (cela peut prendre quelques secondes pour terminer et fermer la fenêtre contextuelle), la page sera remplie avec les IDs de l’intégration de l’accès externe et des références secrètes.

En appuyant sur le bouton Connect
, vous déclencherez la procédure TEST_CONNECTION
à l’intérieur du connecteur. Cette procédure tente d’accéder au point de terminaison octocat de l”APIGitHub, afin de vérifier si la connectivité externe a été configurée correctement et si le jeton d’accès OAuth a été obtenu correctement.
Lorsque le test est réussi, l’application passe à l’étape de finalisation.
Finalisation de la configuration¶
La finalisation est la dernière étape de l’assistant. Au cours de cette étape, il vous sera demandé de fournir une organisation et un nom de référentiel. Ce référentiel doit être accessible avec le jeton OAuth obtenu lors de l’étape de configuration de la connexion. Le référentiel fourni ne sera utilisé qu’à des fins de validation de la connexion.
Cette étape est un peu différente de la précédente, car la procédure TEST_CONNECTION
vérifie uniquement si l’API GitHub est accessible et si le jeton fourni est valide.
L’étape de finalisation permet de s’assurer que le référentiel fourni par l’utilisateur est accessible avec le jeton de l’API GitHub. L’opération échouera si le jeton ne dispose pas des autorisations d’accès au référentiel. Si vous souhaitez ingérer des données provenant de référentiels privés - nous vous recommandons de finaliser la configuration en utilisant un référentiel privé, juste pour vous assurer qu’ils fonctionnent correctement.
En outre, au cours de cette étape, la base de données et le schéma spécifiés lors de la phase de configuration du connecteur seront finalement créés dans votre compte.

Utilisation quotidienne¶
Une fois l’assistant de configuration terminé avec succès, vous pouvez maintenant commencer à utiliser votre exemple de connecteur GitHub.
Les prochaines étapes vous expliqueront :
Comment configurer les ressources pour ingérer les données
Comment fonctionne le processus d’ingestion
Comment voir les statistiques des enregistrements ingérés
Comment voir les données ingérées
Comment mettre en pause et reprendre le connecteur
Configuration des ressources¶
Pour configurer les ressources, allez dans l’onglet Data Sync
. Cet onglet affiche la liste des référentiels déjà configurés pour l’ingestion. Lors de la première ouverture, la liste est vide.
Pour configurer une ressource, saisissez les noms de l’organisation et du référentiel dans les champs prévus à cet effet, puis appuyez sur le bouton Queue ingestion
. Par exemple :

La définition d’une nouvelle ressource sera sauvegardée et elle sera prise en charge par le planificateur en fonction de la planification globale. Il faudra un certain temps avant que les données soient ingérées et visibles dans la table réceptrice. Elles seront visibles dans la table ci-dessous :

Planification et statut de l’ingestion¶
En haut de l’onglet Data Sync
se trouve une section contenant des informations générales sur l’ingestion. Cette section permet à l’utilisateur de voir la planification globale avec laquelle les ressources configurées seront ingérées. L’étiquette située dans le coin inférieur droit indique le statut actuel de l’ingestion. Dans un premier temps, il affichera l’état NOT SYNCING
, jusqu’à ce que la première ressource soit définie. Ensuite, il passe à SYNCING
, et enfin, lorsqu’au moins une ressource a été ingérée avec succès, il indique la date de fin de l’ingestion.

Processus d’ingestion¶
Le processus d’ingestion est géré à l’aide des composants Scheduler Task
et Task Reactor
. Le planificateur prélève les ressources définies en fonction de la planification globale et les soumet à une file d’attente sous la forme de Work Items
. Ensuite, un composant de réacteur de tâche appelé Dispatcher
les collecte et les répartit entre le nombre défini de travailleurs. Chaque travailleur effectue la performance d’acquisition pour chaque élément de la file d’attente qu’il prend en charge.
L’ingestion singulière d’une ressource consiste à récupérer les données à partir des points de terminaison de l’API GitHub, puis à les enregistrer dans les tables désignées de la base de données réceptrice. Dans cet exemple, toutes les données sont récupérées à chaque exécution, ce qui a pour effet d’ajouter de nouveaux enregistrements à la table et de mettre à jour les anciens. En outre, l’exécution de chaque Work Item
permet de connecter des données telles que la date de début et de fin, le nombre de lignes ingérées, le statut, etc. à des tables de connecteurs internes, qui sont ensuite utilisées à des fins statistiques.
Affichage des statistiques¶
L’écran Home
contient les statistiques des derniers cycles d’ingestion. Les données sont basées sur la vue PUBLIC.AGGREGATED_CONNECTOR_STATS
. La vue regroupe le nombre de lignes ingérées en fonction de l’heure à laquelle elles ont été ingérées. Les données de cette vue peuvent être récupérées à l’aide de requêtes SELECT
exécutées dans une feuille de calcul, ce qui permet également de les agréger sur une fenêtre temporelle supérieure à une heure.
Une autre vue est disponible dans la feuille de calcul - PUBLIC.CONNECTOR_STATS
. Ces données vous permettent de connaître le statut, les dates de début et de fin, le nombre moyen de lignes ingérées par seconde et d’autres informations concernant l’ingestion de données.
Exemple de tableau de statistiques d’ingestion :

Vue des données ingérées¶
Les données ingérées ne sont pas visibles sur UI, mais peuvent être vues par des utilisateurs ayant le rôle ADMIN
ou DATA_READER
en effectuant des requêtes sur des tables spécifiques. Pour voir les données, vous devez vous rendre sur une feuille de calcul SQL et sélectionner la base de données de destination. La base de données de destination utilise le nom et le schéma définis lors de l’étape de configuration du connecteur. Vous pouvez SELECT
les données de :
La table
ISSUES
, elle contient les colonnes suivantes :ORGANIZATION
REPOSITORY
RAW_DATA
La vue
ISSUES_VIEW
contient les colonnes suivantes :ID
ORGANIZATION
REPOSITORY
STATE
TITLE
CREATED_AT
UPDATED_AT
ASSIGNEE
Les données visibles dans la vue ISSUES_VIEW
sont extraites de la colonne raw_data
qui se trouve dans la table ISSUES
. Pour consulter les données, vous pouvez utiliser l’une des requêtes suivantes :
SELECT * FROM DEST_DATABASE.DEST_SCHEMA.ISSUES;
SELECT * FROM DEST_DATABASE.DEST_SCHEMA.ISSUES_VIEW;
Pause et reprise¶
Le connecteur peut être interrompu et repris à tout moment. Pour ce faire, il suffit d’appuyer sur le bouton Pause
dans l’onglet Data Sync
. Lorsque la mise en pause est déclenchée, le mécanisme sous-jacent de planification et d’exécution des travaux est désactivé. Cependant, tout travail d’ingestion active se terminera avant que le connecteur ne passe effectivement à l’état PAUSED
. Pour cette raison, il peut s’écouler jusqu’à deux minutes avant que le connecteur ne se mette complètement en pause.
Pour reprendre le connecteur, il suffit d’appuyer sur le bouton Resume
, qui s’affichera à la place du bouton Pause
. La tâche de planification reprend alors son cours et commence à mettre en file d’attente les nouveaux Work Items
.

Paramètres du connecteur¶
Une fois la configuration terminée, un autre onglet, appelé Settings
, est disponible. Cet onglet permet à l’utilisateur de voir les configurations actuelles des connecteurs et des connexions. Les données de cet onglet sont extraites de la table de configuration sous-jacente APP_CONFIG
et sont en lecture seule.


Résolution des problèmes¶
Si le connecteur rencontre des problèmes, ceux-ci seront visibles dans les logs event table
, si la table est créée et paramétrée dans le compte.
Pour en savoir plus sur l’activation et l’utilisation de event table
, la connexion d’événements et le partage d’événements dans les Native Apps, consultez la documentation :
Nettoyage¶
Une fois le tutoriel terminé, vous pouvez soit mettre le connecteur en pause comme expliqué dans la section Utilisation quotidienne, soit le supprimer complètement de votre compte à l’aide de la commande :
snow app teardown --connection=native_sdk_connection --cascade --force
L’option --cascade
est nécessaire pour supprimer la base de données de destination sans en transférer la propriété au compte admin. Dans les connecteurs réels, la base de données ne doit pas être supprimée pour préserver les données ingérées. Elle doit être la propriété de l’administrateur du compte ou la propriété doit être transférée avant la désinstallation.
Si la partie nettoyage est ignorée, le connecteur de l’exemple consommera des crédits jusqu’à ce qu’il soit mis en pause ou supprimé, même si aucun dépôt n’a été configuré pour l’ingestion !
Personnalisation¶
Ce tutoriel vous a montré un exemple de connecteur créé à l’aide de Snowflake Native SDK for Connectors. Pour en savoir plus sur la manière de personnaliser le connecteur ou de créer votre propre connecteur, consultez la page suivante :