Créer un ticket Mes tickets
Bienvenue
Connexion  S'inscrire

Dépannage de Snowflake

Le but de cette page est de vous guider à travers un certain nombre de vérifications et de commandes afin de s'assurer que tout a été correctement mis en place pour le bon fonctionnement du connecteur.


Vérifier que l'utilisateur est correctement lié au rôle qui sera utilisé par le connecteur

Pour effectuer cette vérification jouez la commande suivante dans Snowflake:

SHOW GRANTS of role <your_dg_role>;

Cette commande montre quels sont les utilisateurs liés à un rôle donné. Dans cet exemple nous voyons que notre utilisateur "dg_user" est correctement relié au rôle "dg_user_role"


Dans l'exemple ci-dessous nous voyons que l'utilisateur "dg_user" n'apparaît pas dans le résultat de la requête. Afin de corriger cela nous devons jouer dans Snowflake, à partir d'un rôle qui a des droits suffisants, la commande suivante:

grant role <your_dg_role> to user <your_dg_user>;


Vérifier que l'utilisateur a le bon rôle par défaut

Pour effectuer cette vérification jouez la commande suivante dans Snowflake:

DESCRIBE USER <your_dg_user>

Elle donne toutes les informations associées à votre utilisateur, les plus importantes étant la warehouse par défaut et le rôle par défaut. Dans l'exemple ci-dessous on voit que celui qui sera utilisé avec le connecteur est "dg_user_role". S'il fallait changer cela la commande est la suivante:

ALTER USER <your_dg_user> SET default_role=<your_dg_role>


Cette étape n'est pas obligatoire mais si votre utilisateur n'a pas de rôle par défaut n'oubliez pas de spécifier un rôle lorsque vous paramétrez la connexion (exemple ici avec "dg_user_role")

 

Vérifier que le rôle utilisé par le connecteur a accès à la warehouse associée par défaut à l'utilisateur


Pour effectuer cette vérification jouez la commande suivante dans Snowflake:

SHOW GRANTS TO ROLE <your_dg_role>;

Cette commande doit montrer que le rôle qui sera utilisé par le connecteur a accès à la warehouse par défaut de l'utilisateur qui sera utilisée pour réaliser les calculs. Les droits nécessaires sont MONITOR et USAGE (voir exmeple ci-dessous). S'ils n'apparaissent pas il faut  jouer dans Snowflake, à partir d'un rôle qui a des droits suffisants, la commande suivante: 

GRANT MONITOR, USAGE ON WAREHOUSE "<your_warehouse>" TO ROLE <your_dg_role>;


Vérifier que le rôle utilisé par le connecteur a accès à la base de données

Si la base de données dont vous voulez récupérer les informations est une base non-partagée, jouez la commande suivante dans Snowflake en utilisant le rôle et la warehouse qui seront également utilisées par le connecteur (exemple ci-après):

SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.DATABASES WHERE DELETED IS NULL;


Si le messsage d'erreur  "Schema 'SNOWFLAKE.ACCOUNT_USAGE' does not exist or not authorized" vous est retourné, comme dans l'exemple ci-dessous, il faut  jouer dans Snowflake, à partir d'un rôle qui a des droits suffisants, la commande suivante: 

grant imported privileges on all tables in DATABASE "SNOWFLAKE" to role <your_dg_role>;


Si c'est une base de données partagée la commande de test sera la suivante:

SELECT * FROM <shared_database_name>.INFORMATION_SCHEMA.SCHEMATA

Et la commande donnant accès à ladite base de données, si la requête précédente a échoué est la suivante, toujours en faisant appel à un rôle qui dispose des droits suffisants:

grant imported privileges on all tables IN DATABASE "<shared_database_name>" to role <your_dg_role>;

Enfin, sachez qu'en jouant la commande SHOW GRANTS TO ROLE <your_dg_role>; précédemment évoquée, vous trouverez notamment dans le résultat les bases de données, schémas et tables auxquelles le rôle a accès (voir exemple)

Que faire si vous rencontrez une erreur "java.lang.IllegalArgumentException: Illegal pattern character 'I'" lors de votre import?

Cela peut venir d'un souci avec le DATE_OUTPUT_FORMAT qui passe une valeur contenant un caractère illégal. Une solution possible est de revenir à la valeur par défaut YYYY-MM-DD en exécutant la commande suivante:

ALTER SESSION SET DATE_INPUT_FORMAT = "YYYY-MM-DD"
SQL

A tout moment vous pouvez vérifier vos paramètres en utilisant la commande SHOW PARAMETERS

Cette réponse a-t-elle été utile ? Oui Non

Envoyer vos commentaires
Désolés de n'avoir pu vous être utile. Aidez-nous à améliorer cet article en nous faisant part de vos commentaires.