Exempel: Anpassa en ODBC-anslutning

När du använder en koppling för en databas som har stöd för SQL genererar Tableau SQL-satser som passar den databasen. Eftersom Tableau inte har någon representation av den SQL-dialekt som används av en ODBC-datakälla måste en syntax som stöds härledas via en rad tester. Om en drivrutin lämnar felaktig eller ofullständig information om den SQL-dialekt den använder kan du använda Tableau-anpassningar för att finjustera den här anslutningsinformationen och därmed förbättra funktioner och prestanda.

I den här artikeln går vi igenom hur du skapar en ODBC-anslutning, undersöker den resulterande TDS-filen (Tableau Data Source) och använder en del av den för att skapa en TDC-fil (Tableau Data source Customization) som du sedan kan använda för att anpassa ODBC-anslutningen. Innan du börjar bör du bekanta dig med innehållet i Tableau och ODBC.

Obs! Tableau erbjuder kundsupport på rimliga nivåer för felsökning av anslutningar med ODBC-drivrutiner. Dock har vi inte möjlighet att skapa eller anpassa en anslutning så att den fungerar med en specifik ODBC-drivrutin.

Upprätta en ODBC-anslutning

I det här avsnittet beskrivs hur du skapar en ODBC-anslutning. I exemplet kommer du att ansluta en SQLite-databas med ODBC-drivrutinen för SQLite.

Förutsättningar

ODBC-anslutningen i den här artikeln bygger på SQLite (http://www.sqlite.org/), en databas med öppen källkod.

Du måste ladda ner följande två objekt:

Ansvarsfriskrivning: Denna information hänvisar till en tredjepartsprodukt. Detta är inte ett stöd för den här produkten framför någon annan konkurrerande produkt.

Skapa en anslutning

För att skapa en ODBC-anslutning ansluter du till Northwind-databasen med ODBC-drivrutinen för SQLite3 och sparar sedan anslutningen som en TDS-fil (Tableau Data Source).

  1. Öppna Tableau Desktop.

  2. Under Anslut på startsidan klickar du på Andra databaser (ODBC).

    Obs! Om databasen redan har en koppling som stöds i Tableau(Länken öppnas i ett nytt fönster) kan du klicka på kopplingens namn för att skapa en anslutning.

  3. Välj Drivrutin under Anslut med hjälp av och välj sedan ODBC-drivrutinen för SQLite3 i listrutan.

  4. Klicka på Anslut.

  5. Klicka på Bläddra bredvid textrutan Databasnamn och gå till den plats där filen Northwind.sl3 finns och klicka på Öppna.

  6. Klicka på OK för att stänga dialogrutan och klicka sedan på Logga in.

  7. På sidan Datakälla anger du Orders i textrutan Tabell.

  8. Dra tabellen Orders till arbetsytan och klicka sedan på bladets flik.

    Dialogrutan ”Tableau har identifierat begränsningar för ODBC-datakällan” visas. Du kan granska informationen eller stänga dialogrutan och fortsätta. Mer information finns i Hur Tableau identifierar ODBC-drivrutinens funktioner.

  9. Välj Data > Orders [sökväg till Northwind.sl3] > Lägg till i sparade datakällor.

  10. Klicka på Spara.

  11. Stäng arbetsboken. När du tillfrågas om du vill spara ändringarna klickar du på Nej.

Nu kan du öppna TDS-filen och undersöka SQLite-anslutningen.

Granska XML-strukturen i en TDS-fil

Öppna den sparade TDS-filen (Tableau Data Source) i en textredigerare för att visa dess XML-struktur. Som standard får den fil du skapar ovan namnet Northwind.sl3.tds och finns på följande plats:

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

eller

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

Detta är ett XML-dokument som beskriver SQLite-anslutningen till Orders-tabellen i Northwind. I avsnittet <connection> letar du upp elementet <connection-customization>, som innehåller <customization>-element som du kan redigera.

Namn på leverantör och drivrutin

Avsnittet för anslutningsanpassning inleds med de namn Tableau har identifierat för ODBC-drivrutinen och databasleverantören. Tableau använder den här informationen för att associera en viss anslutningsanpassning med en viss typ av ODBC-datakälla. Så här ser avsnittet ut:

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

Olika typer av anpassning

Tableau tillåter två sorters anpassning: Tableau-specifika funktioner och ODBC API-anrop till SQLGetInfo. De här anpassningarna består av namn-/värde-par, där namnen följer en namngivningskonvention med CAP_ för Tableau-funktioner och SQL_ för SQLGetInfo API-anrop.

Den sparade datakällfilen innehåller exempel på båda typerna av anpassning. Anpassningarna representerar värden som Tableau identifierade genom att skicka frågor till drivrutinen när du anslöt. Listan över anpassningar kan vara ofullständig eller felaktig. Du kan använda anpassningar för att ändra och forma Tableaus beteende vid anslutning till en ODBC-datakälla.

Följande artiklar utgör ett komplett refererensmaterial för anpassningarna. Du bör ha en uppfattning om hur ODBC-anslutningen bör justeras så att den fungerar som förväntat i din miljö. Gå igenom listan för att få en bild av vilka anpassningar du kan använda för att justera ODBC-anslutningen.

Anpassningsvärdenas format

  • Anpassningsvärdena representeras alla av strängar för varje namn-/värde-par.

  • Tableau-funktionerna är alla booleska värden som representeras av ja eller nej.

  • SQLGetInfo-värdena kan vara långa heltalsvärden, korta heltalsvärden eller strängdata, beroende på det förväntade returvärdet på SQLGetInfo för angiven identifierare.

  • Många av heltalsfälten är bitmaskar som representerar en samling funktioner.

Skapa globala anpassningar med en TDC-fil

Om du vill att alla anpassningar ska gälla alla anslutningar för en vissa ODBC-datakälla måste du skapa en TDC-fil (Tableau Data source Customization). Den här filen innehåller bara avsnittet <connection-customization> och används för alla nya Tableau-anslutningar som matchar databasleverantörens namn och drivrutinnamnet i TDC-filen (enligt Namn på leverantör och drivrutin). Alla befintliga arbetsböcker eller datakällor som redan har ett aktiverat anpassningsavsnitt använder bara de anpassningar som finns där, inte TDC-filen.

Viktigt: Tableau vare sig testar eller stöder TDC-filer. Dessa filer är avsedda att användas som ett verktyg för att utforska och ibland även åtgärda problem med dataanslutningen. För att skapa och underhålla TDC-filer krävs noggrann manuell redigering. Observera också att det inte går att dela dessa filer.

Skapa en TDC-fil

När du skapar en TDC-fil måste du spara den på rätt plats så att den kan användas av anslutningen. Om du skapar en arbetsbok som du vill publicera till Tableau Server måste du spara TDC-filen på servern också. Mer information finns i Använda en TDC-fil med Tableau Server(Länken öppnas i ett nytt fönster) i Tableaus kunskapsbas.

Strukturen på en TDC-fil

Varje TDC-fil följer den här grundläggande strukturen:

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

En TDC-fil har tre huvudsektioner:

  • Anpassningsvariabler för anslutningar
  • Namn på leverantörer och drivrutiner
  • Själva anpassningarna

Avsnittet connection-customization inkluderar följande:

  • class: Den datakälla som du vill ansluta till och anpassa.
  • enabled: Anger om anpassningarna av TDC-filanslutningen tillämpas. Alltid satt till ”sant” i TDC-filen.
  • version: Tableau ignorerar versionsnumret.

Nästa avsnitt är avgörande då det identifierar leverantörens och drivrutinens namn gällande databasleverantören för den här TDC-filens datakälla. Varje TDC-fil kan endast kopplas till en datakälla. För våra inbyggda datakällor måste båda dessa namn matcha datakällans klassnamn – såsom ”teradata” för våra Teradata-anslutningar. För ODBC-datakällor måste leverantörens och drivrutinens namn för TDC-filen matcha det som rapporteras till Tableau av databasen och drivrutinen – såsom ”SQLite” och ”SQLite3 ODBC Driver”, respektive.

Det sista avsnittet listar de faktiska anslutningsanpassningarna.

Två exempel på TDC-filer är en generisk ODBC-anslutning och en ändring av en inbyggd Salesforce-anslutning. Observera att detta endast är exempel och att anpassningarna som anges inte har valts för att uppnå ett specifikt mål.

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

Använda TDC-filen med Tableau Desktop

  1. Använd en textredigerare och kopiera och klistra in hela <connection-customization>-avsnittet från den sparade datakällfilen. Använd SQLite TDC-exempelfilen som referens.

  2. Ge filen namnet odbc-sqlite.tdc och spara den i Documents\My Tableau Repository\Datasources.

    Obs! Filen måste sparas med ett .tdc-filnamnstillägg, men namnet spelar ingen roll.

  3. Starta om Tableau Desktop för att använda ändringen.

  4. Skapa en ny anslutning till SQLite enligt beskrivningen i Skapa en anslutning.

  5. Leta upp och öppna loggfilen för Tableau Desktop. Leta efter en post som ser ut som exemplet nedan för att kontrollera att den här anpassningsfilen har använts för den nya anslutningen.

LoggfilsökvägExempel på datapost
Som standard C:\Användare\<användare>\Dokument\Min Tableau-lagringsplats\LoggarFound matching TDC 'C:\\Users\\<name>\\Documents\\My Tableau Repository\\Datasources\\odbc-sqlite.tdc' for class='genericodbc', vendor='SQLite', and driver='SQLite3 ODBC Driver'

Använda TDC-filen med Tableau Prep Builder

  1. Använd en textredigerare och kopiera och klistra in hela <connection-customization>-avsnittet från den sparade datakällfilen. Använd SQLite TDC-exempelfilen som referens.

  2. Ge filen namnet odbc-sqlite.tdc och spara den på följande plats:

    • För Windows:

      Documents\My Tableau Prep Repository\Datasource

    • För Mac:

      Documents/My Tableau Prep Repository/Datasources

    Obs! Filen måste sparas med ett .tdc-filnamnstillägg, men namnet spelar ingen roll.

  3. Starta om Prep så att ändringen träder i kraft.

  4. Leta upp och öppna loggfilen. Leta efter en post som ser ut som exemplet nedan för att kontrollera att den här anpassningsfilen har använts på den nya anslutningen.

LoggfilsökvägExempel på datapost
Som standard C:\Användare\<användare>\Dokument\Min Tableau-lagringsplats\LoggarFound matching TDC 'C:\\Users\\<name>\\Documents\\My Tableau Prep Repository\\Datasources\\odbc-sqlite.tdc' for class='genericodbc', vendor='SQLite', and driver='SQLite3 ODBC Driver'

Använda TDC-filen med Tableau Server

  1. Använd en textredigerare och kopiera och klistra in hela <connection-customization>-avsnittet från den sparade datakällfilen. Använd SQLite TDC-exempelfilen som referens.

  2. Ge filen namnet odbc-sqlite.tdc och spara den på följande plats:

    • För Windows:

      I Tableau Server-versioner äldre än 2018.2:

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

      Från och med Tableau Server version 2018.2:

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

      För alla Tableau Server-versioner:

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

      Du måste vara Windows-administratör för serverdatorn om du ska kunna spara filen.

    • För Linux:

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

    Obs! Filen måste sparas med ett .tdc-filnamnstillägg, men namnet spelar ingen roll. TDC-filen måste sparas på alla servernoder för att få ett enhetligt beteende.

  3. För Tableau Prep Conductor (köra flöden) eller Prep-webbredigering (redigera flöden på webben) måste TDC-filen placeras i ytterligare kataloger.

    Prep Conductor

    • För Windows:

      <data directory>\tabsvc\flowprocessor\Datasources

    • För Linux:

      <data directory>/tabsvc/flowprocessor/Datasources

    Prep-webbredigering

    • För Windows:

      <data directory>\tabsvc\flowminerva\Datasources

    • För Linux:

      <data directory>/tabsvc/flowmineva/Datasources

  4. Starta om Tableau Server för att använda ändringen.

  5. Leta upp och öppna loggfilen för Tableau Server. Leta efter en post som ser ut som exemplet nedan för att kontrollera att den här anpassningsfilen har använts för den nya anslutningen.

LoggfilsökvägExempel på datapost

<installationssökväg>\Tableau Server\data\tabsvc\log\vizqlserver

<installationssökväg>\Tableau Server\data\tabsvc\log\backgrounder

<installationssökväg>\Tableau Server\data\tabsvc\log\dataserver

<installationssökväg>\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'

Exempel på TDC-fil för 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>

Anpassa ODBC-anslutningen

Anta att du har skapat en ODBC-anslutning till en datakälla och kontrollerat att du kan få de metadata och data du behöver. Nu måste du avgöra om du kan få de funktioner du behöver genom att skapa ett extrakt eller använda liveanslutningen som den är. Om så är fallet räcker det med den TDC-fil du skapade och du behöver inte anpassa anslutningen.

Om TDC-filen däremot inte ger det resultat du är ute efter kan du anpassa anslutningen. Du bör ha en uppfattning om hur ODBC-anslutningen bör justeras så att den fungerar som förväntat i din miljö. Gå igenom listan för att få en bild av vilka anpassningar du kan använda för att justera ODBC-anslutningen.

Vanliga anpassningar som förbättrar funktionerna

Följande anpassningar kan förbättra funktionerna för datakällor med standardfunktioner som inte fungerar optimalt.

  • CAP_SUPPRESS_DISCOVERY_QUERIES – Om du anger det här värdet som true skickar Tableau inga SQL-frågor i början av anslutningen för att fastställa drivrutinens egenskaper. Du måste tänka igenom vilka andra funktioner som ska aktiveras uttryckligen, eftersom Tableau inte kan avgöra det automatiskt.

  • SQL_SQL_CONFORMANCE – Den här inställningen talar om vilken SQL-nivå som stöds fullt ut av datakällan. Tableau fungerar bäst med SQL-överensstämmelse på åtminstone ingångsnivå, så det här värdet bör vara minst 1 om datakällan har stöd för det.

  • SQL_AGGREGATE_FUNCTIONS – Den här inställningen talar om vilka aggregerade funktioner som stöds, till exempel MIN, MAX, SUM. Ett värde på '127' anger stöd för alla aggregerade SQL-standardfunktioner.

Hantera extremt begränsade datakällor

Vissa datakällor är så extremt begränsade att Tableau inte kan slutföra anslutningen. Ibland beror detta på krascher i drivrutinen, som medför att Tableau slutar att fungera. Du kan använda en global TDC-fil för att förhindra att Tableau skickar frågor eller kontrollerar funktioner som kan vara kopplade till instabiliteten.

För att skapa den här filen måste du känna till databasleverantörens namn och drivrutinnamnet.

  1. Skapa en ny anslutning i Tableau, öppna loggfilen och leta efter en rad som denna:
    GenericODBCProtocol::Connect: Detected vendor: 'SQLite' and driver: 'SQLite3 ODBC Driver'
  2. Skapa en TDC-fil med det angivna namnet på vendor och driver . Du hittar ett exempel i Namn på leverantör och drivrutin.

  3. Använd anpassningar, som CAP_SUPPRESS_DISCOVERY_QUERIES, för att begränsa Tableaus interaktion med en begränsad datakälla.

Konfigurera inställningar för ODBC-drivrutinen

ODBC-drivrutiner har dialogrutor där du anger anslutningsinformation som server, användarnamn och lösenord. Många har också avancerade alternativ för att styra anslutningens beteende. Fundera på att använda de här alternativen när du letar efter sätt att förbättra funktioner eller prestanda för ODBC-anslutningen. Leta särskilt efter inställningar som styr de objekt som visas nedan, eftersom de tidigare har orsakat problem med ODBC-anslutningar i Tableau:

  • Transaktionsisolering – Helst READ, COMMITTED eller SERIALIZABLE för att säkerställa att frågor inte inkluderar data från väntande transaktioner i resultatet.

  • Markörer – Hellre fasthållningsbar eller rullningsbar än strömmande. Eftersom Tableau stänger en transaktion efter varje skrivskyddad analysfråga kan strömmande markörer trunkeras och leda till att ofullständiga resultat visas i Tableau.

  • Buffertar för rad/resultatuppsättning – Helst större buffertstorlekar för att förbättra prestanda vid hämtning av flera rader, något som kan öka hastigheten avsevärt när extrakt skapas. Detta kallas ibland cachestorlek eller svarsstorlek.

  • Teckenuppsättning – I fallande prioritetsordning: UTF-16, UTF-8, ASCII.

Avancerade SQLite-anpassningar

Tableau har särskilda inbyggda anpassningar för SQLite. De här anpassningarna prioriteras framför andra anslutningsanpassningar för SQLite i en arbetsboksfil, datakällfil eller global TDS-fil. Om du vill göra avancerade ändringar av SQLite-anslutningsanpassningar måste du få Tableau att ignorera sin egen SQLite-dialekt. Det kan du göra genom att ändra det rapporterade databasleverantörsnamnet (<customization name='SQL_DBMS_NAME' value='SQLite' />) till ett annat värde, som SQLite-Tableau.

Referensdokumentation för ODBC

Microsoft Developer Network (MSDN) har dokumentation för ODBC-standarden. Avsnitten med ODBC-bilagor(Länken öppnas i ett nytt fönster) (på engelska) är de mest användbara resurserna, i synnerhet:

Se även

Andra databaser (ODBC) – Beskriver hur du ansluter till dina data med hjälp av ODBC-kopplingen.

Tableau och ODBC – Tillhandahåller bakgrundsinformation om ODBC, beskriver hur Tableau fastställer en ODBC-drivrutins funktionalitet och listar vanliga frågor.

Referens för funktionsanpassningar i Tableau – Listar anpassningar som du kan använda för att definiera vilka Tableau-funktioner som stöds av datakällan.

ODBC/SQL-anpassningsreferens – Listar anpassningar som representerar de delar av ODBC- och SQL-standarderna som ODBC-drivrutinen rapporterar att den stöder.

Customize the Connection String for a Native Connector(Länken öppnas i ett nytt fönster) – Den här artikeln från Tableaus community förklarar hur du använder odbc-connect-string-extras-anpassningen för att ändra en anslutning som upprättas med en inbyggd koppling.

Tack för din feedback!Din feedback har skickats in. Tack!