Voorbeeld: Een ODBC-verbinding aanpassen

Wanneer u een connector gebruikt voor een database die SQL ondersteunt, genereert Tableau SQL-instructies die zijn afgestemd op die database. Omdat Tableau geen representatie heeft van het SQL-dialect dat door een ODBC-databron wordt gebruikt, moet de ondersteunde syntaxis worden afgeleid via diverse tests. Als een stuurprogramma onjuiste of onvolledige informatie rapporteert over het SQL-dialect dat het stuurprogramma ondersteunt, kunt u Tableau-aanpassingen gebruiken om deze verbindingsinformatie nauwkeurig af te stemmen en zo de functionaliteit en prestaties te verbeteren.

In dit artikel leert u hoe u een ODBC-verbinding maakt, het resulterende Tableau Data Source (TDS)-bestand onderzoekt en een deel ervan gebruikt om een Tableau Data Source Customization (TDC)-bestand te maken. Dit bestand kunt u vervolgens gebruiken om uw ODBC-verbinding aan te passen. Voordat u begint, moet u bekend zijn met de inhoud van Tableau en ODBC.

Opmerking: Tableau biedt een redelijke mate van klantondersteuning bij het oplossen van problemen met verbindingen met ODBC-stuurprogramma's, maar kan geen connector maken of aanpassen voor gebruik met een specifiek ODBC-stuurprogramma.

Een ODBC-verbinding maken

In dit gedeelte wordt aan de hand van een voorbeeld uitgelegd hoe u een ODBC-verbinding maakt. In het voorbeeld maakt u verbinding met een SQLite-database via het SQLite ODBC-stuurprogramma.

Vereisten

De ODBC-verbinding in dit artikel is gebaseerd op SQLite (http://www.sqlite.org/), een opensourcedatabase.

U moet de volgende twee items downloaden:

Vrijwaring: deze informatie heeft betrekking op een product van derden. Dit voorbeeld is geen aanbeveling van dit product ten opzichte van andere concurrerende producten.

Een verbinding maken

Om een ODBC-verbinding te maken, maakt u verbinding met de Northwind-database via het SQLite3 ODBC-stuurprogramma. Vervolgens slaat u de verbinding op als een Tableau Data Source (TDS)-bestand.

  1. Open Tableau Desktop.

  2. Klik op de startpagina onder Verbinding maken op Andere databases (ODBC).

    Opmerking: Voor een database die al beschikt over een Door Tableau ondersteunde connector(Link wordt in een nieuw venster geopend), kunt u op de naam van die connector klikken om een verbinding te maken.

  3. Selecteer onder Verbinden maken met de optie Stuurprogramma en kies SQLite3 ODBC-stuurprogramma in de vervolgkeuzelijst.

  4. Klik op Verbinding maken.

  5. Klik naast het tekstvak Databasenaam op Bladeren, navigeer naar de locatie van uw Northwind.sl3-bestand en klik vervolgens op Openen.

  6. Klik op OK om het dialoogvenster te sluiten en klik vervolgens op Aanmelden.

  7. Op de pagina met databronnen gaat u naar het tekstvak Tabel en voert u Orders in.

  8. Sleep de tabel Orders naar het canvas en klik vervolgens op het tabblad van het werkblad.

    Het dialoogvenster 'Tableau heeft beperkingen geïdentificeerd voor de ODBC-databron' wordt weergegeven. U kunt de details bekijken of het dialoogvenster sluiten en doorgaan. Zie Hoe Tableau de mogelijkheden van het ODBC-stuurprogramma bepaalt voor meer informatie.

  9. Selecteer Data > Orders [pad naar Northwind.sl3] > Aan opgeslagen databronnen toevoegen.

  10. Klik op Opslaan.

  11. Sluit de werkmap. Wanneer u wordt gevraagd om de wijzigingen op te slaan, klikt u op Nee.

Nu kunt u het TDS-bestand openen om de SQLite-verbinding te onderzoeken.

De XML-structuur van een TDS-bestand controleren

Open het opgeslagen Tableau Data Source (TDS)-bestand in een teksteditor om de XML-structuur te bekijken. Het bestand dat u hierboven hebt gemaakt, heeft standaard de naam Northwind.sl3.tds en bevindt zich op het volgende pad:

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

of

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

Dit is een XML-document waarin de SQLite-verbinding met de tabel Northwind Orders wordt beschreven. Zoek in de sectie <connection> naar het element <connection-customization>. Dit bevat <customization>-elementen die u kunt bewerken.

Naam van leverancier en stuurprogramma

Het gedeelte voor het aanpassen van de verbinding begint met de namen die Tableau heeft gedetecteerd voor het ODBC-stuurprogramma en de databaseleverancier. Tableau gebruikt deze informatie om een specifieke verbindingsaanpassing te koppelen aan één type ODBC-databron. Het gedeelte ziet er als volgt uit:

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

Aanpassingstypen

Tableau staat twee soorten aanpassingen toe: Tableau-specifieke mogelijkheden en ODBC API-aanroepen voor SQLGetInfo. Deze aanpassingen bestaan uit naam/waardeparen, waarbij de namen een CAP_-conventie volgen voor Tableau-mogelijkheden en SQL_ voor de SQLGetInfo API-aanroepen.

Het opgeslagen databronbestand bevat voorbeelden van beide typen aanpassingen. Deze aanpassingen staan voor de waarden die Tableau kon detecteren via query's aan het stuurprogramma toen u verbinding maakte. De lijst met aanpassingen is mogelijk onvolledig of onjuist. Met aanpassingen kunt u het gedrag van Tableau aanpassen en vormgeven wanneer u verbinding maakt met een ODBC-databron.

De volgende artikelen bevatten een compleet overzicht van de aanpassingen. U moet een idee hebben van hoe u uw ODBC-verbinding moet aanpassen om te zorgen dat deze in uw omgeving naar verwachting presteert. Bekijk de lijsten om een idee te krijgen van de aanpassingen die u kunt gebruiken om uw ODBC-verbinding af te stemmen.

Notatie voor aanpassingswaarden

  • De aanpassingswaarden worden allemaal weergegeven als tekenreeksen voor elk naam/waardepaar.

  • Tableau-mogelijkheden zijn allemaal Booleaanse waarden die worden weergegeven door Ja of Nee.

  • De SQLGetInfo-waarden kunnen een 'long' of 'short' geheel getal zijn, of tekenreeksgegevens, afhankelijk van de verwachte retourwaarde van SQLGetInfo voor de opgegeven ID.

  • Veel gehele getallenvelden zijn bitmaskers die een verzameling mogelijkheden vertegenwoordigen.

Globale aanpassingen maken met een TDC-bestand

Als u uw aanpassingswijzigingen wilt toepassen op alle verbindingen voor een bepaalde ODBC-databron, moet u een Tableau Data Source Customization-bestand (TDC) maken. Dit bestand bevat alleen het gedeelte <connection-customization> en wordt toegepast op elke nieuwe Tableau-verbinding die overeenkomt met de naam van de databaseleverancier en de naam van het stuurprogramma die worden beschreven in het TDC-bestand (zoals vermeld in Naam van leverancier en stuurprogramma). Als een bestaand werkmap- of databronbestand al een ingeschakelde aanpassingssectie heeft, worden alleen de daardoor gedefinieerde aanpassingen gebruikt, en niet het TDC-bestand.

Belangrijk: U kunt TDC-bestanden gebruiken om de functionaliteit van een verbinding aan te passen of om verbindingsproblemen met uw data te diagnosticeren en op te lossen. Tableau is niet in staat niet elke mogelijke wijziging die u in deze bestanden kunt aanbrengen grondig te testen. Het maken en gebruiken van TDC-bestanden vereist handmatige bewerking en het is van cruciaal belang om ze grondig te testen voordat u ze in een productieomgeving implementeert.

Een TDC-bestand maken

Wanneer u een TDC-bestand maakt, moet u dit op de juiste locatie opslaan, zodat het door uw verbinding kan worden gebruikt. Als u een werkmap maakt die u naar Tableau Server wilt publiceren, moet u het TDC-bestand ook op de server opslaan. Zie Een TDC-bestand met Tableau Server gebruiken(Link wordt in een nieuw venster geopend) in de Tableau-knowledgebase voor meer informatie.

Structuur van een TDC-bestand

Elk TDC-bestand volgt deze basisstructuur:

<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>

Een TDC-bestand bestaat uit drie hoofdonderdelen:

  • Variabelen voor het aanpassen van de verbinding
  • Namen van leverancier en stuurprogramma
  • De aanpassingen zelf

Het deel connection-customization bevat het volgende:

  • klasse: de databron waarmee u verbinding wilt maken en die u wilt aanpassen.
  • ingeschakeld: geeft aan of de aanpassingen voor de TDC-bestandsverbinding worden toegepast. In het TDC-bestand altijd ingesteld op ’true’.
  • versie: Tableau negeert het versienummer.

Het volgende gedeelte is van cruciaal belang omdat het de leveranciersnaam en de naam van het stuurprogramma van de databaseprovider voor de databron van dit TDC-bestand identificeert. Elk TDC-bestand kan aan maximaal één databrontype worden gekoppeld. Voor onze eigen databronnen moeten deze namen overeenkomen met de naam van de databronklasse. Bijvoorbeeld ’teradata’ voor onze Teradata-verbindingen. Voor ODBC-databronnen moeten de leveranciersnaam en de naam van het stuurprogramma van het TDC-bestand overeenkomen met wat door de database en het stuurprogramma aan Tableau wordt gemeld. Bijvoorbeeld respectievelijk ‘SQLite’ en ’SQLite3 ODBC-stuurprogramma’.

In het laatste gedeelte worden de daadwerkelijke verbindingsaanpassingen vermeld.

Hier zijn twee voorbeelden van TDC-bestanden: ten eerste een generieke ODBC-verbinding en ten tweede een wijziging van een native Salesforce-verbinding. Houd er rekening mee dat deze slechts ter illustratie dienen en dat de vermelde aanpassingen niet zijn geselecteerd om een specifiek doel te bereiken.

<?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>

Het TDC-bestand gebruiken met Tableau Desktop

  1. Gebruik een teksteditor om het volledige gedeelte <connection-customization> van uw opgeslagen databronbestand te kopiëren en plakken. Zie Voorbeeld van een SQLite TDC-bestand ter referentie.

  2. Geef het bestand de naam odbc-sqlite.tdc en sla het op naar Documents\My Tableau Repository\Datasources.

    Opmerking: Het bestand moet worden opgeslagen met de extensie .tdc, maar de naam doet er niet toe.

  3. Start Tableau Desktop opnieuw op om de wijziging toe te passen.

  4. Maak een nieuwe verbinding met SQLite zoals beschreven in Een verbinding maken.

  5. Ga naar het logbestand van Tableau Desktop, open dit en zoek naar een record die lijkt op het onderstaande voorbeeld om te controleren of dit aanpassingsbestand is toegepast op uw nieuwe verbinding.

Locatie van logboekbestandVoorbeeld van record
Standaard is dit: C:\Gebruikers\<gebruiker>\Documenten\My Tableau Repository\LogsFound matching TDC 'C:\\Users\\<name>\\Documents\\My Tableau Repository\\Datasources\\odbc-sqlite.tdc' for class='genericodbc', vendor='SQLite', and driver='SQLite3 ODBC Driver'

Het TDC-bestand gebruiken met Tableau Prep Builder

  1. Gebruik een teksteditor om het volledige gedeelte <connection-customization> van uw opgeslagen databronbestand te kopiëren en plakken. Zie Voorbeeld van een SQLite TDC-bestand ter referentie.

  2. Geef het bestand de naam odbc-sqlite.tdc en sla het op de volgende locatie op:

    • Voor Windows:

      Documents\My Tableau Prep Repository\Datasource

    • Voor Mac:

      Documents/My Tableau Prep Repository/Datasources

    Opmerking: Het bestand moet worden opgeslagen met de extensie .tdc, maar de naam doet er niet toe.

  3. Start Tableau Prep opnieuw op om de wijziging toe te passen.

  4. Open het logbestand en zoek naar een record die lijkt op het onderstaande voorbeeld om te controleren of dit aanpassingsbestand is toegepast op uw nieuwe verbinding.

Locatie van logboekbestandVoorbeeld van record
Standaard is dit: C:\Gebruikers\<gebruiker>\Documenten\My Tableau Prep Repository\LogsFound matching TDC 'C:\\Users\\<name>\\Documents\\My Tableau Prep Repository\\Datasources\\odbc-sqlite.tdc' for class='genericodbc', vendor='SQLite', and driver='SQLite3 ODBC Driver'

Het TDC-bestand gebruiken met Tableau Server

  1. Gebruik een teksteditor om het volledige gedeelte <connection-customization> van uw opgeslagen databronbestand te kopiëren en plakken. Zie Voorbeeld van een SQLite TDC-bestand ter referentie.

  2. Geef het bestand de naam odbc-sqlite.tdc en sla het op de volgende locatie op:

    • Voor Windows:

      In Tableau Server-versies lager dan 2018.2:

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

      Vanaf Tableau Server-versie 2018.2:

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

      Of voor alle Tableau Server-versies:

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

      Om het bestand op te slaan, moet u een Windows-beheerder zijn op de servercomputer.

    • Voor Linux:

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

    Opmerking: Het bestand moet worden opgeslagen met de extensie .tdc, maar de naam doet er niet toe. Voor consistent gedrag moet het TDC-bestand op alle serverknooppunten worden opgeslagen.

  3. Voor Tableau Prep Conductor (flows uitvoeren) of Prep Web Authoring (flows bewerken op het web) moet het TDC-bestand in extra mappen worden geplaatst.

    Prep Conductor

    • Voor Windows:

      <data directory>\tabsvc\flowprocessor\Datasources

    • Voor Linux:

      <data directory>/tabsvc/flowprocessor/Datasources

    Prep Web Authoring

    • Voor Windows:

      <data directory>\tabsvc\flowminerva\Datasources

    • Voor Linux:

      <data directory>/tabsvc/flowmineva/Datasources

  4. Start Tableau Server opnieuw op om de wijziging toe te passen.

  5. Ga naar het logbestand van Tableau Server, open dit en zoek naar een record die lijkt op het onderstaande voorbeeld om te controleren of dit aanpassingsbestand is toegepast op uw nieuwe verbinding.

Locatie van logboekbestandVoorbeeld van record

<installatiepad>\Tableau Server\data\tabsvc\log\vizqlserver

<installatiepad>\Tableau Server\data\tabsvc\log\backgrounder

<installatiepad>\Tableau Server\data\tabsvc\log\dataserver

<installatiepad>\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'

Voorbeeld van SQLite TDC-bestand

<?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>

Uw ODBC-verbinding aanpassen

Stel dat u een ODBC-verbinding hebt gemaakt met uw databron en hebt gecontroleerd of u de benodigde metadata en data kunt ophalen. Nu moet u bepalen of u de gewenste functionaliteit krijgt door een extract te maken of door de liveverbinding te gebruiken. In dat geval is het TDC-bestand dat u hebt gemaakt afdoende en hoeft u de verbinding niet aan te passen.

Als het TDC-bestand niet naar wens functioneert, kunt u de verbinding aanpassen. U moet een idee hebben van hoe u uw ODBC-verbinding moet aanpassen om te zorgen dat deze in uw omgeving naar verwachting presteert. Bekijk de lijsten om te zien welke aanpassingen u kunt gebruiken om uw ODBC-verbinding af te stemmen.

Veelvoorkomende aanpassingen voor het verbeteren van de functionaliteit

Met de volgende aanpassingen kunt u de functionaliteit verbeteren voor databronnen met standaardmogelijkheden die niet optimaal zijn.

  • CAP_SUPPRESS_DISCOVERY_QUERIES – Door deze waarde in te stellen op true voorkomt u dat Tableau SQL-query's uitvoert aan het begin van de verbinding om de mogelijkheden van het stuurprogramma te bepalen. U moet overwegen welke andere mogelijkheden expliciet moeten worden ingeschakeld, aangezien Tableau dat niet automatisch kan bepalen.

  • SQL_SQL_CONFORMANCE – Deze instelling geeft aan welk niveau van de SQL-standaard volledig wordt ondersteund door de databron. Tableau werkt het beste met minimaal conformiteit op instapniveau. Deze waarde moet daarom ten minste 1 zijn als de databron dit ondersteunt.

  • SQL_AGGREGATE_FUNCTIONS – Deze instelling geeft aan welke aggregaatfuncties worden ondersteund, zoals MIN, MAX, SUM. Een waarde van '127' geeft aan dat alle standaard SQL-aggregaatfuncties worden ondersteund.

Omgaan met zeer beperkte databronnen

Sommige databronnen zijn zo beperkt dat Tableau de stappen voor het maken van een verbinding niet kan voltooien. Soms wordt dit veroorzaakt door crashes in het stuurprogramma, waardoor Tableau niet meer werkt. Met een globaal TDC-bestand kunt u voorkomen dat Tableau query's uitvoert of controleert op mogelijkheden die mogelijk verband houden met de instabiliteit.

Om dit bestand te kunnen maken, moet u de naam van de databaseleverancier en de naam van het ODBC-stuurprogramma weten.

  1. Maak een nieuwe verbinding in Tableau, open uw logbestand en zoek naar een regel zoals de volgende:
    GenericODBCProtocol::Connect: Detected vendor: 'SQLite' and driver: 'SQLite3 ODBC Driver'
  2. Maak een TDC-bestand met de vermelde namen van de vendor en het driver . Zie Naam van leverancier en stuurprogramma voor een voorbeeld.

  3. Gebruik aanpassingen zoals CAP_SUPPRESS_DISCOVERY_QUERIES om de interactie van Tableau met een beperkte databron te minimaliseren.

ODBC-stuurprogramma-instellingen configureren

ODBC-stuurprogramma's bieden dialoogvensters waarin u verbindingsgegevens kunt opgeven, zoals de server, de gebruikersnaam en het wachtwoord. Veel apps bieden geavanceerde opties voor het regelen van het verbindingsgedrag. U moet deze opties overwegen wanneer u manieren onderzoekt om de functionaliteit of prestaties van uw ODBC-verbinding te verbeteren. Zoek met name naar instellingen waarmee de hieronder vermelde items worden beheerd. Deze items hebben in het verleden namelijk problemen met ODBC-verbindingen in Tableau veroorzaakt:

  • Transactie-isolatie - Geef de voorkeur aan READ, COMMITTED of SERIALIZABLE om te zorgen dat query's geen data van lopende transacties in hun resultaten bevatten.

  • Cursors - Geef de voorkeur aan 'Holdable' of 'Scrollable' cursors boven 'Streaming' cursors. Omdat Tableau een transactie sluit na elke analytische alleen-lezen-query, kunnen Streaming cursors worden afgekapt en ertoe leiden dat onvolledige resultaten in Tableau worden weergegeven.

  • Buffers voor rij-/resultatensets - Geef de voorkeur aan grotere buffers om de prestaties bij het ophalen van meerdere rijen te verbeteren, wat de snelheid van het maken van extracten aanzienlijk kan verbeteren. Dit wordt soms ook wel de cachegrootte of responsgrootte genoemd.

  • Tekenset - In afnemende volgorde van voorkeur: UTF-16, UTF-8, ASCII.

Geavanceerde SQLite-aanpassingen

Tableau heeft speciale aanpassingen voor SQLite die in het product zijn ingebouwd. Deze aanpassingen hebben voorrang op eventuele verbindingsaanpassingen voor SQLite in het werkmapbestand, het databronbestand of het globale TDS-bestand. Als u geavanceerde wijzigingen wilt aanbrengen in SQLite-verbindingsaanpassingen, moet u ervoor zorgen dat Tableau het eigen SQLite-dialect negeert. U kunt dit doen door de vermelde naam van de databaseleverancier (<customization name='SQL_DBMS_NAME' value='SQLite' />) te wijzigen naar een andere waarde, zoals SQLite-Tableau.

Referentie voor ODBC-documentatie

Microsoft MSDN bevat documentatie voor de ODBC-standaard. De pagina ODBC Appendixes(Link wordt in een nieuw venster geopend) is het meest toepasbaar als bron voor de artikelinformatie, met name:

Zie ook

Andere databases (ODBC) – Beschrijft hoe u via de ODBC-connector verbinding kunt maken met uw data.

Tableau en ODBC – Biedt achtergrondinformatie over ODBC, beschrijft hoe Tableau de functionaliteit van een ODBC-stuurprogramma bepaalt en geeft een overzicht van veelgestelde vragen.

Referentie Tableau-functieaanpassingen – Hierin vindt u een overzicht van de aanpassingen waarmee u kunt definiëren welke Tableau-functies door de databron worden ondersteund.

Referentie ODBC/SQL-aanpassingen – Geeft een lijst met aanpassingen weer die de onderdelen van de ODBC- en SQL-standaarden vertegenwoordigen waarvan het ODBC-stuurprogramma rapporteert dat ze worden ondersteund.

De verbindingstekenreeks voor een native connector aanpassen(Link wordt in een nieuw venster geopend) – In dit artikel in Tableau Community wordt beschreven hoe u een verbinding kunt wijzigen die met een native connector is gemaakt met aanpassing van odbc-connect-string-extras.

Bedankt voor uw feedback.De feedback is verzonden. Dank u wel.