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

WinDev Discussion :

Comment traiter un très gros fichier CSV


Sujet :

WinDev

  1. #41
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    WD3x23

    Je test ta solution
    Ça fonction mais je suis très loin d'un traitement rapide.
    En fait, ça prend autant de temps que ma méthode d'avant.
    Je fais une erreur quelque part selon toi ?
    Les solutions les plus simples sont les plus efficaces

  2. #42
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Cela met combien de temps ? Toujours 4 min pour 8 000 000 enregistrements ?

    Moi, je trouve ça plutôt rapide. On parle quand même de plusieurs millions d'enregistrements
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  3. #43
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Passer par un seul select sera de toutes façons limité. L'instruction INSERT est une chaine, et sa longueur est limitée. Beaucoup plus limitée qu'une chaine quelconque. Au mieux, on va remplacer 1000 Hajoute par 1 insert.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  4. #44
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    a vue de nez, je dirais 1 heure pour 10 000 000
    Les solutions les plus simples sont les plus efficaces

  5. #45
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    j'ai pas compris ton propos tbc92, dsl
    Les solutions les plus simples sont les plus efficaces

  6. #46
    Membre actif

    Homme Profil pro
    Sans
    Inscrit en
    Mars 2018
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Mars 2018
    Messages : 153
    Points : 295
    Points
    295
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par lololebricoleur Voir le message
    j'ai pas compris ton propos tbc92, dsl
    Je pense que l'intervention de tbc92 est en rapport avec ce que j'ai proposé.

    C'est vrai que la chaîne générée risque d'être assez longue, donc si cette longueur est limitée ...

    Moodifié par TBC92 : je confirme.

  7. #47
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2018
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Octobre 2018
    Messages : 31
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par lololebricoleur Voir le message
    WD3x23

    Je test ta solution
    Ça fonction mais je suis très loin d'un traitement rapide.
    En fait, ça prend autant de temps que ma méthode d'avant.
    Je fais une erreur quelque part selon toi ?
    le code peut etre amélioré, si tu as 1h pour 10 000 000 c'est pas mal vu la quantité. j'ai essayé avec un ordi plu ancien au travail et je met 12' pour FANTOIR 8 000 000 en ssd
    on aurra essayé
    tu peu essayé les taches paralleles comme dans cette video https://www.youtube.com/embed/ZSlMWW...l=0&autoplay=1

  8. #48
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2003
    Messages : 942
    Points : 1 933
    Points
    1 933
    Par défaut
    Je suis d'accord avec @WD3x23 pour les taches paralleles. Je les ai déjà utilisées et effectivement ça change beaucoup de choses.
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

  9. #49
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    J'ai un doute pour les tâches //
    J'écris dans un fichier de données donc je vois pouvoir lancer l'écriture de 2 enregistrement en même temps
    Les solutions les plus simples sont les plus efficaces

  10. #50
    Membre éclairé
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2017
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 328
    Points : 789
    Points
    789
    Par défaut
    Les perfs d'ajout de 10 millions de ligne en 1h, je dis wouahou
    Ici j'ai d'autres contraintes qui ne me permettent pas le hEcrit; néanmoins, un refurbish du code pourrait rendra ça possible (je dois moi aussi intégrer des CSV de plusieurs dizaines de milliers de ligne dans des bases HF). Jusque là on y arrive très bien mais ce fil de discussion m'intrigue beaucoup.
    Je vais prendre le fichier FANTOIR et mener des tests aussi, suis curieux de voir si je peux atteindre des perfs équivalentes

  11. #51
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2003
    Messages : 942
    Points : 1 933
    Points
    1 933
    Par défaut
    Citation Envoyé par lololebricoleur Voir le message
    J'ai un doute pour les tâches //
    J'écris dans un fichier de données donc je vois pouvoir lancer l'écriture de 2 enregistrement en même temps
    Sans aucun problèmes, HFSQL sait quand même géré les accès multi utilisateurs
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

  12. #52
    Membre éclairé
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2017
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 328
    Points : 789
    Points
    789
    Par défaut
    Citation Envoyé par philouZ Voir le message
    Sans aucun problèmes, HFSQL sait quand même géré les accès multi utilisateurs
    En C/S je suis d'accord, mais en Classic pour l'avoir vu souvent (blocage du fichier, corruptions d'index, corruptions de fic), non, il ne sait pas. A moins bien sûr que les blocages aient été explicitement bien gérés par le développeur lui même. Mais de mon expérience, ça a tendance à limiter la casse sans pour autant régler le problème.

  13. #53
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    +1 kunnskap,

    HF classic ne gère absolument rien...
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  14. #54
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2003
    Messages : 942
    Points : 1 933
    Points
    1 933
    Par défaut
    Je n'avais pas lu que c'était du Classic. Il m'avait semblé voir C/S quelque part.

    Cela dit, pour moi HF Classic n'est pas un SGBD. D'ailleurs HFSQL n'en est un qu'à moitié vu les lacunes du moteur.
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

  15. #55
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Philouz,

    Tu as bien lu, j'ai fait un test en CS mais rien de mieux à priori.

    Mon dernier test et celui qui me semble le plus "stable"
    - Je traite 2 fichiers : 1 de 2.5 go et 1 de 5.5 go
    - Je commence par découper ces fichiers en plusieurs par tranches de 1 000 000 de lignes
    - Ensuite, je lis les fichiers obtenus les un après les autres et je recupère les données dans du HF Classic
    - Ca prend du temps évidement mais ça ne plante pas
    - Je confirme que la réindexassions est nécessaire car la taille des fichiers index est divisée par 3 en gros
    - Je le fais uniquement à la fin car j'ai l'impression que c'est gourmand en temps cette affaire là. Y'a t'il moyen de ne reindexer qu'une partie du fichier ?
    - Au final, ça prend en gros 4h pour 50 000 000 d'enregistrements créés. J'aurais aimé un traitement plus rapide mais ça semble difficile.
    - Petit bug : J'avais l'intention d'alimenter une petit jauge histoire de vérifier que ça avance mais elle ne marche pas correctement. Au début ça fonctionne mais à un moment donné, elle se fige ou/et la seule fenêtre du projet se réduit. J'avoue ne pas comprendre car la procédure fonctionne puisque les lectures/ecritures se font et on voit clairement que les fichiers de données prennent du volume. La jauge est censée être alimentée au même moment. Ca semble assez érratique en fait. Mon ordinateur ne se mets pas en veille pourtant. Pas grave mais curieux.

    Je vais continuer de fouiner pour essayer d'améliorer tout ça.

    Merci de votre aide à tous
    Les solutions les plus simples sont les plus efficaces

  16. #56
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Pas très surpris par le temps. C'est assez normal car, je pense qut on fichier ne comporte pas que 3 rubriques...

    Pour la jauge, il faut de temps en temps (toutes les 1000 lignes par exemple), faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    multitâche(-1)
    multitacherepeint(mafenêtre)
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  17. #57
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Merci frenchsting,

    Y'a pas tant de rubrique que ça mais je ne recupère pas tout
    Je suis d'ailleurs pas certain que dans récupérer plus allongerais beaucoup le temps.
    J'ai testé un code qui recupérait tout avec la fonction HImporteTexte et c'était assez similaire en temps de mémoire
    Je vais tester
    Les solutions les plus simples sont les plus efficaces

  18. #58
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Je me suis mal exprimé : plus ton fichier HF comporte de rubriques, plus ce sera long.

    Logiquement, le nombre de rubriques de ton fichier HF est "similaire" au nombre de rubriques "utiles" dans ton fichier texte.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  19. #59
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2003
    Messages : 942
    Points : 1 933
    Points
    1 933
    Par défaut
    Perso j'aurai quand même utilisé les taches parallelles en C/S
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

  20. #60
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    bon, j'arrive pas à faire mieux que 4 heures pour 20 000 000 d'enregistrements créés dans 2 fichiers HFC

    Maintenant c'est la requête qui prend des plombes, et c'est rien de le dire
    J'ai indexé les rubriques de filtrage mais c'est looooooooong
    Les solutions les plus simples sont les plus efficaces

Discussions similaires

  1. Traiter un très gros fichier XML
    Par nicotibo dans le forum Android
    Réponses: 8
    Dernier message: 11/06/2016, 18h35
  2. Réponses: 16
    Dernier message: 03/05/2012, 14h22
  3. Très gros fichier CSV
    Par kidathom dans le forum Débuter
    Réponses: 6
    Dernier message: 29/04/2008, 13h00
  4. [CSV] Traitement d'un très gros fichier XML ou CSV
    Par Paulux1 dans le forum Langage
    Réponses: 3
    Dernier message: 25/03/2008, 16h05
  5. Transformer un très gros fichier XML avec XSL
    Par wozzz dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 30/05/2006, 10h57

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