|
Bas de page | |
---|---|
Auteur | Sujet : sed : remplacer valeurs batch sur 2 gigas de données |
grosbin OR die; | Bonjour, je dois remplacer sur un dump sql ( ou un csv ) 100.000 clés par 100.000 valeurs associées ( afin de transformer une base de 2gigas en relationnelle ) Jusque aujourd'hui la méthode la plus rapide que j'ai trouvée étant de générer un batch opérant chacun des remplacements par : Cela tient le rythme de 500 remplacements par heure .. ce qui n'est pas assez .. et pourtant bien plus rapide qu'en faisant des updates via sql .. Mes questions Je tente également en splittant le fichier de base en une centaine de morceaux, mais ne suis pas convaincu .. Merci pour vos lumières Message édité par grosbin le 18-11-2015 à 17:33:11 --------------- Photos Panoramiques Montagnes Haute Savoie |
Publicité | Posté le 18-11-2015 à 17:32:13 |
grosbin OR die; | Bien bon du coup j'essaye en perl .. désolé pour ma syntaxe php like .. le truc est en cours .. ne sait pas lorsqu'il aura fini .. 99% proc .. 35% ram
Du coup, comment je ferais un str_replace($k,$v,$data); en perl ? Message édité par grosbin le 19-11-2015 à 12:32:53 --------------- Photos Panoramiques Montagnes Haute Savoie |
gilou ModérateurModzilla | Nos posts se sont croisés.
Message édité par gilou le 19-11-2015 à 14:19:23 --------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
grosbin OR die; | Merci bcp, désolé si j'ai répondu un peu à côté de la plaque, sur le dump sql les valeurs texte sont évidemment séparées par des quotes simples (') Au final j'ai opté pour un file_get_contents php en mode cli sans limite de temps et de ram, cela passe à peu près 100 clés par minutes .. Message édité par grosbin le 19-11-2015 à 13:21:23 --------------- Photos Panoramiques Montagnes Haute Savoie |
rufo Pas me confondre avec Lycos! | Je suis quand même très surpris que faire une update sur une BD avec 100.000 enregistrements prenne énormément de temps (et soit plus lent que 500 remplacements à l'heure)
--------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
grosbin OR die; | Effectivement, moi aussi cela m'a surpris .. De toutes façons, au lieu d'y passer 3 jours de plus à étudier d'autres procédés, mon responsable a préféré valider cette version qui traite le fichier sql complet .. voilà qui est fait Autrement, remplacer les valeurs une par une par des instructions sql .. n'était vraiment pas fructueux en terme de performances, même avec le repertoire data de mysql placé sur /dev/shm avec une belle allocation de 8go de ram .. je n'ai pas essayé le moteur de stockage "memory", car je n'ai vu nulle part par le passé de réels gains par l'usage de ce dernier .. Peut être ai-je loupé un truc, quasiment toutes les colonnes sont indexées .. le script php parvenait à remplacer environ 40 clés par minute .. sql : une à deux .. Message édité par grosbin le 26-11-2015 à 12:24:25 --------------- Photos Panoramiques Montagnes Haute Savoie |
rufo Pas me confondre avec Lycos! | Indexer toutes les colonnes, c'est pas top, à mon avis Je te parie que pour faire ton traitement, aucun index n'est utilisé (ou alors, un mauvais). T'as fait un EXPLAIN de ta requête pour voir quel(s) index était utilisé ? Au passage, j'avais constaté avec Mysql que dans certains cas, c'était plus performant de faire un index portant sur 2 champs (ou plus suivant le traitement) plutôt que de faire un index pour chacun des 2 champs.
Message édité par rufo le 26-11-2015 à 13:31:53 --------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
Sujets relatifs | |
---|---|
[SQL] Select un nbre max de données = selectionner une ligne sur n. | Recherche de données excel sur 2 tableaux à la fois |
remplacer des mots par des liens (XML to HTML via XSLT) | [VB6] Remplacer l'ensemble des contenus des nodes par des CDATA |
Macro rechercher remplacer liens hypertexte EXCEL 2010 | [SQL] [facile] selection des données de plus de 256 lignes. |
je ne parviens pas à remplire ma base de données | Fichier crypté de donnees sécurisées |
[VBA] Liste avec données dans une autre feuille | remplacer une ligne dans un fichier |
Plus de sujets relatifs à : sed : remplacer valeurs batch sur 2 gigas de données |