KNOWLEDGE BASE

Limitazioni alle dimensioni dei dati e dei file con origini dati basate su Jet


Pubblicato: 11 Apr 2017
Data dell'ultima modifica: 20 Jul 2023

Problema

Quando provi a connetterti a un'origine dati basata sul motore di database Microsoft Jet, come file Excel, Access o di testo (CSV), potresti riscontrare errori imprevisti dovuti alle limitazioni nel motore di database Jet.  La tecnologia Microsoft Jet è utilizzata con le versioni di Tableau Desktop precedenti alla versione 8.2 per i file Excel e CSV o quando si utilizza il connettore legacy per Tableau Desktop 8.2 e versioni successive.

Dati conosciuti o limitazioni di dimensione dei file

  • Lavorare con i file CSV può essere problematico.
    Non c'è un limite di dimensioni ufficiale o documentato, ma come linea guida generale, mantieni un file CSV più piccolo di 4 GB. Anche se puoi connetterti a un file CSV più grande di 4 GB, un'estrazione potrebbe causare un errore come:

    Query too complex (Query troppo complessa)

    Inoltre, quando provi a connetterti a un file CSV grande, anche se c'è spazio temporaneo sul disco, potrebbe verificarsi un errore relativo alla mancanza di spazio temporaneo sul disco.

  • La dimensione della tabella ha un limite di 255 colonne (campi). In molti casi, Jet non funziona quando supera il limite di 255 colonne.

  • L'unione contiene più di 255 colonne (campi). Se un'unione contiene più di 255 colonne, si verifica il seguente errore:

    Database error 0x800004005: Too many fields defined (Errore di database 0x800004005: troppi campi definiti)

    Nota: Le unioni possono contenere più di 255 colonne se nella query SQL personalizzata stai usando una dichiarazione UNION ALL. Se usi UNION ALL, il numero totale di colonne nell'unione è uguale al numero di colonne contate ogni volta che viene usata la dichiarazione UNION ALL. Questo può comportare il superamento del numero massimo di colonne. Ad esempio, supponi di avere UNION ALL in 3 tabelle con 102 colonne ciascuna. La dichiarazione SELECT * FROM "Table1" UNION ALL SELECT * FROM "Table2" UNION ALL SELECT * FROM "Table3" conta 306 colonne e quindi supera il limite di colonne di Jet.

  • I campi Nota nelle origini dati di Access potrebbero essere troncati dopo 255 caratteri.

  • I nomi delle tabelle e dei file hanno un limite di 64 caratteri. Se una tabella o un nome file supera il limite di 64 caratteri, durante la connessione all'origine dati da Tableau, potresti riscontrare uno dei seguenti messaggi di errore:
    • An error occurred while communicating with data source <data-source-file-name>… (Si è verificato un errore durante la comunicazione con l'origine dati <origine-dati-nome-file>…) con il consiglio aggiuntivo di verificare le autorizzazioni.)
    • <data-source-file-name> is not a valid file name…. (<origine-dati-nome-file> non è un nome file valido….) Controlla la punteggiatura o la presenza di altri caratteri non consentiti nel nome del file.
    • Unable to open the text file…. (Impossibile aprire il file di testo...) Controlla il tipo di file e le tue autorizzazioni.
    • The table <table-name> does not exist. (La tabella <nome-tabella> non esiste.)
  • I nomi dei campi non possono superare i 255 caratteri. Anche se Jet può leggere i campi con i nomi più lunghi, molte operazioni eseguite su quei campi restituiscono un errore "Sconosciuto". Questo limita comporta anche la sparizione senza preavviso di campi quando crei un'estrazione.

Ambiente

  • Tableau Desktop
  • Windows
  • Excel
  • Access
  • File di testo (CSV)

Soluzione

Soluzioni temporanee

  • Se il problema riscontrato è dovuto a una colonna, una tabella o un nome file che supera il limite di caratteri, la soluzione più affidabile per risolvere il problema consiste nel modificare il nome a livello di origine dati.
  • Se hai un'origine dati che contiene più di 255 colonne o se il file di origine dati è particolarmente grande, dovresti essere in grado di connetterti all'origine dati da Tableau se prima dividi la tabella in sezioni più piccole (ognuna con meno di 255 colonne). Quindi, in Tableau, effettua la connessione usando tabelle e join multipli.A tale scopo, hai bisogno di un campo da usare come chiave univoca per il join. Ad esempio, crea un campo numero di riga convertito in un tipo di dati stringa.
Nota: Anche se questa soluzione permette di connettersi ai dati, quando selezioni Visualizza dati, potrebbe verificarsi l'errore seguente: 
Database error 0x800004005: Too many fields defined. (Errore di database 0x800004005: troppi campi definiti.)
  • Se dopo la connessione alle tabelle la connessione è lenta, potrebbe essere necessario eseguire un'estrazione.
  • Se riscontri un errore relativo alla mancanza di spazio temporaneo sul disco, ma in realtà lo spazio è disponibile, controlla la cartella Temp di Windows e cerca un file con estensione .tmp con il nome che inizia per JET e dimensioni del file di circa 2 GB.

Causa

Questo è dovuto al limite di dimensione di 2 GB per i file temporanei generati da Jet.

Ulteriori informazioni


Limitazioni relative a Jet si possono verificare in:
  • Cartelle di lavoro create con Tableau Desktop 8.1 e versioni precedenti
  • Origini dati Excel e file di testo
  • Origini dati di Microsoft Access
  • Cartelle di lavoro che usano una connessione legacy basata su Jet (vedi nota importante sotto)
Per evitare limitazioni del motore di database Jet, considera l'aggiornamento di Excel o delle origini dati file di testo.

Nota: Un'altra causa di un errore "Sconosciuto" sono i driver obsoleti o corrotti.

IMPORTANTE: A partire da Tableau 2019.1 non è più possibile creare nuove connessioni di testo o Excel legacy. Le cartelle di lavoro create con tali connessioni legacy continueranno a funzionare fino alla versione 2019.2, dalla quale verrà rimosso ogni tipo di supporto per le connessioni legacy. Consulta il documento Alternative alle connessioni legacy nella Community di Tableau per le alternative all'uso della connessione legacy.


Con questo articolo hai risolto il problema?