- Impression
Interroger les informations de Snowflake pour les utiliser avec les applications de Tulip
Audience
Veuillez noter que l'intégration de Snowflake est technique et peut nécessiter votre support informatique pour créer les objets, rôles et permissions appropriés.
Contact du support
Ce connecteur a été créé en collaboration avec Spaulding Ridge. Pour plus d'informations ou de questions, veuillez contacter Spaulding Ridge à l'adresse info@spauldingridge.com.
Objectif
Le connecteur Snowflake rationalise la manière d'interroger les informations d'un nuage de données Snowflake. La documentation de l'API REST SQL de Snowflake est disponible ici.
Notes sur le connecteur
Le connecteur Snowflake peut manipuler des enregistrements uniques relativement facilement. Des widgets personnalisés peuvent être nécessaires pour interroger plusieurs lignes de données ou manipuler des sorties dans Tulip (table intercative, etc.).
Snowflake OAuth utilise le service OAuth intégré de Snowflake, et supporte Tulip en tant que client personnalisé. La documentation de Snowflake OAuth est disponible ici. Les détails de la configuration du client personnalisé peuvent être trouvés ici.
Configuration
Cette section fournit la procédure pour configurer un jeton OAuth depuis le serveur OAuth de Snowflake pour établir une connectivité avec Tulip en tant que client, ainsi que les étapes pour configurer le connecteur Snowflake dans Tulip.
Etape 1 : Enregistrer Tulip en tant qu'application cliente dans Snowflake
Connectez-vous à votre instance Snowflake avec un utilisateur qui a le rôle/privilège pour créer et gérer les intégrations de sécurité (ACCOUNTADMIN).
Créez une nouvelle feuille de calcul SQL dans l'entrepôt COMPUTE_WH.
Exécutez le script suivant pour créer une intégration de sécurité de type OAuth. N'oubliez pas de mettre à jour les valeurs de INTEGRATION_NAME, TULIP_INSTANCE_NAME et TIME_IN_SECONDS.
CREATE OR REPLACE SECURITY INTEGRATION <INTEGRATION_NAME> TYPE = OAUTH ENABLED = TRUE OAUTH_CLIENT = CUSTOM OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' OAUTH_REDIRECT_URI = 'https://<TULIP_INSTANCE_NAME>.tulip.co/oauth-redirect-handler' OAUTH_ISSUE_REFRESH_TOKENS = TRUE OAUTH_ISSUE_REFRESH_TOKEN_VALIDITY = <TIME_IN_SECONDS> ;
Remarque : la validité du jeton de rafraîchissement peut aller jusqu'à 90 jours (7776000 secondes).
Étape 2 : Rassembler les détails de la configuration OAuth dans Tulip
Exécutez les commandes suivantes pour décrire l'intégration de sécurité que vous venez de créer et notez les détails suivants : OAUTH_CLIENT_ID OAUTH_REDIRECT_URI OAUTH_AUTHORIZATION_ENDPOINT OAUTH_TOKEN_ENDPOINT OAUTH_CLIENT_SECRET
DESCRIBE SECURITY INTEGRATION ; SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('') ;
Etape 3 : Configurer votre connecteur Snowflake
Connectez-vous à Tulip et ajoutez le connecteur Snowflake depuis la bibliothèque Tulip (Web ou Embedded).
Cliquez sur le bouton "Production & Testing & Development" pour éditer les détails de la connexion comme ci-dessous. Vous pouvez trouver votre SNOWFLAKE_ACCOUNT_NAME dans le OAUTH_AUTHORIZATION_ENDPOINT ou OAUTH_TOKEN_ENDPOINT de l'étape 2.
Cliquez sur "Test" et "Save". Le connecteur sera mis en ligne.
Étape 4 : Modifier les détails d'authentification de votre connecteur Snowflake
Cliquez sur le bouton "Production & Testing & Development", puis sur le bouton "Edit Headers".
Choisissez le type d'authentification "OAuth 2 (Admin)" ou "OAuth 2 (Operator)" en fonction de vos besoins. Vous trouverez de plus amples informations à ce sujet dans la section Authentification de l'article Comment configurer un connecteur.
Modifiez les champs d'authentification, en utilisant les détails de l'étape 2 : Authorization Code URL = OAUTH_AUTHORIZATION_ENDPOINT Access Token URL = OAUTH_TOKEN_ENDPOINT Client ID = OAUTH_CLIENT_ID Client Secret = OAUTH_CLIENT_SECRET
Cliquez sur "Test". Vous serez dirigé vers la fenêtre de connexion de votre compte Snowflake.
Un utilisateur doit se connecter. Notez que son rôle par défaut ne doit pas être ACCOUNTADMIN, SECURITYADMIN ou ORGADMIN. Vous pouvez modifier le rôle par défaut des utilisateurs pour OAuth, comme détaillé dans cette ressource Snowflake : Gérer le consentement des utilisateurs pour OAuth.
Après une authentification réussie, un message s'affiche pour demander le consentement. Veuillez le lire attentivement pour comprendre l'opération qui est effectuée et cliquez sur "Autoriser". Vous êtes maintenant en mesure de vous connecter en toute sécurité à Snowflake depuis Tulip !
Utilisation
Vous avez deux options pour commencer à utiliser le connecteur :
Commencez par personnaliser les fonctions du modèle de connecteur pour répondre à vos besoins spécifiques.
Suivez les instructions du test unitaire de Snowflake pour une démonstration pratique de l'utilisation du connecteur pour des tâches telles que : récupérer tous les enregistrements d'une table Snowflake dans Tulip, créer un nouvel enregistrement, mettre à jour un enregistrement existant et supprimer un enregistrement.
Fonctions de modèle
Le connecteur de bibliothèque comprend les fonctions de modèle suivantes : Modèle : Interroger la base de données Description : Permet de soumettre une ou plusieurs instructions SQL pour exécution. Méthode : POST Point d'arrivée : /api/v2/statements Référence : https://docs.snowflake.com/en/developer-guide/sql-api/reference#post-api-v2-statements Modèle : Check Query Status Description : Permet de vérifier l'état de l'exécution d'une requête. Méthode : GET Point final : /api/v2/statements/{statementHandle} Référence : https://docs.snowflake.com/en/developer-guide/sql-api/reference#get-api-v2-statements-statementhandle Modèle : Cancel Query Description : Permet d'annuler l'exécution d'une déclaration. Method : POST Point d'arrivée : /api/v2/statements/{statementHandle}/cancel Référence : https://docs.snowflake.com/en/developer-guide/sql-api/reference#post-api-v2-statements-statementhandle-cancel
Références supplémentaires
Ce guide de la communauté Snowflake fournit également un contexte supplémentaire à l'intégration de Snowflake.