Snowflake

Cet article décrit comment connecter Tableau à un entrepôt de données Snowflake et configurer la source de données.

Remarque : l’authentification par paire de clés est disponible pour Tableau Desktop et Tableau Cloud à partir de la version 2024.3. Elle sera disponible pour Tableau Server dans une prochaine version.

Remarque : la publication de classeurs avec l’authentification par paire de clés Snowflake n’est pas prise en charge dans la création Web. Vous devez utiliser Tableau Desktop pour créer les classeurs, lesquels peuvent ensuite être publiés sur Tableau Cloud.

Avant de commencer

Avant de démarrer, rassemblez les informations de connexion suivantes :

  • Nom du serveur auquel vous souhaitez vous connecter
  • Méthode d’authentification :
    • OAuth : utilisez cette méthode si vous souhaitez activer la fédération à partir d’un IDP.
    • Nom d’utilisateur et mot de passe : utilisez cette méthode si vous souhaitez stocker les informations d’identification de l’utilisateur dans Snowflake.
    • Nom d’utilisateur et mot de passe Okta : utilisez cette méthode si vous prévoyez d’utiliser Okta pour gérer votre authentification.
    • Authentification par paire de clés: utilisez des informations d’identification par paires de clés publiques et privées pour une connexion avec sécurité renforcée.
  • Les identifiants de connexion dépendent de la méthode d’authentification que vous choisissez.
    Remarque : si vous utilisez l’authentification par paire de clés, vous devez utiliser OpenSSL version 3.x ou plus récente pour créer les clés.
  • (Facultatif) Instruction SQL initial à exécuter à chaque connexion de Tableau.
  • (Facultatif) Tous les paramètres de pilote personnalisés ou une nouvelle taille VARCHAR par défaut à utiliser avec cette connexion.

Remarque : pour utiliser Tableau Cloud avec l’authentification par paire de clés, vous devez également enregistrer les informations d’identification dans Tableau Cloud avant de pouvoir publier des classeurs à partager. Pour plus d’informations, consultez Configurer Snowflake pour l’authentification par paire de clés.

Pilote requis

Ce connecteur nécessite un pilote pour communiquer avec la base de données. Si le pilote n’est pas installé sur votre ordinateur, Tableau affiche une message d’erreur dans la boîte de dialogue de connexion avec un lien vers la page Téléchargement de pilotes(Le lien s’ouvre dans une nouvelle fenêtre) où vous trouverez des liens vers les pilotes et des instructions d’installation.

Remarque : pour prendre en charge l’authentification par paire de clés avec Snowflake, vous devez installer le dernier pilote ODBC depuis Snowflake (version 3.4.0 ou plus récente).

Établir la connexion et configurer la source des données

Après que vous avez sélectionné Snowflake comme connexion, une boîte de dialogue s’affiche avec trois onglets. Utilisez l’onglet Général pour sélectionner le serveur, l’entrepôt et le type d’authentification. Vous pouvez également utiliser SQL initial si vous souhaitez exécuter une commande SQL au début de chaque connexion. Pour plus d’informations, voir Exécuter SQL initial. Enfin, vous pouvez utiliser l’onglet Avancé pour ajouter éventuellement des paramètres de pilote personnalisés et une taille VARCHAR par défaut.

Pour plus d’informations sur la configuration d’OAuth pour les connexions entre Tableau et Snowflake, consultez Configurer OAuth pour Snowflake(Le lien s’ouvre dans une nouvelle fenêtre) et OAuth externe pour Snowflake.

Connecter Tableau à vos données

  1. Dans l’écran Connexion, sous À un serveur, sélectionnez Plus, puis sélectionnez Snowflake.
  2. Dans l’onglet Général, entrez le nom du serveur auquel vous souhaitez vous connecter.
  3. (Facultatif) Entrez le Rôle et l’Entrepôt.
  4. Sélectionnez la méthode d’authentification que vous utiliserez : Nom d’utilisateur et mot de passe, Nom d’utilisateur et mot de passe Okta, Se connecter avec OAuth, ou Connexion avec la paire de clés.
  5. (Facultatif) Sélectionnez SQL initial si vous souhaitez exécuter une commande SQL au début de chaque connexion. Pour plus d’informations, voir Exécuter SQL initial.
  6. (Facultatif) Pour Tableau Desktop et Server, dans l’onglet Avancé, entrez tous les paramètres personnalisés que vous souhaitez utiliser pour cette connexion. (Non disponible sur Tableau Cloud)
  7. Suivez les étapes de connexion pour la méthode d’authentification sélectionnée :
    • Connexion avec OAuth :
      1. Cliquez sur Connexion.
      2. Dans la page Web qui s’ouvre, connectez-vous à Snowflake en saisissant votre nom d’utilisateur et votre mot de passe, puis en sélectionnant Connexion. Sinon, sélectionnez Authentification unique si Snowflake est configuré pour prendre en charge SSO.
      3. Cliquez sur OK pour confirmer l’autorisation d’accéder à vos données Snowflake.
    • Connexion avec un nom d’utilisateur et un mot de passe :
      1. Entrez le nom d’utilisateur et le mot de passe facultatif.
      2. Cliquez sur Connexion.
    • Nom d’utilisateur et mot de passe Okta :
      1. Entrez le nom d’utilisateur et le mot de passe facultatif.
      2. Saisissez l’IdP SAML facultatif (l’URL de votre serveur Okta).
      3. Cliquez sur Connexion.
    • Connexion avec une paire de clés :
      1. Dans Serveur, entrez l’adresse du serveur Snowflake.
      2. Entrez l’Entrepôt et éventuellement le Rôle.
      3. Dans Authentification, sélectionnez Connexion avec la paire de clés.
      4. Entrez le Nom d’utilisateur associé à ces clés.
      5. Dans Fichier de la clé privée, accédez au fichier .p8 contenant votre clé privée.
      6. (Facultatif) Si le fichier est protégé par un Mot de passe du fichier de la clé privée, entrez-le.
  8. Ensuite, suivez les instructions sous Configurer la source de données.
  9. Si Tableau ne parvient pas à établir la connexion, vérifiez que vos informations d’identification sont correctes. Si la connexion n’aboutit toujours pas, cela signifie que votre ordinateur ne parvient pas à localiser le serveur. Contactez votre administrateur réseau ou votre administrateur de base de données.

Délai d'expiration du jeton d'accès : toujours valider le TDC du jeton d'accès

Le jeton d'accès Snowflake expire après 10 minutes. Dans certains processus d'actualisation d'extrait, de nouvelles connexions sont établies ultérieurement dans la tâche, lorsque le jeton d'accès a expiré. Pour résoudre ce problème, nous avons ajouté une nouvelle fonctionnalité, activée par défaut à partir de Tableau 2024.2. Pour activer cette fonctionnalité dans les anciennes versions, vous pouvez utiliser le TDC suivant.

<connection-customization class='snowflake' enabled='true' version='10.0'>
    <vendor name='snowflake' />
    <driver name='snowflake' />
    <customizations>
        <customization name='CAP_OAUTH_VALIDATE_ALWAYS' value='yes'/>
    </customizations>
</connection-customization>

Ce TDC peut être utilisé avec Tableau Desktop ou Tableau Server en l’incluant dans le dossier des sources de données du référentiel Tableau. Pour Tableau Cloud, vous pouvez utiliser Bridge et configurer un TDC personnalisé en vous connectant via celui-ci. Pour plus d’informations, consultez Personnalisation et optimisation d’une connexion.

Remarque : les TDC intégrés ne sont pas pris en charge avec les flux.

Personnaliser la connexion à l’aide des paramètres du pilote

Vous pouvez modifier la connexion établie avec le connecteur Snowflake en ajoutant les paramètres du pilote à la chaîne de connexion dans l’onglet Avancé.

Remarque : vous ne pouvez pas modifier les paramètres du pilote que Tableau génère ; vous pouvez seulement ajouter des paramètres.

Par exemple, cette syntaxe spécifie un serveur proxy à utiliser lorsque les conditions de valeurs no_proxy ne sont pas remplies et indique les noms d’hôtes autorisés à contourner le serveur proxy :

Proxy=http://proxyserver.company:80;no_proxy=.trustedserver.com;

Pour un autre exemple de paramètres de pilote personnalisés, consultez Utiliser un proxy pour Snowflake.

Vous pouvez également saisir une taille alternative pour VARCHAR dans le champ Taille VARCHAR par défaut (octets). Pour plus d’informations sur l’utilisation de ce champ et les impacts sur les performances, consultez la documentation ODBC de Snowflake.

Remarque : si vous souhaitez une personnalisation sans l’intégrer dans la source de données, vous pouvez configurer les paramètres dans le registre sous Windows (seuls les paramètres marqués comme « Paramètres de configuration » sont disponibles). Pour plus de détails sur les paramètres du pilote, voir Paramètres de configuration et de connexion du pilote ODBC sur le site Web Snowflake.

Configurer la source de données

Dans le volet Source de données, procédez comme suit :

  1. (Facultatif) Sélectionnez le nom de la source de données par défaut en haut de la page, puis tapez un nom de source de données unique pour l’utiliser dans Tableau. Par exemple, utilisez une convention pertinente d’appellation de la source de données qui aide d’autres utilisateurs de la source de données à déduire à quelle source de données se connecter.

  2. Dans la liste déroulante Entrepôt, sélectionnez l’entrepôt ou utilisez la zone de texte pour rechercher un entrepôt par nom.

    Remarque : si vous laissez cette zone vide et que vous ne sélectionnez pas d’entrepôt, Tableau utilise votre entrepôt virtuel Snowflake par défaut.

    Pour en savoir plus, consultez Entrepôts virtuels par défaut dans Snowflake.

  3. Dans la liste déroulante Base de données, sélectionnez une base de données ou utilisez la zone de texte pour rechercher une base de données par nom.
  4. Dans la liste déroulante Schéma, sélectionnez un schéma ou utilisez la zone de texte pour rechercher un schéma par nom.
  5. Sous Table, sélectionnez une table ou utilisez la zone de texte pour rechercher une table par son nom.
  6. Faites glisser une table vers l’espace de travail, puis sélectionnez l’onglet de la feuille pour démarrer votre analyse.

Remarque : si vous publiez vos classeurs lorsque vous utilisez l’authentification par paire de clés, assurez-vous de sélectionner le type d’authentification approprié dans la section Gérer les sources de données de la fenêtre Publier le classeur.

Connexion sur un Mac

Si vous utilisez Tableau Desktop sur un Mac, lorsque vous entrez le nom du serveur auquel vous connecter, utilisez un nom de domaine qualifié complet, par exemple mydb.test.ourdomain.lan, plutôt qu’un nom de domaine relatif tel que mydb ou mydb.test.

Vous pouvez sinon ajouter le domaine à la liste des Domaines de recherche pour l’ordinateur Mac. De cette manière, lorsque vous vous connectez, vous n’avez qu’à fournir le nom du serveur. Pour actualiser la liste des domaines de recherche, accédez à Préférences Système > Réseau > Avancé, puis ouvrez l’onglet DNS.

Entrepôts virtuels par défaut dans Snowflake

Lorsque vous créez une source de données Snowflake, vous créez à la fois un entrepôt Snowflake (pour les ressources informatiques) et des bases de données Snowflake (pour les ressources de données). Les entrepôts et les bases de données ont besoin d’autorisations pour y accéder. Vous pouvez utiliser différents entrepôts pour accéder à la même base de données, en fonction de la puissance de calcul dont vous avez besoin, en supposant que vous avez des autorisations pour chaque entrepôt et base de données.

Lorsque vous créez une source de données, vous avez la possibilité de choisir un entrepôt dans une liste déroulante. Si vous laissez cette zone vide et que vous ne sélectionnez pas un entrepôt, Tableau utilise votre entrepôt virtuel Snowflake par défaut. Si vous publiez par la suite cette source de données ou ce classeur, lorsqu’un utilisateur se connecte, Tableau utilisera l’entrepôt virtuel Snowflake par défaut de cette personne.

Chaque utilisateur doit se voir attribuer un entrepôt par défaut afin que Tableau puisse l’utiliser par défaut pour ouvrir un classeur à partir d’une source de données Snowflake.

Utiliser un proxy pour Snowflake

Vous pouvez vous connecter à Snowflake depuis Tableau via un proxy. Si vous utilisez Tableau version 2019.4 ou ultérieure, vous pouvez configurer cette option avec la boîte de dialogue du connecteur en entrant les paramètres requis dans l’onglet Avancé.

Par exemple :

proxy=http://proxyserver.company:80

Pour plus d’informations sur les paramètres que vous devez utiliser, consultez la documentation Snowflake(Le lien s’ouvre dans une nouvelle fenêtre).

Remarque : Tableau n’utilise pas de DSN pour se connecter à Snowflake. Vous pouvez donc ignorer les instructions contenues dans la documentation Snowflake sur l’utilisation d’un DSN.

Si vous utilisez une version de Tableau pré-2019.4, vous pouvez configurer cette option en entrant les paramètres d’un fichier TDC l’aide de la commande odbc-extras.

Par exemple :

Copier
<connection-customization class='snowflake' enabled='true' version='19.1'>
        <vendor name='snowflake' />
            <driver name='snowflake' />
                <customizations>
                <customization name='odbc-connect-string-extras' value='proxy=http://proxyserver.company:80' />
                </customizations></connection-customization>

Pour plus d’informations, consultez l’article Personnaliser la chaîne de connexion pour un connecteur natif(Le lien s’ouvre dans une nouvelle fenêtre).

Résolution des problèmes

Performances et taille de récupération

Pour obtenir les meilleures performances, en particulier pour les extraits, Tableau doit déterminer une taille de récupération optimale. Vous pouvez procéder ainsi à cette fin : définir des limites sur les champs de longueur variable et activer les tampons de récupération redimensionnables. Pour obtenir les meilleurs résultats, vous devez utiliser les deux actions.

Déterminer la taille actuelle de récupération

La taille de récupération utilisée est enregistrée dans les journaux tabprotosrv. Le processus tabprotosrv est le processus sandbox du pilote. En voici un exemple :

ODBCRowsetSource::ODBCRowsetSource : tentative de définition de la taille de récupération de ligne à 4 128 lignes, avec 254 octets par ligne

Remarque : certaines des suggestions ci-dessous nécessitent des TDC, mais celles-ci ne fonctionneront pas sur Tableau Cloud, sauf si vous utilisez Tableau Bridge. Si vous utilisez Tableau Bridge, vous pouvez installer le fichier TDC sur l’hôte Bridge afin qu’il s’applique à toutes les connexions passant par cet hôte.

Limites de longueur de champ variable

Si vous utilisez des champs VARCHAR ou VARBINARY illimités, le pilote renvoie une taille du champ de 16 Mo. Cela amène Tableau à utiliser une petite taille de récupération pour rester dans les limites de mémoire, ce qui entraîne une vitesse de requête lente. Vous pouvez résoudre ce problème de plusieurs manières :

  • Ajoutez une limite à la définition de colonne dans la base de données, telle que VARCHAR(256) ou encapsulez la table dans une vue qui fait de même.
  • Utilisez le champ « Taille VARCHAR par défaut (octets) » sur l’onglet Avancé lors de la connexion à Snowflake dans Tableau Desktop. Le champ a été renommé à partir de « Taille max. VARCHAR » dans Tableau 2024.3, mais l’action est la même. Il définit le paramètre default_varchar_size pour le pilote ODBC, ce qui limitera la taille du champ renvoyé à Tableau. Pour plus d’informations, consultez https://docs.snowflake.com/fr/developer-guide/odbc/odbc-parameters(Le lien s’ouvre dans une nouvelle fenêtre).
  • Utilisez une personnalisation TDC comme ci-dessous :

<connection-customization class='snowflake' enabled='true' version='10.0'>
<vendor name='snowflake' />
<driver name='snowflake' />
<customizations>
<customization name='CAP_ODBC_FETCH_BUFFERS_RESIZABLE' value='yes'/>
<customization name='odbc-connect-string-extras' value='default_varchar_size=512;default_binary_size=512'/>
</customizations>
</connection-customization>

Activer CAP_ODBC_FETCH_BUFFERS_RESIZABLE

Ce paramètre est activé par défaut à compter de Tableau 2024.3. Avant cette version, vous pouvez utiliser un TDC. Vous utiliseriez un TDC tel que celui ci-dessous pour configurer default_varchar_size dans l’interface utilisateur ou sur la base de données, plutôt que d’utiliser le TDC.

<connection-customization class='snowflake' enabled='true' version='10.0'>
<vendor name='snowflake' />
<driver name='snowflake' />
<customizations>
<customization name='CAP_ODBC_FETCH_BUFFERS_RESIZABLE' value='yes'/>
</customizations>
</connection-customization>

Questions fréquemment posées

Voici quelques problèmes courants et la procédure à suivre pour les résoudre.

J’ai une erreur « Ce champ XXX n’existe pas ». Que dois-je faire ?

Cette erreur apparaît lorsque vous utilisez un champ de calcul, l'ajoutez à la feuille de calcul et remplacez la source de données par les données Snowflake (CustomSQL).

Utilisez la fonction Remplacer les références de champ pour résoudre l’erreur. Pour plus d’informations sur le remplacement des références de champ, reportez-vous à la rubrique Remplacer les références de champ.

 

Voir également

Merci de vos commentaires !Avis correctement envoyé. Merci