Esempio: personalizzare una connessione ODBC

Quando utilizzi un connettore per un database che supporta SQL, Tableau genera istruzioni SQL ottimizzate per tale database. Poiché Tableau non ha alcuna rappresentazione del dialetto SQL utilizzato da un’origine dati ODBC, deve dedurre la sintassi supportata attraverso una varietà di test. Se un driver segnala informazioni errate o incomplete sul dialetto SQL supportato, puoi utilizzare le personalizzazioni di Tableau per ottimizzare queste informazioni di connessione per migliorare le funzionalità e le prestazioni.

In questo articolo verrà descritto come creare una connessione ODBC, esaminare il file di origine dati di Tableau (TDS) risultante e utilizzare una parte di tale file per creare un file di personalizzazione dell’origine dati di Tableau (TDC), che potrai quindi utilizzare per personalizzare la connessione ODBC. Prima di iniziare, devi acquisire familiarità con il contenuto in Tableau e ODBC.

Nota: Tableau fornirà livelli ragionevoli di assistenza ai clienti per la risoluzione dei problemi di connessione con i driver ODBC, ma non può creare o personalizzare un connettore per lavorare con uno specifico driver ODBC.

Stabilire una connessione ODBC

In questa sezione viene illustrato come puoi creare una connessione ODBC utilizzando un esempio. In questo esempio eseguirai la connessione a un database SQLite utilizzando il driver ODBC SQLite.

Prerequisiti

La connessione ODBC in questo articolo è basata su SQLite (http://www.sqlite.org/), un database open source.

Devi scaricare i due elementi seguenti:

Dichiarazione di non responsabilità: queste informazioni si riferiscono a un prodotto di terzi. Questo esempio non è un’approvazione di questo prodotto rispetto ad altri prodotti concorrenti.

Creare una connessione

Per creare una connessione ODBC, devi eseguire la connessione al database Northwind utilizzando il driver ODBC SQLite3 e quindi salvare la connessione come file di origine dati di Tableau (TDS).

  1. Apri Tableau Desktop.

  2. Nella pagina iniziale, in Connetti fai clic su Altri database (ODBC).

    Nota: per un database che dispone già di un connettore supportato da Tableau(Il collegamento viene aperto in una nuova finestra), puoi fare clic sul nome di tale connettore per creare una connessione.

  3. In Connetti utilizzando, seleziona Driver e quindi nell’elenco a discesa seleziona Driver ODBC SQLite3.

  4. Fai clic su Connetti.

  5. Accanto alla casella di testo Nome di database, fai clic su Sfoglia, naviga alla posizione del file Northwind.sl3, quindi fai clic su Apri.

  6. Fai clic su OK per chiudere la finestra di dialogo, quindi fai clic su Accedi.

  7. Nella pagina dell’origine dati, immetti Orders nella casella di testo Tabella.

  8. Trascina la tabella Ordini sul canvas, quindi seleziona la scheda foglio.

    Verrà visualizzata una finestra di dialogo "Tableau ha individuato alcune limitazioni per l’origine dati ODBC". Puoi esaminare i dettagli o ignorare la finestra di dialogo e continuare. Per maggiori informazioni, consulta l’articolo In che modo Tableau determina le funzionalità del driver ODBC.

  9. Seleziona Dati > Ordini [percorso verso Northwind.sl3] > Aggiungi a origini dati salvate.

  10. Fai clic su Salva.

  11. Chiudi la cartella di lavoro. Quando viene richiesto di salvare le modifiche, fai clic su No.

Ora puoi aprire il file TDS per esaminare la connessione SQLite.

Esaminare la struttura XML di un file TDS

Apri il file dell’origine dati di Tableau (TDS) salvato in un editor di testo per visualizzarne la struttura XML. Per impostazione predefinita, il file creato in precedenza è denominato Northwind.sl3.tds e si trova nel percorso seguente:

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

oppure

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

Si tratta di un documento XML che descrive la connessione SQLite alla tabella Ordini Northwind. All’interno della sezione <connection>, trova l’elemento <connection-customization> che contiene gli elementi <customization> che puoi modificare.

Nome del fornitore e del driver

La sezione di personalizzazione della connessione inizia con i nomi che Tableau ha rilevato per il driver ODBC e il fornitore del database. Tableau utilizza queste informazioni per associare una specifica personalizzazione della connessione a un unico tipo di origine dati ODBC. La sezione appare così:

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

Tipi di personalizzazioni

Tableau consente due tipi di personalizzazione: funzionalità specifiche di Tableau e chiamate dell’API ODBC a SQLGetInfo. Queste personalizzazioni sono costituite da coppie nome/valore, con i nomi che seguono una convenzione di CAP_ per le funzionalità di Tableau e SQL_ per le chiamate dell’API SQLGetInfo.

Il file di origine dati salvato contiene esempi di entrambi i tipi di personalizzazione. Queste personalizzazioni rappresentano i valori che Tableau è stato in grado di rilevare inviando query al driver quando hai effettuato la connessione. L’elenco delle personalizzazioni potrebbe essere incompleto o non corretto. Puoi utilizzare la personalizzazione per modificare e modellare il comportamento di Tableau quando esegui la connessione a un’origine dati ODBC.

Gli articoli seguenti contengono un riferimento completo per le personalizzazioni. Dovresti avere un’idea di come regolare la connessione ODBC per un’esecuzione come attesto nel tuo ambiente. Esamina gli elenchi per ottenere un’idea delle personalizzazioni che puoi utilizzare per ottimizzare la connessione ODBC.

Formato dei valori di personalizzazione

  • I valori di personalizzazione sono tutti rappresentati come stringhe per ogni coppia nome/valore.

  • Le funzionalità di Tableau sono tutti valori booleani rappresentati da Sì o No.

  • I valori di SQLGetInfo possono essere numeri interi lunghi, numero interi minimi o dati di stringa, a seconda del valore restituito previsto di SQLGetInfo per l’identificatore dato.

  • Molti dei campi con numeri interi sono bitmask che rappresentano un insieme di funzionalità.

Eseguire personalizzazioni globali con un file TDC

Per applicare le modifiche di personalizzazione a tutte le connessioni per una determinata origine dati ODBC, devi creare un file di personalizzazione dell’origine dati di Tableau (TDC). Questo file contiene solo la sezione <connection-customization> e viene applicato a qualsiasi nuova connessione Tableau che corrisponda al nome del fornitore del database e al nome del driver descritto nel file TDC (come indicato in Nome del fornitore e del driver). Qualsiasi file di cartella di lavoro o di origine dati già esistente che dispone di una sezione di personalizzazione abilitata utilizzerà solo le personalizzazioni fornite, non il file TDC.

Importante: Tableau non testa o supporta i file TDC. Questi file dovrebbero essere utilizzati come strumento per esplorare o, occasionalmente, risolvere problemi con la connessione dati. La creazione e la manutenzione dei file TDC richiede un’attenta modifica manuale e non vi è alcun supporto per la loro condivisione.

Creare un file TDC

Quando crei un file TDC, devi salvarlo nel percorso corretto in modo che possa essere utilizzato dalla connessione. Se crei una cartella di lavoro che desideri pubblicare in Tableau Server, devi salvare anche il file TDC nel server. Per maggiori informazioni, consulta Utilizzo di un file TDC con Tableau Server(Il collegamento viene aperto in una nuova finestra) nella Knowledge Base di Tableau.

Struttura di un file TDC

Ogni file TDC presenta la seguente struttura di 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 file TDC contiene tre sezioni principali:

  • Variabili di personalizzazione della connessione
  • Nome del fornitore e del driver
  • Le personalizzazioni stesse

La sezione connection-customization comprende quanto segue:

  • class: l’origine dati che desideri connettere e personalizzare.
  • enabled: specifica se vengono applicate le personalizzazioni della connessione del file TDC. Nel file TDC, sempre impostato su "true".
  • version: Tableau ignora il numero di versione.

La sezione successiva è fondamentale perché identifica il nome del fornitore e il nome del driver del fornitore del database per l’origine dati del file TDC. Ogni file TDC può eseguire il binding di un solo tipo di origine dati. Per le nostre origini dati native, entrambi questi nomi devono corrispondere al nome della classe dell’origine dati, ad esempio "teradata" per le connessioni Teradata. Per le origini dati ODBC, il nome del fornitore e il nome del driver del file TDC devono corrispondere a quanto segnalato a Tableau dal database e dal driver, ad esempio "SQLite" e "SQLite3 ODBC Driver", rispettivamente.

Nella sezione finale sono elencate le personalizzazioni effettive della connessione.

Ecco due file TDC di esempio: il primo, una connessione ODBC generica e il secondo, una modifica a una connessione Salesforce nativa. Si noti che questi sono solo a scopo esemplificativo e le personalizzazioni elencate non sono selezionate per ottenere un obiettivo specifico.

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

Usare il file TDC con Tableau Desktop

  1. Utilizzando un editor di testo, copia e incolla l’intera sezione <connection-customization> del file di origine dati salvato. Come riferimento, vedi il file campione TDC SQLite.

  2. Assegna un nome al file odbc-sqlite.tdc e salvalo in Documents\My Tableau Repository\Datasources.

    Nota: il file deve essere salvato con un’estensione .tdc, ma il nome è indifferente.

  3. Riavvia Tableau Desktop per applicare la modifica.

  4. Crea una nuova connessione a SQLite come descritto in Creare una connessione.

  5. Trova il file di log di Tableau Desktop e aprilo, quindi cerca un record simile all’esempio seguente per verificare che questo file di personalizzazione sia stato applicato alla nuova connessione.

Posizione del file di logEsempio di record
Per impostazione predefinita, C:\Users\<utente>\Documents\Repository personale di Tableau\LogsFound matching TDC 'C:\\Users\\<name>\\Documents\\My Tableau Repository\\Datasources\\odbc-sqlite.tdc' for class='genericodbc', vendor='SQLite', and driver='SQLite3 ODBC Driver'

Utilizzare il file TDC con Tableau Prep Builder

  1. Utilizzando un editor di testo, copia e incolla l’intera sezione <connection-customization> del file di origine dati salvato. Come riferimento, vedi il file campione TDC SQLite.

  2. Denomina il file odbc-sqlite.tdc e salvalo nel percorso seguente:

    • Per Windows:

      Documents\My Tableau Prep Repository\Datasource

    • Per Mac:

      Documents/My Tableau Prep Repository/Datasources

    Nota: il file deve essere salvato con un’estensione .tdc, ma il nome è indifferente.

  3. Riavvia Prep per applicare la modifica.

  4. Trova il file di log e aprilo, quindi cerca un record simile all’esempio seguente per verificare che questo file di personalizzazione sia stato applicato alla nuova connessione.

Posizione del file di logEsempio di record
Per impostazione predefinita, C:\Users\<utente>\Documenti\Repository personale di Tableau Prep\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'

Utilizzare il file TDC con Tableau Server

  1. Utilizzando un editor di testo, copia e incolla l’intera sezione <connection-customization> del file di origine dati salvato. Come riferimento, vedi il file campione TDC SQLite.

  2. Denomina il file odbc-sqlite.tdc e salvalo nel percorso seguente:

    • Per Windows:

      Nelle versioni di Tableau Server precedenti a 2018.2:

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

      Dalla versione di Tableau Server 2018.2:

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

      In alternativa, per tutte le versioni di Tableau Server:

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

      Per salvare il file, devi essere un amministratore di Windows nel computer del server.

    • Per Linux:

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

    Nota: il file deve essere salvato con un’estensione .tdc, ma il nome è indifferente. Il file TDC deve essere salvato in tutti i nodi del server per un comportamento coerente.

  3. Per Tableau Prep Conductor (flussi in esecuzione) o il Web authoring di Prep (modifica dei flussi sul Web), il file TDC deve essere inserito in directory aggiuntive.

    Prep Conductor

    • Per Windows:

      <data directory>\tabsvc\flowprocessor\Datasources

    • Per Linux:

      <data directory>/tabsvc/flowprocessor/Datasources

    Web authoring di Prep

    • Per Windows:

      <data directory>\tabsvc\flowminerva\Datasources

    • Per Linux:

      <data directory>/tabsvc/flowmineva/Datasources

  4. Riavvia Tableau Server per applicare la modifica.

  5. Trova il file di log di Tableau Server e aprilo, quindi cerca un record simile all’esempio seguente per verificare che questo file di personalizzazione sia stato applicato alla nuova connessione.

Posizione del file di logEsempio di record

<percorso di installazione>\Tableau Server\data\tabsvc\log\vizqlserver

<percorso di installazione>\Tableau Server\data\tabsvc\log\backgrounder

<percorso di installazione>\Tableau Server\data\tabsvc\log\dataserver

<percorso di installazione>\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'

File TDC SQLite di esempio

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

Personalizzare la connessione ODBC

Supponi di aver effettuato una connessione ODBC alla tua origine dati e di aver verificato che puoi ottenere i metadati e i dati di cui hai bisogno. A questo punto devi determinare se creare un’estrazione o usare la connessione live così com’è consente di ottenere le funzionalità di cui necessiti. In caso affermativo, il file TDC creato è sufficiente e non è necessario personalizzare la connessione.

Se il file TDC non ha le prestazioni desiderate, è possibile personalizzare la connessione. Dovresti avere un’idea di come regolare la connessione ODBC per un’esecuzione come attesto nel tuo ambiente. Esamina gli elenchi per vedere le personalizzazioni che puoi utilizzare per ottimizzare la connessione ODBC.

Personalizzazioni comuni per migliorare le funzionalità

Le personalizzazioni seguenti consentono di migliorare la funzionalità per le origini dati con funzionalità predefinite non ottimali.

  • CAP_SUPPRESS_DISCOVERY_QUERIES – L’impostazione di questo valore su true impedisce a Tableau di eseguire query SQL all’inizio della connessione per determinare le funzionalità del driver. Dovrai considerare quali altre funzionalità devono essere abilitate esplicitamente, poiché Tableau non sarà in grado di determinare automaticamente tali funzionalità.

  • SQL_SQL_CONFORMANCE – Questa impostazione indica il livello dello standard SQL pienamente supportato dall’origine dati. Tableau funziona meglio con almeno la conformità di base, quindi questo valore dovrebbe essere almeno 1 se l’origine dati lo supporta.

  • SQL_AGGREGATE_FUNCTIONS – Questa impostazione indica quali funzioni aggregate sono supportate, ad esempio MIN, MAX, SUM. Un valore pari a '127' indica il supporto per tutte le funzioni di aggregazione SQL standard.

Gestire origini dati molto limitate

Alcune origini dati sono talmente limitate che Tableau non è in grado di completare le fasi di creazione di una connessione. A volte ciò è causato da arresti anomali all’interno del driver che provocano la cessazione dell’operatività di Tableau. Puoi utilizzare un file TDC globale per impedire a Tableau di inviare query o controllare le funzionalità che potrebbero essere associate all’instabilità.

Per creare questo file, devi conoscere il nome del fornitore del database e il nome del driver ODBC.

  1. Crea una nuova connessione in Tableau, apri il file di log e quindi cerca una riga come la seguente:
    GenericODBCProtocol::Connect: Detected vendor: 'SQLite' and driver: 'SQLite3 ODBC Driver'
  2. Crea un file TDC con il nome vendor e il nome driver elencati. Per un esempio, vedi Nome del fornitore e del driver.

  3. Utilizza le personalizzazioni, ad esempio CAP_SUPPRESS_DISCOVERY_QUERIES, per limitare l’interazione di Tableau con un’origine dati limitata.

Configurare le impostazioni del driver ODBC

I driver ODBC forniscono finestre di dialogo per specificare dettagli di connessione quali il server, il nome utente e la password. Molti offrono opzioni avanzate per il controllo del comportamento di connessione. Queste opzioni dovrebbero essere prese in considerazione quando si esaminano modi per migliorare la funzionalità o le prestazioni della connessione ODBC. In particolare, cerca le impostazioni che controllano le voci elencate di seguito, in quanto sono state la causa di precedenti problemi con le connessioni ODBC in Tableau:

  • Isolamento delle transazioni – Rendi READ, COMMITTED o SERIALIZABLE come preferiti per assicurarti che le query non includano dati da transazioni in sospeso nei risultati.

  • Cursori – Dai la precedenza a Pressione continua consentita o Scorrimento consentito rispetto ai cursori Streaming. Poiché Tableau chiude una transazione dopo ogni query analitica di sola lettura, i cursori Streaming possono diventare troncati e portare a risultati incompleti visualizzati in Tableau.

  • Buffer di riga/insieme di risultati – Preferisci dimensioni del buffer più grandi per migliorare le prestazioni del recupero di numerose file, che può migliorare notevolmente la velocità di creazione di estrazioni. Questa opzione viene talvolta definita dimensione della cache o dimensione della risposta.

  • Insieme di caratteri – In ordine di preferenza decrescente: UTF-16, UTF-8, ASCII.

Personalizzazioni SQLite avanzate

Tableau dispone di personalizzazioni speciali per SQLite integrate nel prodotto. Queste personalizzazioni hanno la precedenza sulle personalizzazioni delle connessioni per il file SQLite nella cartella di lavoro, nel file di origine dati o nel file TDS globale. Per apportare modifiche avanzate alle personalizzazioni della connessione SQLite, devi indurre Tableau a ignorare il proprio dialetto SQLite. A tale scopo, puoi modificare il nome visualizzato del fornitore del database (<customization name='SQL_DBMS_NAME' value='SQLite' />) in un valore diverso, ad esempio SQLite-Tableau.

Documentazione di riferimento per ODBC

L’MSDN di Microsoft dispone della documentazione per lo standard ODBC. Le appendici ODBC(Il collegamento viene aperto in una nuova finestra) sono le più applicabili come risorse per le informazioni sugli articoli, in particolare:

Vedi anche

Altri database (ODBC) - Descrive come eseguire la connessione ai dati utilizzando il connettore ODBC.

Tableau e ODBC - Fornisce informazioni di base su ODBC, descrive come Tableau determina la funzionalità di un driver ODBC ed elenca le domande più frequenti.

Riferimento delle personalizzazioni della funzionalità di Tableau - Elenca le personalizzazioni che è possibile utilizzare per definire quali funzionalità di Tableau sono supportate dall’origine dati.

Riferimento delle personalizzazioni ODBC/SQL - Elenca le personalizzazioni che rappresentano le parti degli standard ODBC e SQL supportate dal driver ODBC.

Customize the Connection String for a Native Connector(Il collegamento viene aperto in una nuova finestra) - Questo articolo della community di Tableau descrive come modificare la connessione effettuata con un connettore nativo utilizzando la personalizzazione odbc-connect-string-extras.

Grazie per il tuo feedback.Il tuo feedback è stato inviato. Grazie!