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

XML/XSL et SOAP Discussion :

Fichier trés volumineux (Go) non standardisé


Sujet :

XML/XSL et SOAP

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 81
    Par défaut Fichier trés volumineux (Go) non standardisé
    Bonjour a tous,

    voila je me tourne vers ici car je me retrouve face a un problème relativement complexe pour moi.

    En effet je me retrouve a devoir traiter de façon quotidienne un fichier xml de plusieurs Go, suivant le volume de la journée précédente le fichier peut varier entre 800Mo et 5Go.
    A l'intérieur c'est de l'xml basique sauf qu'il est non standardisé enfin j'appelle non standardisé le fait que dans certains champs, je peux me retrouver avec des infos qui n'ont rien à voir avec le champ, style le numéro de téléphone qui se trouve dans les balises adresse ou carrément le code postal et la ville dans le champ adresse au lieu d'être renseigné dans leur champ respectif.

    Le but bien évidemment est de traiter le fichier xml pour l'intégré "proprement" dans une base de donnée qui tourne sous postgreSQL.

    Résultat a cause de la construction anarchique du fichier xml impossible d'utiliser des mécaniques simples pour charger directement le xml dans la base (enfin a ma connaissance)

    Je me tourne donc vers vous pour avoir deux infos.

    Le traitement doit être le plus rapide possible tout en consommant le moins de ressource possible et la je me pose la question vers quel langage partir pour arriver à résoudre les problèmes.

    Je pense que partir peut etre sur une base de PERL avec xml::Twig serait une bonne solution pour travailler en mode SAX ce qui permet de limiter l'impact sur les ressources du serveur vu la taille du fichier xml, mais au niveau manipulation des données pour justement retrouver ces "petits" dans les fiches mal remplie, je ne sais pas si le PERL va bien s'adapter.
    Pour ce qui est de la connexion BDD PERL et PostgreSQL me semble être robuste.

    Maintenant je vois aussi que le python a pas mal le vent en poupe mais je suis moins bon dedans.

    Sinon je me demandé si avec peut etre simplement du xml avec de la validation xslt ou quelque chose du genre je pouvais arriver au même résultat.
    Je connais relativement mal les possibilité de travail du xml c'est pas trop mon dada on va dire.

    je suis preneur de conseil ou piste pour résoudre mon problème.

    Merci d'avance.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 585
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 585
    Par défaut
    Hello,

    non, la validation n'a aucun intérêt pour toi. Elle n'opère aucune modification des données et n'insère aucun comportement. Elle dit juste si le fichier XML contient des données valides.
    Tout comme un validateur HTML te dirais si le code HTML suivant est valide : <input type="fingerprints" src="http://developpez.net">Vos empreintes digitales</a>. Réponse : non. La balise <input> n'a pas d'attribut "src" et l'attribut "type" ne peut pas prendre la valeur "fingerprints". Ce n'est pas valide. La validation sert à dire si oui ou non le fichier XML respecte ce genre de choses. Rien de plus. Que la réponse soit oui ou non, ce qui se passe après ne la concerne pas.

    Concernant des conseils, tu as bien identifié ton besoin : il faut utiliser SAX ou StaX pour éviter de charger le fichier entièrement en mémoire.
    Concernant le langage, n'importe quel langage digne de ce nom propose ça, alors tu prends celui que tu veux. Je ne connais pas grand-chose à Perl, tu as l'air de douter qu'il soit bien adapté pour programmer la détection d'erreurs dont tu as besoin. Je ne sais pas si ces doutes sont fondés, mais si oui, prendre un autre langage devrait être tout simple.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 81
    Par défaut
    Merci pour cette réponse rapide

    Je pensais bien que les validations servirait a rien mais j'avais quand même un doute.

    Après niveau programmation mon but est de faire un "backend" léger don c déjà je vois que mon idée de passer en SAX est pas mauvaise après au niveau matching expression régulière etc PERL est en principe très bon dans le domaine, mais je me demandais si d'autre langage étaient pas encore meilleur pour résoudre ce genre de problème justement.

    Partir sur du C ne me parait pas idéal ca va être trop long et surtout pas fait pour je pense, le PHP j'y crois pas trop il me parait lourd et peu performant pour ce genre de tache, de ce que je connais et maitrise un peu vu qu'au final va falloir que je code avec mes petits doigts tout ca c'est PERL ou python.

    Mais je ne connais pas tout d'où ma question

    Je vais me laisser une petite semaine pour y réfléchir et pas partir sur une mauvaise voie donc si d'autres personnes ont des idées de faire de façon "simple" je suis preneur

    mais surtout deux points essentiels sont au cœur du problème:
    1°) Un impact le plus faible possible sur les ressources du serveur
    2°) Un traitement le plus rapide possible mais pas au détriment des ressources utilisées.

Discussions similaires

  1. Réponses: 5
    Dernier message: 31/01/2015, 21h05
  2. [UNIX] Gunzip des fichiers trés volumineux
    Par Seneg33 dans le forum Shell et commandes POSIX
    Réponses: 5
    Dernier message: 14/03/2014, 22h42
  3. Parser XML pour fichiers très volumineux
    Par mckilleron dans le forum VB.NET
    Réponses: 1
    Dernier message: 03/05/2013, 17h14
  4. [PHP 5.3] Upload de fichier très volumineux et mémoire serveur.
    Par alexflex25 dans le forum Langage
    Réponses: 0
    Dernier message: 22/12/2011, 16h18
  5. [MySQL] Imports de fichiers csv très volumineux
    Par kazabandi dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/12/2010, 17h24

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