BASE DE CONNAISSANCES

Limitations de taille des données et des fichiers dans les sources de données Jet


Date de publication : 11 Apr 2017
Date de dernière modification : 20 Jul 2023

Problème

Lorsque vous tentez de vous connecter à une source de données basée sur le moteur de base de données Microsoft Jet, par exemple un fichier Excel, Access ou un fichier texte simple (CSV), vous pouvez rencontrer des problèmes inattendus qui sont liés aux limitations du moteur de base de données Jet. La technologie Microsoft Jet est utilisée avec Tableau Desktop avant la version 8.2 pour les fichiers Excel et CSV, ou en cas d'utilisation de l'option d'ancien connecteur avec Tableau Desktop 8.2 et versions ultérieures.

Limites connues de taille de données ou de fichiers

  • L'utilisation de fichiers CSV volumineux peut générer des problèmes.
    Aucune limite de taille de fichier explicite ou documentée ne s'affiche, mais en règle générale, veillez à ce que la taille d'un fichier CSV ne dépasse pas 4 Go. Même si vous pouvez vous connecter à un fichier CSV de plus de 4 Go, la réalisation d'un extrait peut générer une erreur de ce type :

    Query too complex (Requête trop complexe)

    En outre, lorsque vous tentez de vous connecter à un fichier CSV volumineux, une erreur peut se produire, suggérant que votre ordinateur ne dispose pas d'espace disque temporaire suffisant, même si le contraire est vrai.

  • La taille de table est limitée à 255 colonnes (champs). Dans la plupart des cas, Jet échouera en atteignant la limite de 255 colonnes.

  • Les unions contiennent plus de 255 colonnes (champs). Si une union contient plus de 255 colonnes, l'erreur suivante survient :

    Database error 0x800004005: Too many fields defined (Erreur au niveau de la base de données 0x800004005 : Trop de champs définis)

    Remarque : les unions peuvent contenir plus de 255 colonnes si vous utilisez la déclaration UNION ALL dans votre requête SQL personnalisée. Si vous utilisez la déclaration UNION ALL, le nombre total de colonnes dans l'union est égal au nombre de colonnes comptabilisé chaque fois que la déclaration UNION ALL est utilisée. Ceci peut entraîner un dépassement de la limite de colonne pour le nombre de colonnes. Par exemple, supposons que vous ayez UNION ALL sur 3 tables avec 102 colonnes chacune. La déclaration, SELECT * FROM "Table1" UNION ALL SELECT * FROM "Table2" UNION ALL SELECT * FROM “Table3” comptera 306 colonnes, et excèdera donc la limite des colonnes Jet.

  • Les champs de mémo dans les sources de données Access peuvent être tronqués après 255 caractères.

  • Les noms de table et de champ sont limités à 64 caractères. Si un nom de table ou de fichier dépasse la limite de 64 caractères, lorsque vous vous connectez à la source de données depuis Tableau, l'un des messages d'erreur suivants peut s'afficher :
    • An error occurred while communicating with data source <data-source-file-name> (Une erreur s'est produite lors de la communication avec la source de données <source-données-nom-fichier>…) et il vous sera suggéré de vérifier vos autorisations.
    • <data-source-file-name> is not a valid file name…. (<data-source-file-name> n'est pas un nom de fichier valide….) Vérifiez la ponctuation ou autre caractère non valide dans le nom de champ.
    • Unable to open the text file…. (Impossible d'ouvrir le fichier texte….) Vérifiez le type de fichier et vos autorisations.
    • The table <table-name> does not exist. (La table <nom-table> n'existe pas.)
  • Les noms de champ sont limités à 255 caractères. Bien que Jet puisse lire les champs dont les noms sont plus longs, de nombreuses opérations que vous exécutez sur ces champs provoquent une erreur « Inconnu ». Cette limite fait aussi disparaître des champs sans indication lors de la création d'un extrait.

Environnement

  • Tableau Desktop
  • Windows
  • Excel
  • Access
  • Fichiers texte (CSV)

Résolution

Solutions de contournement

  • Si le problème que vous rencontrez est causé par un nom de colonne, de table ou de fichier dépassant la limite de caractères imposée, la façon la plus fiable de le résoudre est de changer son nom dans la source de données.
  • Si vous disposez d'une source de données contenant plus de 255 colonnes ou si la taille du fichier de source de données est exceptionnellement grande, vous pourrez peut-être vous connecter à votre source de données depuis Tableau en divisant la table en sections plus petites (chacune contenant moins de 255 colonnes). Ensuite, dans Tableau, connectez-vous en utilisant plusieurs tables et liaisons. Pour ce faire, il vous faut un champ à utiliser comme clé unique pour la liaison. Par exemple, créez un champ de numéro de ligne converti en type de données chaîne.
Remarque : même si cette solution vous permet de vous connecter aux données, vous risquez d'obtenir l'erreur suivante après avoir sélectionné Afficher les données.
Database error 0x800004005: Too many fields defined (Erreur au niveau de la base de données 0x800004005 : Trop de champs définis)
  • Si les performances sont lentes après votre connexion aux tables, vous souhaiterez peut-être créer un extrait.
  • Si un message d'erreur s'affiche, il est possible que votre ordinateur n'ait pas suffisamment d'espace disque temporaire. Même si ce n'est pas le cas, dans votre dossier Windows Temp, recherchez un fichier .tmp dont le nom commence par JET avec une taille de fichier d'environ 2 Go.

Cause

La raison est la limitation de taille de 2 Go pour les fichiers temporaires générés par Jet.

Informations supplémentaires


Des limitations peuvent s'appliquer à Jet dans les cas suivants :
  • Classeurs créés dans Tableau Desktop 8.1 et versions antérieures
  • Sources de données de fichier Excel et texte
  • Sources de données Microsoft Access
  • Classeurs utilisant l'ancienne connexion basée sur Jet (voir la Remarque importante ci-dessous)
Pour éviter les limitations du moteur de base de données Jet, envisagez de mettre à niveau vos sources de données de fichiers Excel ou texte.

Remarque : Une erreur de type « Inconnu » peut aussi voir pour cause des pilote Jet obsolètes ou corrompus.

IMPORTANT : à compter de Tableau 2019.1, vous ne pourrez plus créer une nouvelle connexion ancienne à un fichier Excel ou texte. Les classeurs existants créés avec ces anciennes connexions continueront de fonctionner jusqu'à la version 2019.2, où toute prise en charge des anciennes connexions sera supprimé.Consultez le document Alternatives à l'ancienne connexion dans la communauté Tableau pour des alternatives à l'ancienne connexion.


Cet article vous a-t-il permis de résoudre le problème ?