IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Accès aux données Discussion :

Importation d'un fichier .CSV de 8Go dans MySQL ou PostgreSQL


Sujet :

Accès aux données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2020
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Importation d'un fichier .CSV de 8Go dans MySQL ou PostgreSQL
    Bonjour les développeurs,
    J'ai un soucis j'aimerais importer un fichier .CSV de 8 Go dans POSTGRESQL ou MYsql.
    J'ai essayé dans les deux cas et je n'y arrive pas il y a toujours de messages d'erreurs.
    J'ai parcouru plusieurs forum et cela ne marche toujours pas.

    PS: Vous pouvez télécharger le fichier sur l'url : https://www.data.gouv.fr/fr/datasets...ries-produits/

    Je vous explique tout de même ce que j'ai essayé :

    1: Ma première idée c’était tout simplement de splitter le fichier donc j'ai téléchargé les logiciels :
    Little CSV , SplitterCSV , bankCSV SPLITTER
    Et tous ces logiciels s’arrêtent avant la fin du fichier (message d'erreur ou carrément ils se ferment)

    2: Puis je me suis dit que je vais ouvrir le fichier avec excel : Mais il charge pendanr une heure sans reponse... J'ai un PC asus Intel I7 de 8Go de ram et disque SSD...

    3: J'ai essayé de l'ouvrir avec le fichier texte : Il mets un message disant que le fichier est trop grand

    4: J'ai essayé d'ouvrir le fichier avec OpenOffice il charge pendant 3 minutes puis il mets un message disant qu'il y a trop de ligne alors il affiche que les xxxxxxxxx premieres lignes et cela fonctionne, mais effectivement je ne vois pas le fichier en entier donc je ne peux pas le couper en plusieurs fichier.

    5: j'ai voulu importer ce fichier dans MYsql ou POSTGRESQL : J'ai changé dans les fichiers de configurations dans les deux SGBD la limit maximum autorisées et la taille de mémoires autorisé mais je n'ai que des messages d'alerte

    6: J'ai voulu faire en ligne de CMD DOS un fichier .BAT qui coupe le fichier en plusieurs fichiers et bien pffff cela ne fonctionne pas (Ce code fonctionne pour des petits fichiers):
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    @echo off
    setlocal enabledelayedexpansion
    set $Nb-ligne=1000
    set $Repertoire="C:\Users\Admin\Desktop\dossierDuFichierCSV"
    SET $Extension=*.csv
     
     
    for /f "delims=" %%a in ('dir %$repertoire%\%$extension% /aa /b') do (set $CompteLigne=1
                                                                          set $CompteFichier=1
                                                                          for /f "usebackq delims=" %%b in ("%%a") do (cls
                                                                          echo Traitement de : ["%%a"] Fichier : [!$CompteFichier!] Ligne : [!$CompteLigne!] 
                                                                          if !$CompteLigne! equ %$Nb-ligne% (set /a $CompteFichier+=1
                                                                                                           set /a $CompteLigne=1)
                                                                          echo %%b>>%%~na_!$CompteFichier!%%~xa
                                                                          set /a $CompteLigne!+=1)
    									  del %%a)




    En tout cas merci d'avance à vous tous

  2. #2
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2022
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2022
    Messages : 1
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Désolé pour la réponse tardive, c'est surtout pour répondre aux consultations futures

    Voici un code c# (Console) qui permet de spliter des gros fichiers csv.

    C'est une version minimaliste qui marche et que vous pouvez l’améliorer ou l'adapter à vos besoins

    Le code utilise la classe Stream pour la lecture et l’écriture, ce qui optimise l'utilisation de la mémoire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    class Program
        {
            static void Main(string[] args)
            {
                string sourceFileName = @"test.csv";
                SplitLargeFile(sourceFileName);
            }
     
            public static void SplitLargeFile(string sourceFileName)
            {
                Console.WriteLine("Enter line start");
                int lineStart = int.Parse(Console.ReadLine());
     
                Console.WriteLine("Enter line end");
                int lineEnd = int.Parse(Console.ReadLine());
     
                FileInfo fileInfo = new FileInfo(sourceFileName);
                string destinationFileName = Path.Combine(fileInfo.DirectoryName, "splited_" + fileInfo.Name);
     
                using (var reader = new StreamReader(fileInfo.FullName))
                {
                    List<string> list = new List<string>();
                    int lineCount = 1;
     
                    using (var writer = new StreamWriter(destinationFileName))
                    {
                        while (!reader.EndOfStream && lineCount <= lineEnd)
                        {
                            string line = reader.ReadLine();
                            if (lineCount >= lineStart)
                            {
                                writer.WriteLine(line);
                                writer.Flush();
                            }
     
                            lineCount++;
                        }
                    }
                }
            }
    }
    Fichiers attachés Fichiers attachés

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2020
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Merci F.Pro
    Coucou F.Pro je ne code pas en C# mais un big big merci pour la réponse :-)
    J’espère que cela résoudra le problème pour d'autres utilisateurs.
    Moi je n'avais pas trouvé de solution donc j'avais tout simplement récupéré des plus petites base de données.
    Je ne clôture pas cette discussion car si une fois quelqu’un d'autre a une autre solution et bien il pourra l’écrire.

Discussions similaires

  1. Réponses: 16
    Dernier message: 06/10/2015, 11h08
  2. [WD17] probleme d'importation d'un fichier csv
    Par moustaf_26 dans le forum WinDev
    Réponses: 2
    Dernier message: 16/12/2013, 23h19
  3. [CSV] Importer un fichier CSV ou OV2 dans une page PHP
    Par gpsevasion dans le forum Langage
    Réponses: 13
    Dernier message: 12/02/2009, 14h31
  4. [CSV] probleme d'affiche d'un fichier CSV
    Par Akramweb dans le forum Langage
    Réponses: 1
    Dernier message: 15/11/2006, 16h28
  5. importation d'un fichier csv
    Par bidson dans le forum XMLRAD
    Réponses: 14
    Dernier message: 22/12/2005, 13h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo