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 dans une prochaine version de Tableau Server.

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, qui peuvent ensuite être publiés sur Tableau Cloud.

Avant de commencer

Avant de commencer, 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 fournisseur d’identités.
    • 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 identifiants pour paires de clés publiques et privées pour renforcer la sécurité de vos connexions.
  • Des identifiants de connexion sont requis pour la méthode d’authentification choisie.
    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.
  • (En option) Expression SQL initial à exécuter à chaque connexion de Tableau.
  • (En option) 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 sauvegarder les identifiants 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 un pilote ODBC depuis Snowflake (version 3.4.0 ou plus récente).

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

Après avoir 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 utiliser l’onglet SQL initial pour exécuter éventuellement une commande SQL au début de chaque connexion. Pour plus d’informations, consultez 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 les connexions Snowflake(Le lien s’ouvre dans une nouvelle fenêtre) et OAuth externe pour Snowflake..

Connecter Tableau à vos données

  1. Sur l’écran Connexion, sous À un serveur, sélectionnez Plus, puis sélectionnez Snowflake.
  2. Sur l’onglet Général, entrez le nom du serveur auquel vous souhaitez vous connecter.
  3. (En option) 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 Se connecter à l’aide d’une paire de clés.
  5. (En option) Sélectionnez SQL initial si vous souhaitez exécuter une commande SQL au début de chaque connexion. Pour plus d’informations, consultez Exécuter SQL initial.
  6. (En option) Pour Tableau Desktop et Server, entrez tous les paramètres personnalisés sur l’onglet Avancé 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 :
    • Se connecter avec OAuth :
      1. Cliquez sur Se connecter.
      2. Dans la page Web qui s’ouvre, connectez-vous à Snowflake en saisissant votre Nom d’utilisateur et votre Mot de passe et 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.
    • Nom d’utilisateur et mot de passe :
      1. Entrez le nom d’utilisateur et le mot de passe en option.
      2. Cliquez sur Se connecter.
    • Nom d’utilisateur et mot de passe Okta :
      1. Entrez le nom d’utilisateur et le mot de passe en option.
      2. Entrez le fournisseur d’identités SAML en option (l’URL de votre serveur Okta).
      3. Cliquez sur Se connecter.
    • Se connecter à l’aide d’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 Se connecter à l’aide d’une 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. (En option) Entrez le Mot de passe du fichier de la clé privée s’il est protégé par un mot de passe.
  8. Ensuite, suivez les instructions décrites dans la section 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 : Valider systématiquement le TDC du jeton d’accès

Le jeton d’accès de Snowflake expire au bout de 10 minutes. Dans certains processus d’actualisation d’extrait, de nouvelles connexions sont établies plus tard dans la tâche lorsque le jeton d’accès a expiré. Pour résoudre ce problème, nous avons ajouté une nouvelle fonctionnalité qui est activée par défaut à partir de Tableau 2024.2. Pour activer cette fonctionnalité dans les versions antérieures, 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 prennent pas en charge 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 valeurs no_proxy ne sont pas remplies ainsi que les noms d’hôte 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 entrer une autre taille pour VARCHAR dans le champ Taille VARCHAR par défaut (octets). Pour plus de détails 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, consultez Paramètres de configuration et de connexion du pilote ODBC sur le site Web Snowflake.

Configurer la source de données

Sur la page 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 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 son 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 son 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 du volet 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 la ressource 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 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 la version 2019.4 de Tableau ou une version ultérieure, vous pouvez configurer cette option avec la boîte de dialogue du connecteur en tapant 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 antérieure à 2019.4, vous pouvez configurer cette option en entrant les paramètres dans 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 intégré(Le lien s’ouvre dans une nouvelle fenêtre).

Résolution des problèmes

Performances et taille de recherche

Pour obtenir les meilleures performances, en particulier pour les extraits, Tableau doit déterminer une taille de recherche optimale. Vous pouvez l’améliorer de deux manières : en définissant des limites sur les champs de longueur variable et en activant des tampons de recherche redimensionnables. Pour optimiser les résultats, vous devez appliquer les deux méthodes.

Déterminer la taille de recherche actuelle

La taille de recherche utilisée est enregistrée dans les journaux tabprotosrv. Tabprotosrv est le processus de bac à sable du pilote. En voici un exemple :

ODBCRowsetSource::ODBCRowsetSource : Tentative de définition de la taille de recherche des lignes à 4 128 lignes, soit 254 octets par ligne

Remarque : Certaines des suggestions ci-dessous nécessitent des TDC, mais ceux-ci ne fonctionneront pas sur Tableau Cloud si vous n’utilisez pas Tableau Bridge. Avec Tableau Bridge, vous pouvez installer le TDC sur l’hôte Bridge pour qu’il s’applique à toutes les connexions traversant cet hôte.

Limites de longueur de champ variable

Si vous utilisez des champs VARCHAR ou VARBINARY non délimités, le pilote renvoie un champ dont la taille est définie sur 16 MB. Tableau utilise alors une petite taille de recherche pour ne pas dépasser les limites de mémoire, ce qui ralentit les requêtes. Vous pouvez résoudre ce problème de plusieurs manières :

  • Ajoutez une limite à la définition de la colonne dans la base de données, telle que VARCHAR(256), ou enveloppez la table dans une vue qui remplit la même fonctionnalité.
  • Utilisez le champ « Taille VARCHAR par défaut (octets) » sur l’onglet Avancé lors de la connexion à Snowflake dans Tableau Desktop. Ce champ a été renommé à partir de « Taille VARCHAR maximale » dans Tableau 2024.3, mais il remplit la même fonctionnalité. 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/en/developer-guide/odbc/odbc-parameters(Le lien s’ouvre dans une nouvelle fenêtre).
  • Utilisez un fichier TDC personnalisé 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

Il est activé par défaut à partir de Tableau 2024.3. Vous pouviez utiliser un TDC auparavant. Vous deviez utiliser un TDC comme celui ci-dessous pour configurer la default_varchar_size dans l’interface utilisateur ou dans 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!Votre commentaire s été envoyé avec succès. Merci!