Exemple : personnaliser une connexion ODBC

Lorsque vous utilisez un connecteur pour une base de données prenant en charge SQL, Tableau génère des instructions SQL adaptées à cette base de données. Tableau ne disposant d’aucune représentation détaillée du dialecte SQL utilisé par une source de données ODBC, il doit deviner la syntaxe prise en charge. Pour ce faire, il utilise divers tests. Si un pilote renvoie des données incorrectes ou incomplètes sur le dialecte SQL qu’il prend en charge, vous pouvez utiliser les personnalisations Tableau pour affiner ces données de connexion afin d’améliorer la fonctionnalité et les performances.

Dans cet article, vous allez établir une connexion ODBC, examiner le fichier TDS (Tableau Data Source) résultant et en utiliser une partie pour créer un fichier TDC (Tableau Datasource Customization) que vous pouvez ensuite utiliser pour personnaliser votre connexion ODBC. Avant de commencer, vous devriez vous familiariser avec le contenu de la section Tableau et ODBC.

Remarque : Tableau offre des niveaux raisonnables de soutien à la clientèle pour le dépannage de connexions avec les pilotes ODBC, mais ne peut ni créer ni personnaliser un connecteur pour qu’il fonctionne avec un pilote ODBC particulier.

Établissement d’une connexion de données ODBC

Cette section montre comment créer une connexion ODBC en utilisant un exemple. Dans l’exemple, vous vous connectez à une base de données SQLite à l’aide du pilote SQLite ODBC.

Conditions préalables

La connexion ODBC dans cet article est basée sur SQLite (http://www.sqlite.org/), une base de données en open-source.

Il est nécessaire de télécharger les deux éléments suivants :

Décharge de responsabilité : Ces informations se reportent à un produit tiers. Cet exemple n’est pas une approbation de ce produit par rapport à tout autre produit concurrent.

Créer une connexion

Pour créer une connexion ODBC, vous vous connectez à la base de données Northwind à l’aide du pilote SQLite3 ODBC, puis enregistrer la connexion en tant que fichier TDS (Tableau Data Source).

  1. Ouvrez Tableau Desktop.

  2. Sur la page de démarrage, sous Se connecter, cliquez sur Autres bases de données (ODBC).

    Remarque : pour une base de données qui possède déjà un connecteur pris en charge par Tableau(Le lien s’ouvre dans une nouvelle fenêtre), vous pouvez cliquer sur le nom de ce connecteur pour créer une connexion.

  3. Sous Se connecter avec, sélectionnez Pilote, puis dans la liste déroulante, sélectionnez Pilote SQLite3 ODBC.

  4. Cliquez sur Se connecter.

  5. À côté de la zone de texte Nom de la base de données, cliquez sur Parcourir, accédez à l’emplacement de votre fichier Northwind.sl3, puis cliquez sur Ouvrir.

  6. Cliquez sur OK pour fermer la boîte de dialogue, puis cliquez sur Connexion.

  7. Sur la page Source de données, dans la zone de texte Table, entrez Orders.

  8. Faites glisser la table Orders vers le canevas, puis cliquez sur l’onglet Feuille.

    Une boîte de dialogue « Tableau a identifié les limitations pour la source de données ODBC » s’ouvre. Vous pouvez vérifier les détails ou ignorer la boîte de dialogue et continuer. Pour plus d’informations, consultez Comment Tableau détermine les possibilités du pilote ODBC.

  9. Sélectionnez Données> Orders [path to Northwind.sl3] > Ajouter aux sources de données enregistrées.

  10. Cliquez sur Enregistrer.

  11. Fermez le classeur. Lorsque vous êtes invité à enregistrer les modifications, cliquez sur Non.

Vous pouvez maintenant ouvrir le fichier TDS pour examiner la connexion SQLite.

Vérifier la stucture XML d’un fichier TDS

Ouvrez le fichier TDS (Tableau Data Source) sauvegardé dans un éditeur de texte pour visualiser sa structure XML. Par défaut, le champ que vous avez créé ci-dessus est appelé Northwind.sl3.tds et se trouve sur le chemin suivant :

Users\[your name]\Documents\My Tableau Repository\Datasources

ou

Users\[your name]\Documents\My Tableau Repository (Beta)\Datasources

Il s’agit d’un document XML simple, décrivant la connexion SQLite vers la table Northwing Orders. Dans la section <connection>, recherchez l’élément <connection-customization> qui contient les éléments <customization> que vous pouvez modifier.

Nom du fournisseur et du pilote

Cette section de personnalisation de la connexion commence par les noms que Tableau a détectés pour le pilote ODBC et pour le fournisseur de la base de données. Tableau utilise ces informations pour associer une personnalisation de connexion spécifique à un seul type de source de données ODBC. La section se présente ainsi :

<connection-customization class='genericodbc' enabled='false' version='10.1'>
<vendor name='SQLite' />
<driver name='SQLite3 ODBC Driver' />
<customizations>

Types de personnalisations

Tableau autorise deux types de personnalisations : les possibilités spécifiques à Tableau et les appels d’API ODBC vers SQLGetInfo. Ces personnalisations sont des paires nom/valeur, dont les noms respectent une convention de CAP_ pour les possibilités de Tableau et de SQL_ pour les appels d’API SQLGetInfo.

Le fichier de la source de données enregistré contient des exemples des deux types de personnalisation. Ces personnalisations représentent les valeurs que Tableau a réussi à détecter en interrogeant le pilote lorsque vous vous êtes connecté. La liste des personnalisations peut être incomplète ou incorrecte. Vous pouvez utiliser la personnalisation pour modifier et modeler le comportement de Tableau lorsque vous vous connectez à une source de données ODBC.

Les articles suivants contiennent une référence complète sur les personnalisations. Vous devriez avoir une idée de la façon dont vous allez ajuster votre connexion ODBC pour obtenir les performances attendues dans votre environnement. Passez en revue les listes pour vous faire une idée des personnalisations permettant d’ajuster votre connexion ODBC.

Mise en forme des valeurs de personnalisation

  • Les valeurs de personnalisation sont toutes représentées sous la forme de chaînes pour chaque paire nom/valeur.

  • Les possibilités de Tableau sont toutes des valeurs booléennes représentées par ’yes’ ou ’no’.

  • Les valeurs SQLGetInfo peuvent être des nombres entiers longs, courts ou des données de chaînes. Cela dépend de la valeur de renvoi de SQLGetInfo attendue pour l’identificateur donné.

  • De nombreux champs de nombres entiers sont des masques de bits qui représentent un ensemble de possibilités.

Appliquer les personnalisations de manière globale avec un fichier TDC

Pour que vos modifications de personnalisation s’appliquent à toutes les connexions pour une source de données ODBC spécifique, vous devez créer un fichier TDC (Tableau Datasource Customization). Ce fichier contient uniquement la section <connection-customization> et est appliquée à toute nouvelle connexion Tableau correspondant au nom du fournisseur de la base de donnée et du nom du pilote décrits dans le fichier TDC (comme indiqué dans Nom du fournisseur et du pilote). Les classeurs ou les sources de données existants présentant déjà une section de personnalisation activée n’utiliseront que les personnalisations qu’ils fournissent, et non le fichier TDC.

Important : Tableau ne teste pas et ne prend pas en charge les fichiers TDC. Ces fichiers devraient être utilisés en tant qu’un outil pour explorer or résoudre occasionnellement les problèmes de votre connexion de données. La création et le maintien de fichiers TDC nécessitent une modification manuelle prudente et il n’y a aucune prise en charge du partage de ces fichiers.

Créer un fichier TDC

Lorsque vous créez un fichier TDC, vous devez l’enregistrer à l’emplacement approprié afin qu’il puisse être utilisé par votre connexion. Si vous créez un classeur et souhaitez le publier sur Tableau Server, vous devez alors enregistrer également le fichier TDC sur le serveur. Pour plus d’informations, consultez Utilisation d’un fichier TDC avec Tableau Server(Le lien s’ouvre dans une nouvelle fenêtre) dans la base de connaissances de Tableau.

Structure d’un fichier TDC

Chaque fichier TDC suit cette structure de base :

<connection-customization class=DSCLASS enabled='true' version='10.0'>
    <vendor name=VENDOR />
    <driver name=DRIVER />
    <customizations>
        <customization name='CAP_FAST_METADATA' value='yes'/>
        <customization name='CAP_SOMETHING_ELSE' value='yes'/>
        ...
    </customizations>
</connection-customization>

Un fichier TDC comporte trois sections principales :

  • Variables de personnalisation de la connexion
  • Noms du fournisseur et du pilote
  • Les personnalisations elles-mêmes

La section connection-customization comporte les éléments suivants :

  • classe : La source de données à laquelle vous souhaitez vous connecter et que vous souhaitez personnaliser.
  • activé : Indique si les personnalisations de la connexion du fichier TDC sont appliquées. Dans le fichier TDC, définissez toujours sur « true ».
  • version : Tableau ignore le numéro de version.

La section suivante est cruciale car elle identifie le nom du fournisseur et le nom du pilote du fournisseur de la base de données pour la source de données de ce fichier TDC. Chaque fichier TDC ne peut être lié qu’à un seul type de source de données. Pour nos sources de données natives, ces noms doivent tous deux correspondre au nom de classe de la source de données, par exemple « Teradata » pour nos connexions Teradata. Pour les sources de données ODBC, le nom du fournisseur et le nom du lecteur du fichier TDC doivent correspondre à ce qui est déclaré à Tableau par la base de données et le lecteur, par exemple, « SQLite » et « Lecteur d’interface universelle de connexion aux bases de données SQLite3 », respectivement.

La dernière section énumère les personnalisations de connexion réelles.

Voici deux exemples de fichiers TDC : le premier est une connexion ODBC générique et le deuxième est une modification d'une connexion Salesforce native. Veuillez noter que ces informations sont fournies à titre d'exemple uniquement et que les personnalisations présentées ne sont pas sélectionnées pour atteindre un objectif spécifique.

<?xml version='1.0' encoding='utf-8' ?>
<connection-customization class='genericodbc' enabled='true' version='8.10'>
<vendor name='Gen_ODBC_Vendor'/>
<driver name='Gen_Driver'/>
<customizations>
<customization name='CAP_FAST_METADATA' value='yes' />
<customization name='CAP_ODBC_BIND_FORCE_MAX_STRING_BUFFERS' value='yes' />
<customization name='CAP_ODBC_BIND_PRESERVE_BOM' value='yes' />
</customizations>
</connection-customization>
<?xml version='1.0' encoding='utf-8' ?>
<connection-customization class='salesforce' enabled='true' version='8.10'>
  <vendor name='salesforce'/> 
  <driver name='salesforce'/>
  <customizations>
    <customization name='CAP_ODBC_EXPORT_CONTINUE_ON_ERROR' value='yes' />
    <customization name='CAP_ODBC_EXPORT_FORCE_SINGLE_ROW_BINDING' value='yes' />
    <customization name='CAP_ODBC_EXPORT_SUPPRESS_STRING_WIDTH_VALIDATION' value='no' />
  </customizations>
</connection-customization>

Utiliser le fichier TDC avec Tableau Desktop

  1. À l’aide d’un éditeur de texte, copiez et collez l’ensemble de la section <connection-customization> de votre fichier source de données enregistré. À titre de référence, consultez l’exemple de fichier TDC SQLite.

  2. Nommez le fichier odbc-sqlite.tdc et enregistrez-le sur Documents\My Tableau Repository\Datasources.

    Remarque : le nom n’a pas d’importance mais le fichier doit être enregistré avec l’extension .tdc.

  3. Redémarrez Tableau Desktop pour appliquer la modification.

  4. Créez une nouvelle connexion à SQLite comme décrit dans Créer une connexion.

  5. Accédez au fichier journal Tableau Desktop, ouvrez-le et recherchez un enregistrement du type de l’exemple ci-dessous pour vérifier que ce fichier de personnalisation a été appliqué à votre nouvelle connexion.

Emplacement du fichier journalExemple de l’enregistrement
Par défaut, C:\Users\<user>\Documents\Mon référentiel Tableau\Fichiers journauxFound matching TDC 'C:\\Users\\<name>\\Documents\\My Tableau Repository\\Datasources\\odbc-sqlite.tdc' for class='genericodbc', vendor='SQLite', and driver='SQLite3 ODBC Driver'

Utiliser le fichier TDC avec Tableau Prep Builder

  1. À l’aide d’un éditeur de texte, copiez et collez l’ensemble de la section <connection-customization> de votre fichier source de données enregistré. À titre de référence, consultez l’exemple de fichier TDC SQLite.

  2. Nommez le fichier odbc-sqlite.tdc et enregistrez-le à l’emplacement suivant :

    • Pour Windows :

      Documents\My Tableau Prep Repository\Datasource

    • Pour Mac :

      Documents/My Tableau Prep Repository/Datasources

    Remarque : le nom n’a pas d’importance mais le fichier doit être enregistré avec l’extension .tdc.

  3. Redémarrez Prep pour appliquer la modification.

  4. Accédez au fichier journal, ouvrez-le et recherchez un enregistrement du type de l’exemple ci-dessous pour vérifier que ce fichier de personnalisation a été appliqué à votre nouvelle connexion.

Emplacement du fichier journalExemple de l’enregistrement
Par défaut, C:\Users\<user>\Documents\Mon référentiel Tableau Prep\Fichiers journauxFound matching TDC 'C:\\Users\\<name>\\Documents\\My Tableau Prep Repository\\Datasources\\odbc-sqlite.tdc' for class='genericodbc', vendor='SQLite', and driver='SQLite3 ODBC Driver'

Utiliser le fichier TDC avec Tableau Server

  1. À l’aide d’un éditeur de texte, copiez et collez l’ensemble de la section <connection-customization> de votre fichier source de données enregistré. À titre de référence, consultez l’exemple de fichier TDC SQLite.

  2. Nommez le fichier odbc-sqlite.tdc et enregistrez-le à l’emplacement suivant :

    • Pour Windows :

      Dans les versions de Tableau Server antérieures à 2018.2 :

      Program Files\Tableau\Tableau Server\<version>\bin

      Depuis Tableau Server version 2018.2 :

      Program Files\Tableau\Tableau Server\packages\bin.<build number>

      Ou pour toutes les versions de Tableau Server :

      ProgramData\Tableau\Tableau Server\data\tabsvc\vizqlserver\Datasources

      Pour enregistrer le fichier, vous devez être un administrateur Windows sur l’ordinateur du serveur.

    • Pour Linux :

      /var/opt/tableau/tableau_server/data/tabsvc/vizqlserver/Datasources/

    Remarque : le nom n’a pas d’importance mais le fichier doit être enregistré avec l’extension .tdc. Le fichier TDC doit être enregistré sur tous les nœuds du serveur pour assurer un comportement homogène.

  3. Pour Tableau Prep Conductor (exécution de flux) ou création Web Prep (édition de flux sur le Web), le fichier TDC doit être placé dans des répertoires supplémentaires.

    Prep Conductor

    • Pour Windows :

      <data directory>\tabsvc\flowprocessor\Datasources

    • Pour Linux :

      <data directory>/tabsvc/flowprocessor/Datasources

    Création Web Prep

    • Pour Windows :

      <data directory>\tabsvc\flowminerva\Datasources

    • Pour Linux :

      <data directory>/tabsvc/flowmineva/Datasources

  4. Redémarrez Tableau Server pour appliquer la modification.

  5. Accédez au fichier journal Tableau Server, ouvrez-le et recherchez un enregistrement du type de l’exemple ci-dessous pour vérifier que ce fichier de personnalisation a été appliqué à votre nouvelle connexion.

Emplacement du fichier journalExemple de l’enregistrement

<install path>\Tableau Server\data\tabsvc\log\vizqlserver

<install path>\Tableau Server\data\tabsvc\log\backgrounder

<install path>\Tableau Server\data\tabsvc\log\dataserver

<install path>\Tableau Server\data\tabsvc\log\vizportal

Found matching TDC 'C:\\ProgramData\\Tableau\\Tableau Server\\data\\tabsvc\\vizqlserver\\Datasources\\odbc-sqlite.tdc for class='genericodbc', vendor='SQLite', and driver='SQLite3 ODBC Driver'

Exemple de fichier TDC SQLite

<?xml version='1.0' encoding='utf-8' ?>
<connection-customization class='genericodbc' enabled='true' version='7.8'>
<vendor name='SQLite' />
<driver name='SQLite3 ODBC Driver' />
	<customizations>
		<customization name='CAP_CREATE_TEMP_TABLES' value='yes' />
		<customization name='CAP_QUERY_BOOLEXPR_TO_INTEXPR' value='yes' />
		<customization name='CAP_QUERY_GROUP_BY_ALIAS' value='no' />
		<customization name='CAP_QUERY_GROUP_BY_DEGREE' value='yes' />
		<customization name='CAP_QUERY_JOIN_ACROSS_SCHEMAS' value='no' />
		<customization name='CAP_QUERY_JOIN_REQUIRES_SCOPE' value='no' />
		<customization name='CAP_QUERY_SUBQUERIES' value='yes' />
		<customization name='CAP_QUERY_SUBQUERIES_WITH_TOP' value='yes' />
		<customization name='CAP_SELECT_INTO' value='no' />
		<customization name='CAP_SELECT_TOP_INTO' value='yes' />
		<customization name='SQL_AGGREGATE_FUNCTIONS' value='127' />
		<customization name='SQL_SQL_CONFORMANCE' value='4' />
	</customizations>
</connection-customization>

Personnaliser votre connexion ODBC

Faisons l’hypothèse que vous avez établi une connexion ODBC à votre source de données et vérifié qu’il était possible d’obtenir les métadonnées et les données dont vous avez besoin. Vous devez maintenant déterminer si la création d’un extrait ou si l’utilisation de la connexion en direct en l’état vous offre les fonctionnalités dont vous avez besoin. Si c’est le cas, le fichier TDC que vous avez créé est suffisant, et il n’est pas nécessaire de personnaliser votre connexion.

Si le fichier TDC n’offre pas les performances attendues, vous pouvez personnaliser la connexion. Vous devriez avoir une idée de la façon dont vous allez ajuster votre connexion ODBC pour obtenir les performances attendues dans votre environnement. Passez en revue les listes pour voir les personnalisations permettant d’ajuster votre connexion ODBC.

Personnalisations courantes pour l’amélioration des fonctionnalités

Les personnalisations suivantes peuvent vous aider à améliorer les fonctionnalités pour les sources de données dotées de possibilités par défaut qui ne sont pas optimales.

  • CAP_SUPPRESS_DISCOVERY_QUERIES - Définir cette valeur sur true empêche Tableau d’effectuer des requêtes SQL au début de la connexion pour déterminer les possibilités du pilote. Tableau ne pouvant pas déterminer automatiquement les autres possibilités que vous souhaitez activer de manière explicite, pensez à le faire.

  • SQL_SQL_CONFORMANCE - Ce réglage indique le niveau de la norme SQL qui est totalement prise en charge par la source de données. Tableau fonctionnant mieux avec au moins une conformité de niveau entrée, cette valeur doit être au moins 1 si la source de données la prend en charge.

  • SQL_AGGREGATE_FUNCTIONS – Ce réglage indique les fonctions d’agrégation prises en charge, telles que MIN, MAX, SUM. Une valeur de '127' indique une prise en charge pour toutes les fonctions d’agrégation SQL standard.

Gérer des sources de données hautement limitées

Certaines sources de données sont tellement limitées que Tableau ne peut effectuer la procédure de création d’une connexion. Il arrive parfois que cela soit la conséquence d’un incident dans le pilote, ce qui entraine l’arrêt du fonctionnement de Tableau. Vous pouvez utiliser un fichier TDC général pour empêcher Tableau d’envoyer des requêtes ou de vérifier les possibilités pouvant être associées à l’instabilité.

Pour créer ce fichier, vous devez connaître le nom du fournisseur de la base de données et celui du pilote ODBC.

  1. Créez une nouvelle connexion dans Tableau, ouvrez votre fichier journal et recherchez une ligne telle que :
    GenericODBCProtocol::Connect: Detected vendor: 'SQLite' and driver: 'SQLite3 ODBC Driver'
  2. Créez un fichier TDC à l’aide des noms de vendor et de driver répertoriés. Consultez Nom du fournisseur et du pilote à titre d’exemple.

  3. Utilisez des personnalisations, telles que CAP_SUPPRESS_DISCOVERY_QUERIES, pour contraindre l’interaction de Tableau avec une source de données limitée.

Configurer les paramètres des pilotes ODBC

Les pilotes ODBC offrent des boîtes de dialogue interactives pour renseigner des informations de connexion telles que le serveur, le nom d’utilisateur et le mot de passe. Nombre d’entre eux offrent des options avancées pour le contrôle du comportement de connexion. Lorsque vous recherchez des solutions pour améliorer la fonctionnalité et les performances de votre connexion ODBC, pensez à les utiliser. Recherchez en particulier des paramètres qui contrôlent les éléments ci-dessous. Ce sont eux qui ont entraîné les problèmes précédents avec des connexions ODBC dans Tableau :

  • Transaction Isolation (isolation de la transaction)  : privilégiez READ, COMMITTED ou SERIALIZABLE pour garantir que les requêtes n’intègrent pas de données issues de transactions en attente dans leurs résultats.

  • Cursors (curseurs) : privilégiez les curseurs Holdable ou Scrollable aux curseurs Streaming. Tableau fermant une transaction après chaque requête analytique en lecture seule, les curseurs streaming (diffusion en continu) peuvent être tronqués et entraîner des résultats incomplets dans Tableau.

  • Row / Resultset Buffers (tampons lignes/ensemble de résultats)  : prévilégiez les grandes tailles de mémoire tampon pour améliorer les performances des recherches dans de nombreuses lignes. Cela peut améliorer la vitesse de création d’extraits de manière significative. Cela s’appelle parfois la taille du cache ou la taille de la réponse.

  • Character Set (jeu de caractères) : par ordre décroissant de préférence : UTF-16, UTF-8, ASCII.

Personnalisations SQLite avancées

Tableau intègre des personnalisations particulières pour SQLite. Ces personnalisations ont la priorité sur toute autre personnalisation de connexion pour SQLite dans le fichier du classeur, le fichier de la source de données ou le fichier TDS global. Afin d’apporter des modifications avancées à des personnalisations de connexion SQLite, il est nécessaire d’inciter Tableau à ignorer son propre dialecte SQLite. Pour ce faire, remplacez le nom du fournisseur de la base de données (<customization name='SQL_DBMS_NAME' value='SQLite' />) par une autre valeur, telle que SQLite-Tableau.

Référence à la documentation ODBC

Vous trouverez toute la documentation nécessaire sur la norme ODBC dans Microsoft MSDN. Les Annexes ODBC(Le lien s’ouvre dans une nouvelle fenêtre) sont les ressources les plus pertinentes pour cet article, en particulier :

Voir également

Autres bases de données (ODBC) - Décrit comment vous connecter à vos données à l’aide du connecteur ODBC.

Tableau et ODBC – Fournit des informations d’arrière-plan sur ODBC, décrit comment Tableau détermine le fonctionnement d’un pilote ODBC et répertorie les questions fréquemment posées.

Référence des personnalisations des possibilités de Tableau – Répertorie les personnalisations que vous pouvez utiliser pour définir les fonctionnalités de Tableau qui sont prises en charge par la source de données.

Référence des personnalisations ODBC/SQL – Répertorie les personnalisations qui représentent les parties des normes ODBC et SQL prises en charge par les rapports du lecteur d’interface universelle de connexion aux bases de données.

Personnaliser la chaîne de connexion pour un connecteur natif(Le lien s’ouvre dans une nouvelle fenêtre) - Cet article de la Communauté Tableau décrit comment modifier la connexion établie avec un connecteur natif en utilisant la personnalisation odbc-connect-string-extras.

Merci de vos commentaires!Votre commentaire s été envoyé avec succès. Merci!