Bonjour,
Je suis entrain de mener une étude pour trouver des pistes de réalisation d'un traitement de données en grande quantité.
Pour préserver une certaine confidentialité, je ne pourrai pas révéler le contenu exact des fichiers mais imaginons qu'il s'agisse du log de tracking GPS des camions d'une société de transport.
Chaque camion possède un numéro et le système embarqué renvoi à intervalles rapprochés la position du camion. Cette société de transport possède un grand nombre de camions et à la fin d'une journée, le fichier qui conserve une trace de l'itinéraire de chaque véhicule pèse au moins 4Go (on ne peux pas le changer, il n'y a pas d'erreur de conception à ce niveau) - le fichier contient les entrées en ordre chronologique de tous les camions.
A différent moments dans la journée, les camions arrivent aux centres logistiques.
Le but de mon application est de sélectionner les camions qui sont dans certains centres puis de déterminer leur itinéraire. On obtient donc les numéros de ces camions en parcourant intégralement le fichier et en comparant les coordonnées des points remontés à celles des centres logistiques sélectionnés.
Une fois la liste obtenue, je pensais re-parcourir une seconde fois le fichier pour extraire toutes les entrées du log qui se rapportent aux bons camions.
Le problème est qu'on ne travaille pas avec des jeux de données légers et que mon serveur va exploser.
Je ne pense pas, par exemple, que d'utiliser SQL dans ce cas de figure soit approprié. 4Go de données texte, ca doit faire une grosse table
Sachant qu'il s'agit en quelques sorte de fichiers CSV, peut-être existe-t-il un algorithme qui permet de sélectionner des lignes au milieu de tout ce fouillis sans faire un joli while(!feof()).
Une de mes autres idées serait de trier le fichier suivant le numéro de camion dès le premier parcours (à la recherche des camions) puis d'éliminer toutes les lignes se rapportant à un camion dès que celui-ci à été détecté comme non valide.
Si des gens plus expérimentés ont d'autres avis, je serai ravi d'échanger avec eux.
Bonne journée.
Partager